Edited at

DialogflowのEntityを爆速で作成するライブラリを作った

More than 1 year has passed since last update.


百聞は一見にしかず

こんな感じのCSVファイルを準備します。


sushi.csv

"鯖"

"鯵"
"鰈"
"鱸"
"鮑"
"鮪"
"鯨"
"鮭"

ライブラリを使ってアップロードすると・・・Entityが一瞬で出来上がります!

漢字から ローマ字ひらがなカタカナが作成されました。


ライブラリの紹介

このライブラリにflounderという名前を付けました。flounderは日本語のCSVファイルを読み込んで、自動でEntityの登録とシノニムを作ってくれるライブラリです。


インストール方法

flounderはpykakasiと呼ばれる日本語をローマ字などに変換するライブラリを使用しているため、pykakasiのインストールが必須です。※本当はflounderに取り込みたかったのですが、諸事情により今回は取り込めませんでした。


pykakasiのインストール

pip install git+https://github.com/miurahr/pykakasi.git


flounderのインストール

pip install flounder

これでインストールは完了です。


Developer access tokenを取得

dialogflowからDeveloper access tokenを取得します。


CSVからEntityを作成


サンプルコード


test_entity_upload.py

from flounder.flounder import Flounder

flounder = Flounder(DEVELOPER_ACCESS_TOKEN)
create_request = flounder.create_request('Sushi', 'sushi.csv')
response = create_request.getresponse()

print (response.read())
print (response.status, response.reason)



CSVファイル


sushi.csv

"鯖"

"鯵"
"鰈"
"鱸"
"鮑"
"鮪"
"鯨"
"鮭"


実行

$ python test_entity_upload.py

dialogflowのコンソールに新しくEntityが作成されていたら成功です:smiley:


ご理解とご協力のお願い

flounderは、設計、ネーミング、エラー処理など、見直すべき課題が多くございます。まだまだ発展途上ですが、その辺を踏まえて使用して頂けたら幸いです。本当はこの状態で公開するのを躊躇しましたが、まずは公開して少しずつリファクタリングをしていこうという方針に舵を切りました。

ソースはgithubにございます。お気づきの点がございましたら、issueかプルリクを頂けたら幸いです。