![Page 1: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学](https://reader033.vdocuments.pub/reader033/viewer/2022050418/5f8e5562b6339c7d8e4e0d56/html5/thumbnails/1.jpg)
候補を列挙する対話システム�
電気通信大学 情報理工学域 I類(情報系)��助教������松吉 俊�
経営情報学実験: 計算言語学�
![Page 2: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学](https://reader033.vdocuments.pub/reader033/viewer/2022050418/5f8e5562b6339c7d8e4e0d56/html5/thumbnails/2.jpg)
対話システム�
2�
¨ Dialogue system�¨ 自然言語等を用いて、人間と対話するソフトウェア�
¤ 文字、音声、身振り、目線�
¨ 対話の履歴(history)を用いて、�発話(utterance)を生成する�¤ 履歴を利用しない場合、「質問応答」�
¨ 自然言語文の生成(generate)を必要とする�難しいタスク�
![Page 3: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学](https://reader033.vdocuments.pub/reader033/viewer/2022050418/5f8e5562b6339c7d8e4e0d56/html5/thumbnails/3.jpg)
本実験で利用するプログラム�
3�
¨ Python 3で記述�¨ ユーザーとシステムの1対1の対話�¨ ユーザーからの1つの入力に対して、�
システムが応答文を1つ返す�¨ 人間らしい対話を続けることはできない orz�
¨ 複数の意味が推測できるキーワードに敏感�¤ この特徴を活かして、限られた範囲ではあるが、�
人間らしい応答を返したい�
![Page 4: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学](https://reader033.vdocuments.pub/reader033/viewer/2022050418/5f8e5562b6339c7d8e4e0d56/html5/thumbnails/4.jpg)
プログラムファイルの実行�
4�
¨ 教材ファイルを好きなディレクトリーにコピーする�
¨ プログラムを実行する�
cp -r /usr/local/class/CL/files/sample XXXX�
cd sample python main.py �
![Page 5: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学](https://reader033.vdocuments.pub/reader033/viewer/2022050418/5f8e5562b6339c7d8e4e0d56/html5/thumbnails/5.jpg)
実行例�
5�
![Page 6: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学](https://reader033.vdocuments.pub/reader033/viewer/2022050418/5f8e5562b6339c7d8e4e0d56/html5/thumbnails/6.jpg)
特徴�
6�
¨ ユーザーの発話に存在する名詞に反応する�¤ 特に、最初に発言されたものに反応する�¤ 複合名詞には対応していない�
¨ カギ括弧(「」)で囲われた文字列に最も反応する�¤ 複合名詞であっても、タイトルであっても扱える�
¨ キーワードが複数の意味を持つ場合、�それらの意味を候補として列挙する�¤ Wikipediaの「曖昧さ回避」ページを読み込んでいる�
¨ 何も入力しないでEnterを押すと、終了�
![Page 7: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学](https://reader033.vdocuments.pub/reader033/viewer/2022050418/5f8e5562b6339c7d8e4e0d56/html5/thumbnails/7.jpg)
課題�
7�
¨ ユーザーが曖昧な語句を入力してきた時に、�人間らしい応答を返す��1. 候補の中から、番号を選んでもらう�2. 候補を1つずつ問い合わせる�3. 文脈の中でそれとなく確かめる�
![Page 8: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学](https://reader033.vdocuments.pub/reader033/viewer/2022050418/5f8e5562b6339c7d8e4e0d56/html5/thumbnails/8.jpg)
一般的な対話システムの概略�
8�
入力理解�
出力生成�
対話管理�
内部状態 更新
行動選択
内部状態 確認
![Page 9: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学](https://reader033.vdocuments.pub/reader033/viewer/2022050418/5f8e5562b6339c7d8e4e0d56/html5/thumbnails/9.jpg)
プログラムモジュールの構成�
9�
入力理解�
出力生成�
対話管理�
内部状態 更新
行動選択
内部状態 確認
understand_input.py�
manage_dialogue.py�
generate_output.py�
main.pyで、�対話の周回を実現�
![Page 10: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学](https://reader033.vdocuments.pub/reader033/viewer/2022050418/5f8e5562b6339c7d8e4e0d56/html5/thumbnails/10.jpg)
知識データベース�
10�
¨ ambDic�¤ Wikipediaの「曖昧さ回避」ページから自動抽出�
¨ ptnDic�¤ 定型的な応答規則�
![Page 11: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学](https://reader033.vdocuments.pub/reader033/viewer/2022050418/5f8e5562b6339c7d8e4e0d56/html5/thumbnails/11.jpg)
本日の課題�
11�
1. プログラムの動作確認�2. 定型的な応答規則の追加�3. ambDicの編集�4. プログラムファイルの中身の(大まかな)理解�5. 候補の番号を選んでもらった後、�
自然な会話を続ける機構の実装�
![Page 12: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学](https://reader033.vdocuments.pub/reader033/viewer/2022050418/5f8e5562b6339c7d8e4e0d56/html5/thumbnails/12.jpg)
定型的な応答規則の追加�
12�
¨ すでにある規則を参考にしていくつか追加する�¤ 楽しい規則を追加する�
¨ データベース更新:�
上: 入力 (完全一致で判定)�下: 対応する応答�
ファイルの末尾に�追加する�
rm data/ptnD.pickle
![Page 13: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学](https://reader033.vdocuments.pub/reader033/viewer/2022050418/5f8e5562b6339c7d8e4e0d56/html5/thumbnails/13.jpg)
ambDicの編集�
13�
¨ 例として使用したい項目を自由に編集する�¤ 新しい意味の追加�¤ 意味の順番の変更�¤ 新しい項目自体の追加�
<word>�キーワード�<senses>�意味1�意味2� :�
rm data/ambD.pickle
p データベース更新:�
![Page 14: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学](https://reader033.vdocuments.pub/reader033/viewer/2022050418/5f8e5562b6339c7d8e4e0d56/html5/thumbnails/14.jpg)
main.py�
14�
¨ 対話の周回(ループ)�¨ 入力文字列の受け取り�¨ 対話履歴(= 内部状態)にユーザー発話を追加�¨ 出力文字列の表示�¨ 終了時に、ログファイル(h.log)に�
対話履歴を書き込む�
![Page 15: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学](https://reader033.vdocuments.pub/reader033/viewer/2022050418/5f8e5562b6339c7d8e4e0d56/html5/thumbnails/15.jpg)
understand_input.py�
15�
¨ 入力文字列の形態素解析�¨ キーワード集合の抽出�¨ yes/noが読み取れるか判断�¨ 第1キーワードの選択�¨ 曖昧な場合、意味リストを取得�¨ 入力文字列に含まれる数字列の取得�
![Page 16: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学](https://reader033.vdocuments.pub/reader033/viewer/2022050418/5f8e5562b6339c7d8e4e0d56/html5/thumbnails/16.jpg)
manage_dialogue.py�
16�
¨ 追加された発話に対して応答の決定�¤ 定型的な応答規則の適用�¤ yesが読み取れる発話に対する応答生成�¤ noが読み取れる発話に対する応答生成�¤ 候補の番号を選んでもらった後の応答生成�
![Page 17: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学](https://reader033.vdocuments.pub/reader033/viewer/2022050418/5f8e5562b6339c7d8e4e0d56/html5/thumbnails/17.jpg)
generate_output.py�
17�
¨ 対話管理モジュールが応答を決定している場合、�それを返す�
¨ 曖昧な語句を含む発話の場合、�意味の候補を列挙する�
¨ 曖昧でないキーワードを含む発話の場合、�「好きなんですね。」と言う�
¨ キーワードが1つも取得できなかった場合、�「なるほど。」と言う�
![Page 18: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学](https://reader033.vdocuments.pub/reader033/viewer/2022050418/5f8e5562b6339c7d8e4e0d56/html5/thumbnails/18.jpg)
来週までの宿題�
18�
¨ プログラムファイルの中身の理解�¨ 「候補を1つずつ問い合わせて確かめる」場合、�
自分ならどのように言うか? を文字にしてくる�¨ 「文脈の中でそれとなく確かめる」場合、�
自分ならどのように言うか?、�例を定めて文字にしてくる�
![Page 19: 経営情報学実験: 計算言語学候補を列挙する対話システム 電気通信大学 情報理工学域 I類(情報系) 助教 松吉 俊 経営情報学実験: 計算言語学](https://reader033.vdocuments.pub/reader033/viewer/2022050418/5f8e5562b6339c7d8e4e0d56/html5/thumbnails/19.jpg)
参考文献�
19�
¨ 奥村 監修、中野ら著: �『自然言語処理シリーズ7 対話システム』、�コロナ社、2015