19
候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学

経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学

候補を列挙する対話システム�

電気通信大学 情報理工学域 I類(情報系)��助教������松吉 俊�

経営情報学実験: 計算言語学�

Page 2: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学

対話システム�

2�

¨  Dialogue system�¨  自然言語等を用いて、人間と対話するソフトウェア�

¤ 文字、音声、身振り、目線�

¨  対話の履歴(history)を用いて、�発話(utterance)を生成する�¤ 履歴を利用しない場合、「質問応答」�

¨  自然言語文の生成(generate)を必要とする�難しいタスク�

Page 3: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学

本実験で利用するプログラム�

3�

¨  Python 3で記述�¨  ユーザーとシステムの1対1の対話�¨  ユーザーからの1つの入力に対して、�

システムが応答文を1つ返す�¨  人間らしい対話を続けることはできない orz�

¨  複数の意味が推測できるキーワードに敏感�¤ この特徴を活かして、限られた範囲ではあるが、�

人間らしい応答を返したい�

Page 4: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学

プログラムファイルの実行�

4�

¨  教材ファイルを好きなディレクトリーにコピーする�

¨  プログラムを実行する�

cp -r /usr/local/class/CL/files/sample XXXX�

cd sample python main.py �

Page 5: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学

実行例�

5�

Page 6: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学

特徴�

6�

¨  ユーザーの発話に存在する名詞に反応する�¤ 特に、最初に発言されたものに反応する�¤ 複合名詞には対応していない�

¨  カギ括弧(「」)で囲われた文字列に最も反応する�¤ 複合名詞であっても、タイトルであっても扱える�

¨  キーワードが複数の意味を持つ場合、�それらの意味を候補として列挙する�¤ Wikipediaの「曖昧さ回避」ページを読み込んでいる�

¨  何も入力しないでEnterを押すと、終了�

Page 7: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学

課題�

7�

¨  ユーザーが曖昧な語句を入力してきた時に、�人間らしい応答を返す��1.  候補の中から、番号を選んでもらう�2.  候補を1つずつ問い合わせる�3.  文脈の中でそれとなく確かめる�

Page 8: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学

一般的な対話システムの概略�

8�

入力理解�

出力生成�

対話管理�

内部状態 更新

行動選択

内部状態 確認

Page 9: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学

プログラムモジュールの構成�

9�

入力理解�

出力生成�

対話管理�

内部状態 更新

行動選択

内部状態 確認

understand_input.py�

manage_dialogue.py�

generate_output.py�

main.pyで、�対話の周回を実現�

Page 10: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学

知識データベース�

10�

¨  ambDic�¤ Wikipediaの「曖昧さ回避」ページから自動抽出�

¨  ptnDic�¤ 定型的な応答規則�

Page 11: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学

本日の課題�

11�

1.  プログラムの動作確認�2.  定型的な応答規則の追加�3.  ambDicの編集�4.  プログラムファイルの中身の(大まかな)理解�5.  候補の番号を選んでもらった後、�

自然な会話を続ける機構の実装�

Page 12: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学

定型的な応答規則の追加�

12�

¨  すでにある規則を参考にしていくつか追加する�¤ 楽しい規則を追加する�

¨  データベース更新:�

上: 入力 (完全一致で判定)�下: 対応する応答�

ファイルの末尾に�追加する�

rm data/ptnD.pickle

Page 13: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学

ambDicの編集�

13�

¨  例として使用したい項目を自由に編集する�¤ 新しい意味の追加�¤ 意味の順番の変更�¤ 新しい項目自体の追加�

<word>�キーワード�<senses>�意味1�意味2� :�

rm data/ambD.pickle

p  データベース更新:�

Page 14: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学

main.py�

14�

¨  対話の周回(ループ)�¨  入力文字列の受け取り�¨  対話履歴(= 内部状態)にユーザー発話を追加�¨  出力文字列の表示�¨  終了時に、ログファイル(h.log)に�

対話履歴を書き込む�

Page 15: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学

understand_input.py�

15�

¨  入力文字列の形態素解析�¨  キーワード集合の抽出�¨  yes/noが読み取れるか判断�¨  第1キーワードの選択�¨  曖昧な場合、意味リストを取得�¨  入力文字列に含まれる数字列の取得�

Page 16: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学

manage_dialogue.py�

16�

¨  追加された発話に対して応答の決定�¤ 定型的な応答規則の適用�¤  yesが読み取れる発話に対する応答生成�¤  noが読み取れる発話に対する応答生成�¤ 候補の番号を選んでもらった後の応答生成�

Page 17: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学

generate_output.py�

17�

¨  対話管理モジュールが応答を決定している場合、�それを返す�

¨  曖昧な語句を含む発話の場合、�意味の候補を列挙する�

¨  曖昧でないキーワードを含む発話の場合、�「好きなんですね。」と言う�

¨  キーワードが1つも取得できなかった場合、�「なるほど。」と言う�

Page 18: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学

来週までの宿題�

18�

¨  プログラムファイルの中身の理解�¨  「候補を1つずつ問い合わせて確かめる」場合、�

自分ならどのように言うか? を文字にしてくる�¨  「文脈の中でそれとなく確かめる」場合、�

自分ならどのように言うか?、�例を定めて文字にしてくる�

Page 19: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学

参考文献�

19�

¨  奥村 監修、中野ら著: �『自然言語処理シリーズ7 対話システム』、�コロナ社、2015