本日  昨日
 
03/16(Sun) 01:58

AI夢チャット
夢チャットにAI(人工知能)機能を組み込んだAI夢チャットです。入室者が一人の場合には「AIロボット」が相手をしてくれます。私の携帯ページに設置してるAI夢チャットです。(このチャットは運用中です。試し書きはご遠慮ください)

ロボットの応答辞書は「ゆいの部屋」さんの「ゆいちゃっと」の技術資料を参考に「勝手にぼっと」「つっこみぼっと」「学習形式」のアイデアと「基本辞書」「つっこみ辞書」の一部を活用させて頂きました。この場を借りてお礼申し上げます。
<特徴>
  1. iモード・Jフォン・PC対応です。携帯用にサイズ、表示画面ともコンパクトにしています。
  2. 普通のチャット(参加者多数)、2ショットチャット(参加者2名限定)の両方に利用できます。
  3. 現在の参加者数、参加者名一覧を入室時に表示するので利用者に親切です。
  4. 1ページの表示件数と再読み込み時間を、利用者がパケ代を意識しながら任意に選択可能。
  5. 重複名チェック、入退室メッセージ表示の選択機能。
  6. 海外サーバ利用時の時差補正機能。
  7. 投稿メッセージの文字数制限と削除文字数ガイダンス機能。
  8. 入室拒否ハンドル名、禁句リスト、排除IPアドレス&ブラウザ(機種)名を設定できるので悪戯防止に効果。
  9. 禁句リストを他の夢シリーズと共用化。夢掲示板や複数のAI夢チャット設置時の禁句リストメンテナンスが簡単にできます。
  10. 禁句の削除は、全文削除 or 禁句のみ削除の選択が可能。
<AI機能説明>
  1. ロボットは原則として入室者が1人のときに相手します。在室者が2人以上のときは通常のチャットとなりロボットは発言しません。

  2. ただし、自分の名前(初期値は「美香」)を呼ばれたときと、管理者が自由に設定した言葉(初期値は「誰か」)という言葉を見つけると、在室者が2人以上でもそれに反応してしゃべります。この初期値は運営者が自由に設定・追加・変更ができます

  3. ロボットは4つの辞書(基本辞書/おとぼけ辞書/つっこみ辞書/学習辞書)を持っています。各辞書は、1年半の運用を通じ、実際の会話をもとに、ロボットがより自然な会話ができるよう、語彙や表現を追加してブラッシュアップしています。

  4. ロボットは相手が話すと、そのキーワードに反応し、最初に、基本辞書と学習辞書をサーチして、合致するキーワードがあればそれに対応する応答文を返します。もし、辞書ファイルから2つ以上の応答文が見つかった場合には、その中からランダムに1つを選びます。

  5. キーワードが基本辞書、学習辞書に見つからなかった場合には、おとぼけ辞書(確率9/10で選択)または、つっこみ辞書(確率1/10で選択)を開いて、その中の応答文からランダムに1つの応答文を選択して応答します。絶妙なタイミングで「おとぼけ」「つっこみ」返答されると面白いものです。

<辞書について>
  1. 基本辞書(dic1.dat:応答文 約2500語)
    項目説明サンプル
    記述形式キーワード<>応答文テスト<>なにかテストしてるのねぇ
    宿題<>ROBOTの宿題、NAMEがぜんぶやってよぅ
    だ.*いスキ<>ROBOTリンはもっともっと大好きですの〜
    置換文字ROBOT はロボット名に、NAME は発言者名に置換します発言者”じゅん”の発言文に”宿題”のキーワードを見つけると、NAMEがじゅん、ROBOTが美香に置換され
    ”ROBOTの宿題、NAMEがぜんぶやってよぅ”の応答文は
    ”美香の宿題、じゅんがぜんぶやってよぅ”と置き換わって発言します
    正規表現キーワードには正規表現が使えます上のサンプルの”だ.*いスキ”は”だいスキ””だ〜いスキ””だだだ〜いスキ”など[だ]+[任意の文字列]+[いスキ]の文章に反応します

  2. おとぼけ辞書(dic2.dat:応答文 約60語)
    項目説明サンプル
    記述形式応答文いやあ、楽しいお話し
    ROBOTにあいたいときはROBOTとよんでね
    NAMEて、優しいのね
    置換文字基本辞書と同じようにROBOT、NAMEの置換文字が使えます発言者が”ユウナ”の場合、上のサンプルは
    ”いやあ、楽しいお話し”
    ”美香にあいたいときは美香とよんでね”
    ”ユウナて、優しいのね”
    と置き換わります

  3. つっこみ辞書(dic3.dat:応答文 約15語)
    項目説明サンプル
    記述形式応答文
      実際の応答は[発言内容]+[応答文]を返します
    って、なんかちがうとおもう・・・NAME
    とか、いわれても私こまりますぅ
    ですよねぇ。このばあい
    置換文字基本辞書と同じようにROBOT、NAMEの置換文字が使えます”ティーダ”が”犬は、猫ではないんだ”と発言した場合、上のサンプルは
    ”犬は、猫ではないんだって、なんかちがうとおもう・・・ティーダ”
    ”犬は、猫ではないんだとか、いわれても私こまりますぅ”
    ”犬は、猫ではないんだですよねぇ。このばあい”
    と置き換わります

  4. 学習辞書(dic4.dat:初期状態は応答文 0語)
    ・学習辞書はチャット参加者が自由に単語登録できる辞書です。参加者同志がすきな話題を登録していくことで、あなたのチャットがあなたのページ固有の会話で盛り上がることをねらって設けています。沢山の会話が登録されるよう工夫してください。

    ・管理者も管理画面からメンテナンス(新規登録&変更・削除)を行なうことができます。V1.1では、学習辞書の登録数制限機能がありません。応答文1000語で約100KB程度になりますので、適時、管理画面から削除等のメンテナンスをしてください。
    項目説明サンプル
    学習(登録)方法参加者:キーワード===応答文
      をチャット画面の発言欄に入力
    管理者:辞書管理画面から登録
    下のサンプルを学習(登録)させたい時は
    夢は?===小説家になるのが一番の夢よ!
    のように”単語“のあとに“===“ を3つ付けて“文章“を書くと言葉を学習します。“===“ は半角/全角どちらでも構いません。絵文字は使えません。参加者には発言欄に「ヘルプ」と入れると美香が登録方法をガイドします
    記述形式キーワード<>応答文
      +登録者情報
    基本辞書の辞書部分の後に「IPアドレス」「機種名」「登録時刻」「登録者名」が付加されます
    夢は?<>小説家になるのが一番の夢よ!<>218.217.165.140<>N502i<>11/05-16:58:35<>菊池さん<>
    置換文字基本辞書と同じようにROBOT、NAMEの置換文字が使えます基本辞書と同じ
    正規表現キーワードには正規表現が使えます基本辞書と同じ

  5. 4つの辞書ファイルはエディタで直接編集することができます。文字コードはEUC、改行コードはLF形式となっていますので、編集する場合はそれらに対応したエディタを使う必要があります。(Windowsなら「秀丸」(シェアウェア)、「TeraPad」(フリーウェア)、Macなら「Jedit」(シェアウェア)など)

