*Chatbotを作ってみた [#zcb58556]
* Chatbotを作ってみた [#zcb58556]

キャラクターなどをテキストでお喋りさせるプログラムを作ってみました。使っている環境は以下の通りです。

* python [#vee70bb4]
** 勉強がてらに [#i9c5a53b]
* sqlite [#f9d47032]
** データ部分をファイル単位で管理できる点が、ポータビリティの点で気に入ったから [#k94d56fa]
* mecab [#he48875e]
** 日本語形態素解析では一番メジャーと思われる [#cdac01fe]
- python
-- 勉強がてらに
- sqlite
-- データ部分をファイル単位で管理できる点が、ポータビリティの点で気に入ったから
- mecab
-- 日本語形態素解析では一番メジャーと思われる

** アルゴリズム [#v3fe7567]

基本はマルコフ連鎖モデルです。与えられた入力文を形態素解析で分解し、要素Aの次にくる要素について、その繋がりを学習データとしてカウントします。文章を作成する際は、繋がりのカウントに応じた確率で、次に繋げるデータを選択していきます。

多少細かい調整も入っていますが、基本的な設計思想は上記の通りです。

** 作ってみての所感 [#pc9fb52d]

結局のところ、データエントリ作業のほうが、大変です。20個くらい文章を与えると、それなりに新たなそれっぽい文章を作ってくれて楽しいのですが、如何せん少ないので、すぐに網羅してしまいます。予測不可能な面白さを生み出すには、1000個レベルとか必要ですね。

あと、キャラクターなどを模す場合は、そのキャラクターだとすぐに分かるフレーズを学習データとして与えないと、キャラクターのイメージからブレやすくなります。

学習アルゴリズムも重要ですが、学習データを効率的に収集できる仕組みも同じくらい重要だなあ、と思いました。Twitterのbotであるしゅうまいくんは、学習データの収集はほぼ自動で出来ていますものね。

----

* 履歴 [#q6fb6ca5]

- 2017/08/14 : bokupi 新規作成

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS