バージョンアップ決定!?
あなたのご要望をお待ちしております。


呼びかけが選べる人工無能

友達に教える。


人工無能のRev. 3.0にちょいと細工したものです。
特徴
特徴
  1. 人工無能に呼びかけてもらう時に、「ちゃん」とか「さん」とか選べるようになってます。
  2. dbmを使っていますので何となくかっちょええ気がします。
  3. 今までの人工無能とは辞書の互換性はありませんが、頑張れば変換可能です。
  4. オプションで辞書引き機能をつけられます。

まずは、こちらのサンプルをご覧下さい。
(新しいブラウザにて表示されます。サンプルのログ・辞書はNo.38と共用してます。)
サンプル版には、プロレス辞書p-dic(法林 浩之さん作、VECTORからダウンロードしました)を適当にいじったものを入れています。
〜〜を辞書でひいて、と話しかけると〜〜を辞書でひいてくれます。
漢字はkakasiを使ってひらがなにして検索しますが、難しい漢字は認識しません。
うまく辞書をひけない場合は、獣神サンダーライガー→じゅうしんサンダーライガー、と平仮名にして聞いてあげて下さい。

必要なファイルや道具
まず必要になるのは、EUCコードを扱えるエディターです。
MacintoshならばJeditやNuEdit、Windowsなら秀丸エディターなどといったエディターがお勧めです。雑誌の付録CD等でお探し下さい。これらのエディターは、シェアウエアですので、気に入ったら作者に送金しましょう。

下記のファイルをダウンロードして下さい。

Windowsの場合
LHA自己解凍ファイルで保存されます。
ダブルクリックで、インストールして下さい。
Macの場合
自己解凍ファイルとして保存されます。
スタッフイットエキスパンダーがあれば、ダブルクリックで自己解凍します。
UNIXの場合
tar + compressです。
zcat no40.tar.Z | tar xvf - で解凍して下さい。
ファイル名 説  明
zhagi3.cgi メインルーチン
zhagi3teach.cgi 教えるCGI
zhagi3.pl 人工無能ライブラリ
dict1 辞書1
dict2 ぼけ辞書
mkdb.pl dbmファイル作成スクリプト
vacuum.pl 辞書吸い上げスクリプト
zhagi3.dat ログファイル
jcode.pl 文字コード変換パッケージ。
以上のファイルが必要になります。
 
オプション辞書機能を使う場合は、以下のファイルをダウンロードして kakasiを設置して下さい
辞書は、別途用意して下さい。
kakasi-2.2.5.tar.gz(kakasi本体)
kakasidict.940620.gz(kakasi辞書)
設置作業
zhagi3.cgi、zhagi3teach.cgiの設定部分を設置するサーバーに合わせて変更します。
変更する部分は、

zhagi3.cgi

  1. #!/usr/local/bin/perl
  2. $CgiName (このCGIのファイル名)
  3. $TeachCgi (教えるCGIファイル名)
  4. $LogFile (ログファイル名)
  5. $Dict1 (辞書1)
  6. $Dict2 (ぼけ辞書)
  7. $HomeUrl (ホームページのURL)
  8. $Kakasi (kakasiのパスオプション辞書を使わない場合は不要)
  9. $OptionDict (オプション辞書。使わない場合はこの行を消す)
  10. $MaxWrite (最大書き込み数-3)
zhagi3teach.cgi
  1. $CgiName (このCGIのファイル名)
  2. $ZhagiCgi (チャットCGIファイル名)
  3. $LogFile (ログファイル名)
  4. $Dict1 (辞書1)
  5. $HomeUrl (ホームページのURL)
等です(.cgiファイルのコメント部分を参照して下さい)。
転送・パーミッションの設定
まず、FTPソフトで全てのファイルを転送します。
ここでは、仮に「public_html」というディレクトリの中に「cgi-bin」(cgi用)「tmp」(ログデータ用)「icons」(画像ファイル用)というディレクトリを作成して、その中に設置するものとします。

尚、転送モードは全てTEXTとなります。

cgi-binディレクトリに入れるもの
ファイル名 パーミッション コマンド
zhagi3.cgi 705 or 755 chmod 705 zhagi3.cgi
chmod 755 zhagi3.cgi
zhagi3teach.cgi 705 or 755 chmod 705 zhagi3teach.cgi
chmod 755 hpost_admin.cgi
zhagi3.pl 604 or 644 chmod 604 zhagi3.pl
chmod 644 zhagi3.pl
jcode.pl 604 or 644 chmod 604 jcode.pl
chmod 644 jcode.pl

tmpディレクトリに入れるもの
ファイル名 パーミッション コマンド
dict1 604 or 644 chmod 604 dict1
chmod 644 dict1
dict2 604 or 644 chmod 604 dict2
chmod 644 dict2
zhagi3.dat 606 or 666 chmod 606 zhagi3.dat
chmod 666 zhagi3.dat
mkdb.pl 705 or 755 chmod 705 mkdb.pl
chmod 755 mkdb.pl
vacuum.pl 705 or 755 chmod 705 vacuum.pl
chmod 755 vacuum.pl

