Pythonで作る対話システムの2章までやってみた
背景
- 言語処理を使ったシステムを何か作ってみたくなったため
- いきなり自力では作れないので,何か写経してシステム作成イメージが欲しかった
やったこと
- 2章までの写経
- プログラム内に利用するには登録が必要なAPIがあったが,個人的に登録が面倒なので登録なしでターミナル上に似たような結果が得られるようにした.
概要
- 対話とは,情報交換の結果生じる変化の過程を意味する
- 対話システムの意義
- 音声入力であれば,声のみで使用可能になり便利になる
- 直感的に使用可能になり,操作方法の学習が不必要になる
- コミュニケーションを通して,幸せを提供する
- 対話システムの課題
- 言外の意味理解
- マルチモーダル情報の扱い
- マルチモーダル情報とは,テキストや身振りなどの複数のモダリティをまとめたもの
- モダリティとは,テキストのような対話に使用される情報種類の単位
- シンボルグラウンディング(記号接地)問題
- シンボルグラウンディングとは,指示語が何を示しているのかを外科医の情報と対応づけること
- フレーム問題
- フレームとは,返答を考える際に考慮する範囲のこと
- 対話システムのタイプ
- タスク指向型
- 非タスク指向型
- タスク指向型対話システムとして,天気応答システムを作成
- 対話行為タイプをSVMで,コンセプトをCRFで推測
- 対話行為タイプの推定モデルでは,学習データにTF-IDFを使用
- 強化学習
変更した内容
- チャットアプリを使用せず,プログラムを実行したターミナルで対話が行われるようにした
- 天気情報については,天気予報 API(livedoor 天気互換)を利用させていただきました
- 詳細な変更箇所はまとめられていない.変更したコードは,Githubにまとめている
感想
- 対話行為タイプでは,分散表現を使用してみてもよさそう
- 別のタスクを追加してみて理解を深めたい
- 強化学習は,別で勉強する
次にやること
- 非タスク試行型対話システムである3章を進める