日本語文を学習し、毒電波文を出力するソフトです。
汎用的に使えるものを目指したため、外部からDirectSSTPのコマンドを受けて動作します。
動作には.NET Framework 2.0が必要です。
こんな感じ
ダウンロード
現在はβ版の為、今後コマンド等の仕様が変わる可能性があります。
ご注意下さい。
ダウンロード 2006/12/09 version 0.8.5
- 2006/12/02 version 0.5.0 新規作成
- 2006/12/05 version 0.6.1 Mecab対応
- 分かち書きにMecabを利用するようにしました。
- マルコフ連鎖を2単語にしました。
- 危険なコマンドには権限設定が可能なようにしました。
- 入力文字列のクリーンアップ用の正規表現を、オプションで変更可能にしました。
- 大きく変わっている為、dokudenpa.optとdokudenpa.dbを消去し、再起動して作り直すことをお勧めします。
- その他細かい修正を行っています。
- 2006/12/05 version 0.7.0 DirectSSTPインタフェース変更
- どくでんぱ。は処理に時間がかかるため、DirectSSTPのリザルトを返しません。
- そのため、Reference0 に指定されたウィンドウハンドルに結果を投げるよう変更しました。
- その他細かい修正を行っています。
- 2006/12/09 version 0.8.3 mode搭載、他色々修正
- 学習時に「モード」を意識するようにしました。
- そのためDB構造、オプション設定が変わっています。
- dokudenpa.optとdokudenpa.dbを消去し、再起動して作り直すことをお勧めします。
- その他色々と修正を行いました。
- 2006/12/09 version 0.8.4 isBusyOnGakusyu オプション追加
- 2006/12/09 version 0.8.5 たまにロックする問題を修正
- Mecab DLLがスレッドセーフで無いのを忘れていた
このプログラムを使った応用例
使い方
- 単語辞書はデフォルト状態では同ディレクトリの dokudenpa.db です。
- 単語辞書を消去すると起動時に再作成します。
- 設定ファイルは同ディレクトリの dokudenpa.opt です。
単独での使い方
- 起動するとタスクトレイにアイコンが出ます。
- アイコンを右クリックするとメニューが出ます。
- このままでは何も単語を覚えていないので、何も喋れません。
- [テキストの学習]…適当なテキスト(複数行可能)を貼り付けてください。内容を読んで学習します。
- [ファイルから学習]…ファイル(複数選択可能)を選択してください。内容を読んで学習します。
- [URLから学習]…URLを入力してください。内容を読んで(略)
- ある程度学習できたら、アイコンをダブルクリックしてください。電波文を話します。
- 単語数が多くなると動作に時間がかかるようになります。
- 重いと感じたら、まずは[DBの解析]を行ってみてください。
- それでも駄目な場合は、[DBの切り詰め]を行って単語を減らしてみてください。
- PCのパワーにもよりますが、大体10万単語を越えると重く感じました。
- [コマンドライン]…コマンドを打ち込むことができます。
DirectSSTP インタフェース
- このプログラムはDirectSSTPのインタフェースを持っています。
- 起動中は、FMO "dokudenpa_id" に、自分のウィンドウハンドルを書き込んであります。
- id の部分は、デフォルトでは default です。起動時にコマンドライン引数として id を与えると、それがそのまま id になります。
- 例えば、dokudenpa.exe hogehoge とすると、FMO "dokudenpa_hogehoge" を持ちます。
- 同一 id のプロセスは同時起動できません。起動しようとするとそのまま終了します。
- FMOの中身は(現在の版では)Hwndのみです。
- 先頭4バイトを int として読み込み、ウィンドウハンドルとして使ってください。
- SSTPは NOTIFY SSTP/1.1 のみ対応しています。
- 受け付けるEventは、OnDokudenpaCommand のみです。
- Reference0に、応答を受けたいウィンドウハンドルを、
- Reference1に、後述のコマンドを1行記述してください。
- SSTPの通常の応答(SSTP/2.0 OK 等)は行いません。
- したがって、Hwndパラメータは無視されます。
- SSTPを受けると、コマンドによっては以下の返信を別のSSTPセッションで行います。
- 返信の Event は、OnDokudenpaDokudenpaResult、OnDokudenpaCommandResult、OnDokudenpaError のいずれかです。
- Reference0以降の値はEventによって異なります。
(SSTPの例)
(受信:他プログラム→どくでんぱ。)
NOTIFY SSTP/1.1
Sender: SSTPLib1.0
Event: OnDokudenpaCommand
Reference0: 591372
Reference1: dokudenpa
HWnd: 591372
Charset: UTF-8
(返信:どくでんぱ。→他プログラム)
NOTIFY SSTP/1.1
Sender: SSTPLib1.0
Event: OnDokudenpaDokudenpaResult
Reference0: けのけのけのっぴ!
HWnd: 5768756
Charset: UTF-8
仕様
- 細かい仕様は./仕様を参照してください。
- Mecabを使わない場合、mecabdicディレクトリとその中身は必要ありません。(ただし dll は全て残してください)