辞書設置作業
  1. 辞書のフォーマット
    辞書のフォーマットは、下記のようになっています。
    • キーワード%!%答え
    • 複数の答えが有る場合は、キーワード%!%答え1#!#答え2#!#答え3....
    • 入力した人の名前を入れたい場合は、ynameと書く。
    • ynameには、「さん」が自動的につくので、ynameさん、と書いてはいけない。
    キーワードは重複していてはいけません(複数行に同じキーワードがきてたらダメ)。
    同じキーワードが複数ある場合は、(行の)最後に出てきたキーワードに対する答えのみ有効となります。 ぼけ辞書は、従来通り、1行に1つづつお返事を書いていって下さい。
  2. オプション辞書のフォーマット
    オプション辞書のフォーマットは、下記のようになっています。
    • キーワード%!%答え
    • 複数の答えが有る場合は、キーワード%!%答え1#!#答え2#!#答え3....
    • キーワードは、必ず平仮名で書く。(漢字がわからない、間違えた、という場合に対応する為)
    標準のkakasi辞書では専門用語をうまく平仮名に対応出来ない場合がありますので、kakasi辞書の方にも手を加えてやるとよいでしょう。
    kakasi辞書(kakasidict)のフォーマットは、
    よみ 漢字
    となります。
  3. dbmファイルの作成
    dict1、オプション辞書は、mkdb.plを使ってdbmファイルにします。
    mkdb.plの使い方は、
    perl mkdb.pl 辞書ファイル名
    です。
    dict1を変換するには、tmpディレクトリ内で、
    $ perl mkdb.pl dict1
    とします。
    zhagi3.plは、でき上がったdbmファイルを参照しますので、元のdict1は消しておきます。
    また、テキストファイルからdbmファイルに変換すると、ファイルサイズが2〜4倍になりますので、ディスク容量にも気をつけて下さい。
  4. dbmファイルからの吸い上げ
    dmbファイルは直接テキストエディタ等では読めませんので、辞書のメンテナンスをする場合は、vacuum.plを使ってテキストファイルに変換します。
    vacuum.plの使い方は
    perl vacuum.pl 辞書名
    です。
    dict1.xxxを変換するには、tmpディレクトリ内で、
    $ perl vacuum.pl dict1
    とします。すると、dict1というファイル(もとの辞書と書式は同じ)が出来上がりますので、これを編集して、mkdb.plで再変換して下さい。
kakasi設置作業
kakasiは、辞書への問い合わせを行う時に、漢字片仮名→平仮名変換を行うために使っています。
サーバーにkakasiがない場合は、自分でサーバーにkakasiをインストールする必要があります。

kakasiの作り方

  • kakasi-2.2.5.tar.gz(kakasi本体)
    kakasidict.940620.gz(kakasi辞書)
    をダウンロードします。
  • この2つをサーバーの適当なディレクトリ内に転送します。
  • $ gzcat kakasi-2.2.5.tar.gz | tar xvfz -
    (標準でgzcat=zcatの場合は、zcat kakasi-2.2.5.tar.gz | tar xvfz -とします。また、tar=GNUtarの場合は、tar xvfz kakasi-2.2.5.tar.gzとします)
    で、kakasi-2.2.5.tar.gzがkakasi-2.2.5ディレクトリに展開されます。
  • $ gunzip kakasidict.940620.gz
    でkakasidict.940620.gzが展開されkakasidict.940620ファイルができ上がります。
  • $ mv kakasidict.940620 kakasi-2.2.5/src/kakasidict
    で、kakasidict.940620をkakasi-2.2.5ディレクトリ内のsrcディレクトリにkakasidictという名前にして入れます。
  • kakasi-2.2.5/src/Makefileの
    PREFIX=/usr/local
    をインストールしたいディレクトリに変更します。例えば、ホームディレクトリが/home/kappaだったとして、その下のlocalディレクトリ内にインストールしたい場合は、
    PREFIX=/home/kappa/local
    としておきます。
  • インストール先ディレクトリを作ります。/home/kappa/localにインストールする場合は、
    $ mkdir /home/kappa/local
    $ mkdir /home/kappa/local/bin /home/kappa/local/lib
    $ mkdir /home/kappa/local/lib/kakasi
    とします。
  • $ cd kakasi-2.2.5/src
    でkakasi-2.2.5/srcディレクトリ内に入ります。
  • $ make
    $ make install
    でkakasiをインストールします。
  • $ cd ../..
    $ rm -rf ./kakasi-2.2.5
    で不要になったkakasi-2.2.5を消します。

転送及びパーミッションの変更についての詳しい説明は、こちらです。

以上で 「呼びかけが選べる人工無能」 の説明を終わります。
尚、ご質問やご意見などございましたら、
MLへ参加して下さい。

友達に教える。


[back]



Copyright (C) 1999 Web新撰組 All Rights Reserved.