というわけで、お返事内容を考えるためのクラス作り。
bot(人口無能)には相手の発言をごにょごにょするマルコフ型や、過去ログを元に返事を考えるログ型などがあるけれど、マルコフ型だと自然な文章は作りづらいし、ログ型だとログがたまらないとダメダメなので今回は辞書型で行きます。
最終的には学習システムを実装して「自分で辞書を拡張する辞書型人口無能」を目指すつもり。
今回の実装では「文章のみから返事を考える」ことを目的としたいのでTwitterAPIは使いません。与えられる情報はあくまで「届いたメッセージ」と「送信者の名前」のみ!なのでTwitter以外のbotへも流用可能です。
bot(人口無能)には相手の発言をごにょごにょするマルコフ型や、過去ログを元に返事を考えるログ型などがあるけれど、マルコフ型だと自然な文章は作りづらいし、ログ型だとログがたまらないとダメダメなので今回は辞書型で行きます。
最終的には学習システムを実装して「自分で辞書を拡張する辞書型人口無能」を目指すつもり。
今回の実装では「文章のみから返事を考える」ことを目的としたいのでTwitterAPIは使いません。与えられる情報はあくまで「届いたメッセージ」と「送信者の名前」のみ!なのでTwitter以外のbotへも流用可能です。
実装したい事
- テンプレを使える事 例えば「user_nameさんこんにちは」という文章を登録しておくと「yosiloveさんこんにちは」と発言してくれる。
- コマンドが使えること 一定のコマンドを投げる事で、辞書に登録されていない返事も返せるといい。
- 言い換えに対応してること 「おはよう」と「おはー」と「Hi」と、、、等等を同じものとして扱える。
- 自分宛の発言と全員宛の発言を切り分けできること 自分に話しかけられた時に返事をするのと、相手が一人でしゃべってる時にあいづちを打つのでは文章の内容が違う方がいい。
- 独り言をしゃべること だれからも何も発言されなくても、自分から話題が振れるといい。時間帯別に違う発言が出来るとなおよし。
テンプレに対応する
まずはテンプレに対応する事、「%user-likeFood%が好き」とかすると「沖縄そばが好き」にしてくれるような関数を作ります。データベースには「ユーザ名」「ステータス(likeFoodとか)」「内容(沖縄そば)」を入れておくようにする。なのでカラムは「name」「key」「value」と識別用の「id」を入れて4つ。 以下のようなレコード追加用関数も用意しとく、以降のテーブルにも同じようなのを用意しとく。
トラックバック
URL :
コメント