▼人工無脳メモ▼
人工無脳
人工無脳
「人工無脳(人工無能)」とは人間とおしゃべりしてくれるプログラムのこと。
人工知能に対応する用語で、会話ボット(chatterbot)とも呼ばれることもある。
「無能」にはネガティブなイメージがあるため、現在では「人工無脳」という表記が主流となりつつある。
人工知能と人工無脳
人工知能 人工知能にとって重要なのは会話行為そのものでなく、
意味の理解や推論など会話を支える目に見えない知的活動。人工無脳 人工無脳にとって重要なのは知的活動の有無ではなく、
いかに面白い発言をしてユーザーを楽しませるか。
情報源
書籍
恋するプログラム〜Rubyでつくる人工無脳〜
サイト
人工無脳 参考ゲーム 人工無脳は考える どこでもいっしょ 人工無脳まとめ シーマン ボット技術研究会 くーまん 人工無能ロイディ - マイクロソフトも参入、広告分野で注目される人工「無脳」の魅力とは -
ロボット
メモニ
パターンマッチング
パターンマッチング
入力文章内に任意の単語が存在した時に、任意の返答を行う。
パターン辞書
パターンマッチングの情報データベースを「パターン辞書」と呼ぶ。
【パターン辞書例】
キーワード 返答 ドラ焼き ドラ焼き大好き ネズミ ネズミ大嫌い
【会話例】
入力「おみやげにドラ焼き買ってきたよ」
↓
処理「ドラ焼き」にパターンマッチング
↓
出力「ドラ焼き大好き」
感情モデル
感情モデル
内部にパラメータとして「不機嫌←→上機嫌」のようなパラメータを持たせ、
上機嫌でないと発生しない返答、不機嫌でないと発生しない返答を用意する。
パターン辞書
パターンマッチング条件としてキーワードの他に「条件機嫌値」を追加。
発生した時に遷移する機嫌値の量「起動変動値」も追加。
その他の入力では機嫌値は少しずつ平静(50)に戻っていく。
【感情モデル例】
不機嫌(0)←→平静(50)←→上機嫌(100)
【パターン辞書例】
キーワード 条件機嫌値 機嫌変動値 返答 ドラ焼き 30〜100 +10 ドラ焼き大好き ドラ焼き 0〜29 +2 いらない ネズミ 0〜100 -100 ネズミ大嫌い
【会話例】
入力「ドラ焼きあげる」
↓
出力「ドラ焼き大好き」機嫌値+10
↓
入力「ネズミあげる」
↓
出力「ネズミ大嫌い」機嫌値-100
↓
入力「ドラ焼きあげる」
↓
出力「いらない」
形態素解析
形態素解析
「形態素」とは文章を構成する要素で、意味を持つことができる最小単位のこと。
文章を形態素に分解し、品詞を決定することを「形態素解析」と呼ぶ。
【形態素解析例】
「UFOキャッチャーは貯金箱である」
↓
形態素 品詞 UFOキャッチャー 名詞 は 助詞 貯金箱 名詞 で 助詞 ある 動詞
テンプレート
形態素解析によって取得した名詞をキーワードとして登録。
キーワードは「テンプレート」に埋め込んで返答として利用する。
【テンプレート例】
テンプレート「[キーワード]って食べ物?」
↓
出力「ケーキって食べ物?」
↓
入力「うん」ケーキというキーワードに食べ物というメタデータを追加
キーワードにメタデータが追加されると、さらに具体的なテンプレートが利用できるようになる。
【テンプレート例】
テンプレート「あたしの好きな食べ物は[食べ物]よ」
↓
出力「あたしの好きな食べ物はケーキよ」
マルコフモデル
マルコフモデル
文章中に単語Aが登場したとき、次にどんな単語が登場するかは単語Aによってある程度しぼられる。
ある状態が起こる確率が直前の状態から決まることを「マルコフ連鎖」と言い、
マルコフ連鎖によって状態が遷移することを表した確立モデルを「マルコフモデル」と呼ぶ。
マルコフ辞書
単語のつながりを表した表を「マルコフ辞書」と呼ぶ。
「A→B」という単語のつながりにおいて、Aを「プレフィックス」Bを「サフィックス」と呼ぶ。
【マルコフモデル例】
2単語では細かすぎて、意味の通らない文章になる確率が高いので、3単語でマルコフ辞書を作成する。
「UFOキャッチャーは貯金箱である」
↓
UFOキャッチャー→は→貯金箱→で→ある
「UFOキャッチャーが貯金箱であってはならない
↓
UFOキャッチャー→が→貯金箱→で→あって→は→なら→ない
プレフィックス1 プレフィックス2 サフィックス UFOキャッチャー は 貯金箱 は 貯金箱 で 貯金箱 で ある,あって UFOキャッチャー が 貯金箱 が 貯金箱 で で あって は あって は なら は なら ない
文章を作る時は、プレフィックスの2単語に続くサフィックスをランダムに選択し、
プレフィックス2と今選択したプレフィックスを新たなプレフィックスとして選択し、
という作業をENDがでるか決められた回数になるまで繰り返す。
−戻る−