スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

私の考える機能の優先順位

某掲示板に書かせて頂いたものと同一内容ですが
自分の記録用にこちらにもアップしておきます

私が考える、会話プログラムに「人間っぽい会話をさせる」
ための機能の優先順位です(ややこしくなるので、細かい機能は入れてません)


1)特定のキーワードにマッチした回答を発言する
2)一つのキーワードに対して、複数の回答を持てる様にする
3)キーワードを正規表現で記述できるようにする
↑NUE(マスオ)は基本的にここまでの機能を持っていました

3)連続で同じ回答にマッチしたら、スキップして次の回答を検索する
(同一キーワードで複数回答可能な場合はの、他の回答を発言する)
4)同一セッション内で、連続でなければ複数回発言しても良い回答(もしくは辞書)と、そうでない回答を分ける
↑NUEよりALAINの発言が人間っぽく見えるのは、これらの機能の影響がほとんどです

5)辞書ごとに、役割分担させる
(過去ログ検索は名詞辞書のみ、あいさつ辞書から回答したら他の発言は回答しない、等)
6)辞書や、状況に応じて発言率を変化させる
↑辞書に依存しない部分でキャラクターに色づけできます。無くても、「人間らしさ」という部分においては大きく影響しなさそうです
ALAINの様に、チャット型プログラムでは有効かもしれません


機能同士が連携して動作する部分が多いので、優先順位を飛ばして機能を搭載しても効果が得られない場合が多そうです

3)、4)あたりを実装するために、ALAINの場合は辞書毎の前回発言キャッシュと、同一セッション内限定のログのキャッシュを持っています
スポンサーサイト

日本語マッチング正規表現マニアックス(2)

ちくちく、ねちねちと辞書を修正、追加する日々が続いております。派手な事はなにも起こらないので、長い正規表現の新作をアップしておきます

(((おぼ|憶|覚)え(て|と)お*(いて)*)|思い(だ|出)(して|せ)|(忘|わす)れ(るな|ないで)(いて)*)(よ|けよ|ね|くれよ*|(くだ|下)さい|((欲|ほ)しい(な|んだ)*))(。)*$

「覚えていてね」「忘れないでください」「思い出してくれ」系の文章殆どにマッチする正規表現です。
「おぼえとけ」「忘れるな」等のおセンチじゃないワードにヒットしないところもポイントです。


長い正規表現は、下記で確認しながら作っています
http://www.rider-n.sakura.ne.jp/regexp/regexp.php

心で話すAIを目指して

ALAINの会話辞書を書いていたら、久々に大作の正規表現ができてしまいましたw

----------------------
(((本当|ほんと|ホント|マジ|まじ)(な)*|((相違|間違)い|(嘘|うそ|ウソ)じゃ)(な|無)い)(に|で|(の|ん)*ですか|な|か(い|よ)*|のか(い)*|んだ(な|ね))|((嘘|うそ|ウソ)(でしょ|だろ|だ)(う)*))?
----------------------

「嘘じゃないの?」「間違い無いんですか?」「マジかよ?」等にマッチする正規表現なのですが、色んなバリエーションを考慮するとこうなってしまいます。着想からパターン作成、バグフィックスまでで大体一時間程かかります。

ALAINも最近は色んなパターンを話す様になってきたので、訪れる方も以前より色んなニュアンスで語りかけてくれます。ログは基本的に全て拝見しているので、毎回返事出来なかった言葉や適切でない返事を追加・編集するのですが、最近はイメージが膨らんで色々なシチュエーションが自然にイメージ出来る様になってきました。ALAINのキャラクターが少しずつ姿を現してきたのだと思います。

ALAINのキャラクターがイメージできる事で、ALAINに対する発言がだんだん推測出来る様になるのですが、それに比例して、対応する範囲を記述する正規表現も長くなる傾向にある様です。上手く言葉に出来ないのですが、「ALAINと会話してくれる方」「ALAIN」「私」の間にある、本来は言葉に出来ない何かによって辞書を書いているような…

nueの時も同じ様な体験をしました。しばらくはALAINの心を育てていく大切な時期になりそうです。

言葉の教え方

人工無脳に今後取り組まれる方に役に立つかも知れない情報を、すこしずつ公開したいと思います。辞書型の人工無脳に言葉を覚えさせる場合は、通常は正規表現を使います。(珍しく少しだけ技術的な事を書きます)
例えば、「そうかもね」と言われて「間違いないと思うぞ」と返す場合、「その通りかもしれないな」には返事をしてくれません。そういう場合に、


ゲストの発言に
(そう|(通|とお)り)かも(な|ね|(知|し)れない)
が含まれる場合

「間違い無いと思うぞ」
で返す


という様なスクリプトを書く事で、「そうかもしれない」「その通りかもね」等の大体考えられるパターンをカバー出来る様になります。
「他の言い回しと被る場合」「感情的になりやすい言葉の場合」等で様々なテクニックがあるのですが、それはまたの機会に…

プロフィール

hak

Author:hak

会話プログラムALAINの開発日誌と会話ログ。ALAINとの会話はどなたでもお気軽にどうぞ。相手はプログラムなので、寛容に接して楽しんで頂けると幸いです。

近況報告
 
リンク
最新記事
カテゴリ
月別アーカイブ
検索フォーム
RSSリンクの表示
QRコード
QRコード








上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。