<パスワードの種類と説明>
    種類変数名用途
    管理用パスワード$admin記事・辞書管理に使います
    マスター名$masterマスター名で入室すると
    ・入退室メッセージ「表示」設定でも入退室の表示をしません
    ・入室者制限で満席でも入室できるようになります
    ・投稿不可名に管理人がある場合マスター名で入室すると表示が赤色の管理人に置き換わります
    投稿拒否解除パスワード$passwdこのパスワードを入力した訪問者には投稿拒否を解除します


作成手順を説明します。
  1. プログラムをダウンロードします.
  2. ダウンロードしたプログラムを解凍し、編集します.
  3. サーバに転送し、実行権を設定します.

プログラムをダウンロードします。

  1. ファイルのダウンロードの前に、あなたのパソコンにディレクトリを作ります。
    • ホームページのある場所(index.htmを置いてある場所)にchatというサブディレクトリを作成します。(ここにydenied.txtを除く解凍したファイルを置きます。)
    • サーバー側にもchatというディレクトリを作成しておきます。

  2. プログラムの名前を(左)クリックするとダウンロードを始めます。 (右クリックでなくて左クリックですのでご注意下さい。)

    downcnt.cgiという名前で保存されますので、aichat.lzhと名前を変更して保存します。これをLhasaなどの解凍ソフトで解凍します。


ダウンロードしたファイルを解凍し、編集します。
  1. ファイルの構成と内容

    ファイルを解凍すると、以下のファイルが作られます。

    1. aichat.cgi(AI夢チャット本体)
    2. ydenied.txt(禁句定義ファイル)
    3. jcode.pl (日本語コード変換プログラム)
    4. dic1.dat(基本辞書)
    5. dic2.dat(おとぼけ辞書)
    6. dic3.dat(つっこみ辞書)
    7. dic4.dat(学習辞書)

  2. 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語)を必要なら("美香","誰か","みか","こんにちは")のように続けて設定します。

  3. ydenied.txt
    このファイルは夢掲示板(V1.0以降)&夢チャット(V2.0以降)両方の共用ファイルです。既に設置済みの方は設置済みのものがそのまま使用できます。夢掲示板、夢チャットを複数個設置されてる場合には、このファイルを変更すれば、すべての夢掲示板、夢チャットで変更が有効になります。追加や削除が1箇所で行えるので変更管理が楽になります。

    ydenied.txtでIPアドレス&ブラウザ(携帯機種)名による投稿拒否設定をした場合は、aichat.cgiに以下の設定が必要です。投稿拒否設定をしない場合はこのままでも結構です。

    • 59行目: $email = 'xxxx@xxx.nifty.com';にあなたのメールアドレスを指定します。このアドレスに排除解除パスワードの問い合わせメールが届きます。
    • 61行目: $passwd = "abc123";に排除解除パスワードを設定します。排除解除パスワードの問い合わせメールが届いた人にこのパスワードを教えるとその人は投稿できるようになります。

  4. [補足] jcode.plのディレクトリー指定の方法(手持ちの jcode.pl を使う方)
    いくつかのCGIを設置してて、jcode.plを共通に使ってる方は、jcode.plを違うディレクトリーに置いてあると思いますので、
    aichat.cgiの require './jcode.pl'; の赤の部分をそのディレクトリー指定に書き換えます。パスの指定のしかたはこちらです。


サーバに転送し、実行権を設定をします。

  1. 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を設定します。サーバに転送する必要はありません。

  2. ファイルの構成と実行権
    転送が終わったら、 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にリンクを貼る場合は以下になります。

<a href="./chat/aichat.cgi">AI夢チャット</a>
さぁ、これで完成です「AI夢チャット」を押して見ましょう。AI夢チャット画面が表示されれば完成です。テストにメッセージを投稿してみましょう。


更新履歴

  1. 2002.11.09 V1.1 投稿排除者のIPアドレスと機種名を管理画面から見れるように変更。
  2. 2002.11.07 V1.0 スクリプト公開。

 
 
©1997- Kikuchisan's workshop All rights reserved //

スポンサーリンク

関連コンテンツ