Closed7
chatbot作る方法を調べてみる
短い問答できるチャットボットを作る方法を調べてみる。
bertを日本語で使うなら、次のリンク通りにすればOK。ファインニューニングの方法も分かる。リンク先の設定だとGPUが9G以上無いと学習できない。
SQuAD2.0の日本語版がkaggleで公開されている。でもよく見ると機械翻訳しているだけみたい。英語版はQAタスクのベンチマークで使われるやつで有名だと思う。
SQuAD2.0のフォーマットの学習データを作る方法を探して、いくつか見つけたけれども、使い難いのでスプレッドシートで入力csvダウンロード。csvからSQuAD2.0形式にコンバートでとりあえず対応。
使い方は
をcsv形式でダウンロードして./csv2squad2 -i ~/Downloads/csv2suquad2_サンプルデータ\ -\ シート1.csv -t 運転ドメイン
answer_start
が間違っていると学習データとして使えないわけですが、そこはスプレッドシート上でチェックしていて、間違っているセルは緑色ではなくなります。方針として、スプレッドシート上で完璧なデータを用意する。csv2squad2
は正しいデータが来たものとして処理を行います。
サンプルデータはこちらのデータセットの10解答分のcontext, question, answerをもとにcsvにしています。
こちらはtensorflowベース。日本語の学習済みモデル。商用利用不可。
ちょっと遅いけどjuman++がなかなか良い。なんだけどsignal呼び出しているので、メインスレッド以外で使えない。web apiとかで使う場合、ここをちょちょっと修正する必要がある。
うまく単語で区切れたらBoWとかTF-IDFを入力にして、ニューラルネットを学習させて質問を分類して、回答を選択というので結構うまく動く。
このスクラップは2021/04/16にクローズされました