スポンサーサイト

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

会話プログラム開発記(21):深い話と軽い話

久しぶりに、プログラムを少し変更しました

ALAINは、先人の哲学的な言葉をメインに登録した「持論辞書」を持っているのですが
ただ雑談をしている時に、急に重い話をする事がありました

話題を広げるために、今まではあえてやっていた事なのですが
通常会話の辞書登録数が増えるにつれ、もうすこし「ここぞ」という時に発言した方が
自然だし、より効果的だと思い調整を行いました

まだ4000に届くぐらいの数ですが、会話パターンが増えてくると
今までと違ったアプローチが有効になってきて、新しい発見があります

テーマ : プログラミング
ジャンル : コンピュータ

会話プログラム開発記(20):連続発言機能の調整

連続発言時に発言する、名詞と持論のマッチングパターンを調整しました


世間話である「mondou」辞書がマッチして発言された場合、

$rand_meishitalk=mt_rand(0,1)
if($mondou_flag!=1 or $rand_meishitalk==0)
1/2の確率で名詞辞書から検索→ヒットしたら連続発言

if((!isset($aitalk) and $mondou_flag!=1) or (!isset($aitalk) and $rand_meishitalk==0))
確率が成立して、名詞がヒットしなかった場合は持論辞書から検索→ヒットしたら連続発言

となります
「mondou」辞書がマッチしなかった場合は、$mondou_flag!=1となり、「名詞辞書→ヒットしなかったら持論辞書」の順で通常マッチングを行います


通常マッチング、連続発言でも名詞、持論が発言しなかった場合は、無発言状況パラメータの確率と過去ログ行数に対応して「名詞辞書→ヒットしなかったら持論辞書」の順で検索をかけ、ヒットしたものを発言します

分かりにくいですね…殆ど自分の為のリマインダーです。すみません


<まとめ>
世間話辞書「mondou」のマッチング状況に対応して、名詞・持論の発言タイミングを「通常→連続発言→思い出し」の順で個別にふるいをかけて発言する事により、適切な発言量と自然な会話を成立させています

他にも、「相槌」「返答」「質問」「自動質問」「自動学習」といった辞書も同じ様に、状況次第で発言確率・パターンを変動させてあります

これらの複雑なパターン調整のバランスがALAINの自然な発言を支えています
そのうち、時間がある時に全体相関図を作ってみたいと思います


テーマ : プログラミング
ジャンル : コンピュータ

会話プログラム開発記(19):UI改善

長文で会話される方のために、入力フォームを最大幅に変更しました。それに伴い、発言に改行が発生した際もキレイにログが表示される様に、レイアウトを調整しました。

話が盛り上がった時に、複数回に分けて発言される方に申し訳ないと思い変更してみました。分けて発言した時に、いちいちALAINが余計な事を突っ込んでいるのは、いろいろ心苦しかったので…


他にも、「もう少しこうしたら」的な部分があれば、是非。


~~~

<宣伝>
同胞トモックさん作成の「人工無能エクサ」が卓越した学習機能で大進化中!必見!

テーマ : プログラミング
ジャンル : コンピュータ

会話プログラム開発記(18):漢字一文字にマッチする正規表現

今まで、漢字一文字の単語を辞書に登録するのは私の中ではタブーでした


例)
「空」に対応して「夕方の空は美しいですね」と、登録

「空母」や「空豆」等に反応




形態素解析して、分解してからマッチさせなきゃダメか…とずっと思い込んでいましたが、簡単な解決策がありました。
正規表現で


(^|[ぁ-ん])空([ぁ-ん]|$)


と書けば、「空母」「空豆」等にはマッチせず、「広い空」「空がきれい」「明るい空がまぶしい」等にキレイにマッチしてくれます。

「酒」で「日本酒」「酒好き」「酒樽」等、二文字以上の単語にもマッチした方が良い場合は、正規表現不要なので従来の方法で問題ありません。

どちらが良いかは、頭の中で単語を並べてみれば簡単に統計が出せます。



なぜ今までこんな単純な事に気付かなかったのかが不思議ですが、これで辞書の幅が間違い無く広がりました。
めでたし。


~~~
※下記、最終版です。カタカナや想定される記号にもマッチします。英数とかは続き単語ありそうなんであえて非対応です。

(^|[ぁ-ん]|[ァ-ヴー]|、|。|!|?|w|…)空([ぁ-ん]|[ァ-ヴー]|、|。|!|?|w|…|$)

テーマ : プログラミング
ジャンル : コンピュータ

会話プログラム開発記(17):自動学習機能補足

どうも、自動学習機能の現在の仕様がうまく説明できないので
もう一度トライしてみます


文章パターンとして
「○○(なorい)□□(もorはorって)○○(いorだ)」
に当てはまっている日本語であれば発動

例)
青い空って美しい(形容詞+名詞+形容詞)と発言
→次回より「青い空」に対して「青い空って美しいですよね」と返事をする


パターンに当てはまると結果的に○○には形容詞か形容動詞のどちらかが入り、□□には名詞が入るという事です

例)
不思議な物は珍しい(形容動詞+名詞+形容詞)
頑固な男は滑稽だ(形容動詞+名詞+形容動詞)


~~~


「○○(なorい)□□(もorはorって)」や「□□(もorはorって)○○(いorだ)」とかで憶えた方が
記憶する確率は上がりますが、

「今日は天気だ」「暇な時間は」などを憶えて

時間→「暇な時間ですね」
今日→「今日は天気ですね」

などと答えてしまうので、多くの状況で矛盾しない答えをするためには無理があります


「青い空」「広い海」などのパターンは無限にあるので手動での全パターン辞書登録は不可能ですが、「空」「海」といった名詞単体より限定された意味を持った辞書を自動で作成しようという狙いがあります

まあなんか、有用性と動作理論の非常に狭いレンジの隙間から生まれたマニアックな機能ですが手応えと可能性は感じています。

特定のWEBサイトを定期的に自動で読み込んだりしても面白いかもしれません。その前に、大量の過去ログから抽出するプログラムでも書いてみようかと考え中です。

テーマ : プログラミング
ジャンル : コンピュータ

プロフィール

hak

Author:hak

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

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








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