|
|
03/16(Sun) 00:33
■ AI夢チャット
■夢チャットにAI(人工知能)機能を組み込んだAI夢チャットです。入室者が一人の場合には「AIロボット」が相手をしてくれます。私の携帯ページに設置してるAI夢チャットです。(このチャットは運用中です。試し書きはご遠慮ください)
■ロボットの応答辞書は「ゆいの部屋」さんの「ゆいちゃっと」の技術資料を参考に「勝手にぼっと」「つっこみぼっと」「学習形式」のアイデアと「基本辞書」「つっこみ辞書」の一部を活用させて頂きました。この場を借りてお礼申し上げます。
<特徴>
- iモード・Jフォン・PC対応です。携帯用にサイズ、表示画面ともコンパクトにしています。
- 普通のチャット(参加者多数)、2ショットチャット(参加者2名限定)の両方に利用できます。
- 現在の参加者数、参加者名一覧を入室時に表示するので利用者に親切です。
- 1ページの表示件数と再読み込み時間を、利用者がパケ代を意識しながら任意に選択可能。
- 重複名チェック、入退室メッセージ表示の選択機能。
- 海外サーバ利用時の時差補正機能。
- 投稿メッセージの文字数制限と削除文字数ガイダンス機能。
- 入室拒否ハンドル名、禁句リスト、排除IPアドレス&ブラウザ(機種)名を設定できるので悪戯防止に効果。
- 禁句リストを他の夢シリーズと共用化。夢掲示板や複数のAI夢チャット設置時の禁句リストメンテナンスが簡単にできます。
- 禁句の削除は、全文削除 or 禁句のみ削除の選択が可能。
<AI機能説明>
- ロボットは原則として入室者が1人のときに相手します。在室者が2人以上のときは通常のチャットとなりロボットは発言しません。
- ただし、自分の名前(初期値は「美香」)を呼ばれたときと、管理者が自由に設定した言葉(初期値は「誰か」)という言葉を見つけると、在室者が2人以上でもそれに反応してしゃべります。この初期値は運営者が自由に設定・追加・変更ができます
- ロボットは4つの辞書(基本辞書/おとぼけ辞書/つっこみ辞書/学習辞書)を持っています。各辞書は、1年半の運用を通じ、実際の会話をもとに、ロボットがより自然な会話ができるよう、語彙や表現を追加してブラッシュアップしています。
- ロボットは相手が話すと、そのキーワードに反応し、最初に、基本辞書と学習辞書をサーチして、合致するキーワードがあればそれに対応する応答文を返します。もし、辞書ファイルから2つ以上の応答文が見つかった場合には、その中からランダムに1つを選びます。
- キーワードが基本辞書、学習辞書に見つからなかった場合には、おとぼけ辞書(確率9/10で選択)または、つっこみ辞書(確率1/10で選択)を開いて、その中の応答文からランダムに1つの応答文を選択して応答します。絶妙なタイミングで「おとぼけ」「つっこみ」返答されると面白いものです。
<辞書について>
- 基本辞書(dic1.dat:応答文 約2500語)
項目 | 説明 | サンプル |
記述形式 | キーワード<>応答文 | テスト<>なにかテストしてるのねぇ 宿題<>ROBOTの宿題、NAMEがぜんぶやってよぅ だ.*いスキ<>ROBOTリンはもっともっと大好きですの〜 |
置換文字 | ROBOT はロボット名に、NAME は発言者名に置換します | 発言者”じゅん”の発言文に”宿題”のキーワードを見つけると、NAMEがじゅん、ROBOTが美香に置換され ”ROBOTの宿題、NAMEがぜんぶやってよぅ”の応答文は ”美香の宿題、じゅんがぜんぶやってよぅ”と置き換わって発言します |
正規表現 | キーワードには正規表現が使えます | 上のサンプルの”だ.*いスキ”は”だいスキ””だ〜いスキ””だだだ〜いスキ”など[だ]+[任意の文字列]+[いスキ]の文章に反応します |
- おとぼけ辞書(dic2.dat:応答文 約60語)
項目 | 説明 | サンプル |
記述形式 | 応答文 | いやあ、楽しいお話し ROBOTにあいたいときはROBOTとよんでね NAMEて、優しいのね |
置換文字 | 基本辞書と同じようにROBOT、NAMEの置換文字が使えます | 発言者が”ユウナ”の場合、上のサンプルは ”いやあ、楽しいお話し” ”美香にあいたいときは美香とよんでね” ”ユウナて、優しいのね” と置き換わります |
- つっこみ辞書(dic3.dat:応答文 約15語)
項目 | 説明 | サンプル |
記述形式 | 応答文 実際の応答は[発言内容]+[応答文]を返します | って、なんかちがうとおもう・・・NAME とか、いわれても私こまりますぅ ですよねぇ。このばあい |
置換文字 | 基本辞書と同じようにROBOT、NAMEの置換文字が使えます | ”ティーダ”が”犬は、猫ではないんだ”と発言した場合、上のサンプルは
”犬は、猫ではないんだって、なんかちがうとおもう・・・ティーダ” ”犬は、猫ではないんだとか、いわれても私こまりますぅ” ”犬は、猫ではないんだですよねぇ。このばあい” と置き換わります |
- 学習辞書(dic4.dat:初期状態は応答文 0語)
・学習辞書はチャット参加者が自由に単語登録できる辞書です。参加者同志がすきな話題を登録していくことで、あなたのチャットがあなたのページ固有の会話で盛り上がることをねらって設けています。沢山の会話が登録されるよう工夫してください。
・管理者も管理画面からメンテナンス(新規登録&変更・削除)を行なうことができます。V1.1では、学習辞書の登録数制限機能がありません。応答文1000語で約100KB程度になりますので、適時、管理画面から削除等のメンテナンスをしてください。
項目 | 説明 | サンプル |
学習(登録)方法 | 参加者:キーワード===応答文 をチャット画面の発言欄に入力 管理者:辞書管理画面から登録 | 下のサンプルを学習(登録)させたい時は 夢は?===小説家になるのが一番の夢よ! のように”単語“のあとに“===“ を3つ付けて“文章“を書くと言葉を学習します。“===“ は半角/全角どちらでも構いません。絵文字は使えません。参加者には発言欄に「ヘルプ」と入れると美香が登録方法をガイドします |
記述形式 | キーワード<>応答文 +登録者情報 | 基本辞書の辞書部分の後に「IPアドレス」「機種名」「登録時刻」「登録者名」が付加されます 夢は?<>小説家になるのが一番の夢よ!<>218.217.165.140<>N502i<>11/05-16:58:35<>菊池さん<> |
置換文字 | 基本辞書と同じようにROBOT、NAMEの置換文字が使えます | 基本辞書と同じ |
正規表現 | キーワードには正規表現が使えます | 基本辞書と同じ |
- 4つの辞書ファイルはエディタで直接編集することができます。文字コードはEUC、改行コードはLF形式となっていますので、編集する場合はそれらに対応したエディタを使う必要があります。(Windowsなら「秀丸」(シェアウェア)、「TeraPad」(フリーウェア)、Macなら「Jedit」(シェアウェア)など)
<パスワードの種類と説明>
種類 | 変数名 | 用途 |
管理用パスワード | $admin | 記事・辞書管理に使います |
マスター名 | $master | マスター名で入室すると
・入退室メッセージ「表示」設定でも入退室の表示をしません
・入室者制限で満席でも入室できるようになります
・投稿不可名に管理人がある場合マスター名で入室すると表示が赤色の管理人に置き換わります |
投稿拒否解除パスワード | $passwd | このパスワードを入力した訪問者には投稿拒否を解除します |
■作成手順を説明します。
- プログラムをダウンロードします.
- ダウンロードしたプログラムを解凍し、編集します.
- サーバに転送し、実行権を設定します.
■ プログラムをダウンロードします。
- ファイルのダウンロードの前に、あなたのパソコンにディレクトリを作ります。
- ホームページのある場所(index.htmを置いてある場所)にchatというサブディレクトリを作成します。(ここにydenied.txtを除く解凍したファイルを置きます。)
- サーバー側にもchatというディレクトリを作成しておきます。
- プログラムの名前を(左)クリックするとダウンロードを始めます。
(右クリックでなくて左クリックですのでご注意下さい。)
■downcnt.cgiという名前で保存されますので、aichat.lzhと名前を変更して保存します。これをLhasaなどの解凍ソフトで解凍します。
■ ダウンロードしたファイルを解凍し、編集します。
- ファイルの構成と内容
ファイルを解凍すると、以下のファイルが作られます。
- aichat.cgi(AI夢チャット本体)
- ydenied.txt(禁句定義ファイル)
- jcode.pl (日本語コード変換プログラム)
- dic1.dat(基本辞書)
- dic2.dat(おとぼけ辞書)
- dic3.dat(つっこみ辞書)
- dic4.dat(学習辞書)
- aichat.cgi
aichat.cgiは沢山の機能を持っています。最初にインストールする時は、下の項目のみを必要なら変更します。他の設定は変更しなくても動作します。正常な動作確認が終わって、CGIに慣れて来たら、CGI中のコメントを参考にその他の設定を変更し、あなた用のカスタマイズをすることをお勧めします。
- 1行目: #!/usr/bin/perl をあなたのプロバイダの「perlのあるパス」に書き換えます。
多くのプロバイダは #!/usr/local/bin/perl になると思いますが、うまくいかない場合はプロバイダに問い合わせて下さい。Infowebの場合は #!/usr/bin/perl です。
- 13行目: $title = 'AI夢チャット';にチャットタイトル名を指定します。このままでも構いません。
- 19行目: $backurl = '../index.htm';に「戻」ボタンで戻したい戻り先URLを指定します。チャット用トップページがあるときはそのURLを指定すると便利です。
- 20行目: $homeurl = '../index.htm';に「トップ」ボタンで戻したい戻り先URLを指定します。通常はサイトのトップページを指定します。
- 21行目: $admin = 'xxxxxx';に管理用パスワードを設定します。このパスワードは記事・辞書管理に使います。
- 49行目: $offset = '0';に、海外サーバー利用時で時差がある場合にその時差を設定します。たとえば表示時刻に9時間の遅れがある場合は、$offset = '+9'; と変更します。国内サーバの場合は変更する必要はありません。このまま(0)にします。
- 69行目: @ainame = ("美香","誰か");の1項目に、ロボット名(必須、初期値は「美香」)、2項目以降に、ロボットが反応する言葉(自由設定、初期値は「誰か」の1語)を必要なら("美香","誰か","みか","こんにちは")のように続けて設定します。
- ydenied.txt
このファイルは夢掲示板(V1.0以降)&夢チャット(V2.0以降)両方の共用ファイルです。既に設置済みの方は設置済みのものがそのまま使用できます。夢掲示板、夢チャットを複数個設置されてる場合には、このファイルを変更すれば、すべての夢掲示板、夢チャットで変更が有効になります。追加や削除が1箇所で行えるので変更管理が楽になります。
ydenied.txtでIPアドレス&ブラウザ(携帯機種)名による投稿拒否設定をした場合は、aichat.cgiに以下の設定が必要です。投稿拒否設定をしない場合はこのままでも結構です。
- 59行目: $email = 'xxxx@xxx.nifty.com';にあなたのメールアドレスを指定します。このアドレスに排除解除パスワードの問い合わせメールが届きます。
- 61行目: $passwd = "abc123";に排除解除パスワードを設定します。排除解除パスワードの問い合わせメールが届いた人にこのパスワードを教えるとその人は投稿できるようになります。
- [補足]
jcode.plのディレクトリー指定の方法(手持ちの jcode.pl を使う方)
いくつかのCGIを設置してて、jcode.plを共通に使ってる方は、jcode.plを違うディレクトリーに置いてあると思いますので、
aichat.cgiの require './jcode.pl'; の赤の部分をそのディレクトリー指定に書き換えます。パスの指定のしかたはこちらです。
■ サーバに転送し、実行権を設定をします。
- aichat.cgi、jcode.pl、dic1.dat、dic2.dat、dic3.dat、dic4.dat をサーバ側のchatディレクトリに、ydenied.txt をindex.htmと同じ場所にアスキーモードで転送します。
(注1)ydenied.txtは、夢掲示板(V1.0以降)&夢チャット(V2.0以降)両方の共用ファイルです。既にどちらかで設置済みの方はそのydenied.txtがそのまま使えますので転送の必要はありません。
(注2)データファイル aichat.dat と入室者データファイル aichat.txt はプログラムが自動作成し実行権666を設定します。サーバに転送する必要はありません。
- ファイルの構成と実行権
転送が終わったら、 aichat.cgi、jcode.pl に実行権755、 dic4.dat に実行権666を、ディレクトリ chat に777を設定します。ディレクトリ chat の実行権の設定を忘れないで下さい。
index.htm
ydenied.txt --(注1)
chat(777)
|--------- aichat.cgi (755)
|--------- jcode.pl (755)
|--------- dic1.dat
|--------- dic2.dat
|--------- dic3.dat
|--------- dic4.dat (666)
( |--------- aichat.dat (666) )--(注2)
( |--------- aichat.txt (666) )--(注2)
(参考 ydenied.txtとchat、boardとの位置関係を示します)
board(777)
|--------- yboard.cgi (755)
|--------- jcode.pl (755)
|--------- yboard.dat (666)
■ CGIへのリンク
index.htmからaichat.cgiにリンクを貼る場合は以下になります。
AI夢チャット
さぁ、これで完成です「AI夢チャット」を押して見ましょう。AI夢チャット画面が表示されれば完成です。テストにメッセージを投稿してみましょう。
■ 更新履歴
- 2002.11.09 V1.1 投稿排除者のIPアドレスと機種名を管理画面から見れるように変更。
- 2002.11.07 V1.0 スクリプト公開。
|
|