Closed7

chatbot作る方法を調べてみる

nabeyangnabeyang

短い問答できるチャットボットを作る方法を調べてみる。

nabeyangnabeyang

SQuAD2.0のフォーマットの学習データを作る方法を探して、いくつか見つけたけれども、使い難いのでスプレッドシートで入力csvダウンロード。csvからSQuAD2.0形式にコンバートでとりあえず対応。

https://github.com/nnabeyang/csv2squad2/releases/tag/0.0.0

使い方は
https://docs.google.com/spreadsheets/d/11hj4JVWBDLBh_g_5tZloDOiUv8f6BKBxhIH6OBvVqls/edit?usp=sharing
をcsv形式でダウンロードして

./csv2squad2 -i ~/Downloads/csv2suquad2_サンプルデータ\ -\ シート1.csv -t 運転ドメイン

answer_startが間違っていると学習データとして使えないわけですが、そこはスプレッドシート上でチェックしていて、間違っているセルは緑色ではなくなります。方針として、スプレッドシート上で完璧なデータを用意する。csv2squad2は正しいデータが来たものとして処理を行います。

サンプルデータはこちらのデータセットの10解答分のcontext, question, answerをもとにcsvにしています。
https://nlp.ist.i.kyoto-u.ac.jp/?Driving+domain+QA+datasets

nabeyangnabeyang

ちょっと遅いけどjuman++がなかなか良い。なんだけどsignal呼び出しているので、メインスレッド以外で使えない。web apiとかで使う場合、ここをちょちょっと修正する必要がある。

https://github.com/ku-nlp/pyknp/pull/28

nabeyangnabeyang

うまく単語で区切れたらBoWとかTF-IDFを入力にして、ニューラルネットを学習させて質問を分類して、回答を選択というので結構うまく動く。

このスクラップは2021/04/16にクローズされました