-
Notifications
You must be signed in to change notification settings - Fork 1
ハッシュタグ辞書
Tatsuya Koishi edited this page Nov 14, 2021
·
28 revisions
”表”のイメージに近いもの。世にある一覧系APIの多くは、この形式のものとして利用できる。
[
{
"id": 1,
"cure_name": "キュアブラック",
"human_name": "美墨 なぎさ",
"cv": "本名 陽子",
"birthday": "2019-10-09T15:00:00.000Z",
"future_dream": ""
},
{
"id": 2,
"cure_name": "キュアホワイト",
"human_name": "雪城 ほのか",
"cv": "ゆかな",
"birthday": "2019-04-03T15:00:00.000Z",
"future_dream": ""
}
]
- JSON形式
- 全体がひとつの配列
- 配列の各要素はオブジェクト
派生するハッシュタグを記述できる、モロヘイヤ独自の形式。
{
"キュアブラック": [
"美墨 なぎさ",
"本名 陽子"
],
"美墨 なぎさ": [
"キュアブラック",
"本名 陽子"
],
"本名 陽子": [
"キュアブラック",
"美墨 なぎさ"
]
}
- JSON形式
- 全体がひとつのオブジェクト
- オブジェクトの各要素は配列
makoto向けの、MeCab辞書形式。
[
[
"愛崎",
1289,
1289,
3000,
"名詞",
"固有名詞",
"人名",
"姓",
"*",
"*",
"あいさき",
"アイサキ",
"アイサキ"
],
[
"愛崎えみる",
1289,
1289,
3000,
"名詞",
"固有名詞",
"人名",
"*",
"*",
"*",
"あいさきめぐみ",
"アイサキメグミ",
"アイサキメグミ"
]
]
上記の辞書を dic.example.com
サーバに置いたときの設定ファイルに追記すべき設定値は以下のもの。
tagging:
dictionaries:
- url: https://dic.example.com/api/multi_word
name: プリキュア淑女録
edit:
url: https://docs.google.com/spreadsheets/d/xxxxx/edit#gid=0
fields:
- cure_name
- human_name
- cv
- url: https://dic.example.com/api/relative
name: 辞書2
type: relative
- url: https://dic.example.com/other.json
name: 辞書3
type: relative
fields:
- field1
- field2
- 複数指定可能
-
relative
型やmecab
型の場合はtype
を指定。 - 動的なAPIである必要は必ずしもない。手書きのJSONでも可。
- 辞書のソースがGoogleスプレッドシートである場合は、スプレッドシートのURLを指定。
タスク rake mulukhiya:tagging:dictionary:update
を実行し、手動での更新が可能。
以下、拙作サービス名辞書を、Google Apps Scriptでrelative
形式の辞書APIにする例。(Chrome V8エンジンを有効に)
'use strict'
function doGet() {
const sheet = SpreadsheetApp.getActiveSpreadsheet()
const rows = sheet.getDataRange().getValues()
const keys = rows.splice(0, 1)[0]
const output = {}
rows.map(row => {
const item = {}
row.map((val, i) => {item[keys[i]] = val})
output[item.domain] = []
if (item.words != '') {
output[item.domain] = item.words.split(',')
item.words.split(',').map(word => {output[word] = []})
}
})
return ContentService.createTextOutput(JSON.stringify(output))
.setMimeType(ContentService.MimeType.JSON)
}