むのうメモ
人工無能(人工無脳)「むのう」を作成するに当たって気になった事や、裏話的なメモなどを書いておきます。
<ご注意>
このページは[ネタばれ]を含みます。
むのうを純粋に楽しみたい人は、内容を見ないことをお奨めします。
もくじ
- むのうの頭脳
- 長文入力でエラー
- 会話のログ保持制限
- 誤認識される文字
- 学習機能は無い?
- ドコモは音声が聞けない
むのうの頭脳
例えば「行ってきます」にも様々な言い方があるので、むのうは次のように判断します。
- |2行いって|3来きく|2るま|9ねよぜか〜ーっす!
[|2]は、後続文字を数値分だけ複数判定し、何れかにヒットするか判定します。[|2行い]の場合は[行]または[い]でヒットです。
こうすることで、
- 「いってきま〜す」
- 「じゃ、行って来るから大人しく待っててね」
などに反応しています。
しかし、ここで注意しないといけないのは、
にも反応してしまうという事です。
実は「〜で無い」を判定する機能を作ってあるのですが…ちゃんと機能してません。
もしちゃんと実装できたら、あたまに[^1は]を加えて[は]を除外します。
長文入力でエラー
むのうは人が入力した文章を識別する為に、裏で物凄い量の処理をしています。
現在は処理分散と最大文字数制限を施すことでエラー防止に努めていますが、どの程度の制限が必要かは機種によって異なるので、今後処理が増えた場合などにエラーが発生するかも知れません。
その際は BBS などで是非お知らせ下さい。可能な限り対応します。
会話のログ保持制限
ログを無制限に溜めてしまうとエラーする恐れがあったので「最大ログ保持数」(文字数単位)を設定しています。
又、このログはコピーできるようになっていますが、コピーできる量はケータイの仕様によって異なります。(例:au のテキスト編集可能範囲は 1024byte まで)
実は会話ログをテキストファイルで出力とか、それをローカルで読込めないかなとか考えてるんですが、まだテスト未実施です。
誤認識される文字
FlashLite の仕様なのか良く分かりませんが、判定すると同一とみなされてしまう文字が沢山あります。これは入力文字を識別する人工無能にとって致命的な問題です。
一覧
- [違]=[若]=[ゃ]
- [裸]=[合]=[ョ]
- [逃]=[寒]=[え]
- [服]=[時]=[応]
- [何]=[反]
- [歳]=[ば]
- [才]=[ね]
- [嫁]=[で]
- [御]=[ゆ]
- [免]=[と]
- [歌]=[の]
- [約]=[ん]
- [束]=[か]
- [賢]=[悪]
- [眼]=[低]
- [鏡]=[だ]
- [困]=[い]
- [死]=[ム]
- [暑]=[ル]
上記一覧は一部であり、実際にはまだまだあると思われます。
現在、理由が分からず回避策もありません。情報を持っている方が居ましたら是非お知らせ下さい。
*090413追記 その後、掲示板でヒントなど頂き mbord() 関数でマルチバイト数値に変換してから判定すれば回避できることが分かりました。
学習機能は無い?
実は極単純な学習はしていたりします。ただ、本格的な学習機能となると今の環境では難しいです。
FL1.1 だと現行起動中のみの学習(起動時に初期化)、もしくはフラグ管理にしてパスワード型…なんてのもできるかも知れませんが、データ量や学習内容・範囲を考えるとかなり限定されるように思えます。
FL1.1 以外に頼るなら、今のシステム自体が無駄になる(既存のオープンソースを利用した方が断然良い)のでちょっと悲しい。そんな感じです。
ドコモは音声が聞けない
au と softbank は「smaf」というサウンドファイルで音声(歌)を再生させています。
docomo の場合「mld」ファイル(midiファイルも使える?)にすれば良いのだと思いますが、音声のような特殊音の再生はケータイの各メーカー毎に仕様が異なるらしく、しかも YAMAHA から出てる変換ソフトは N シリーズにしか対応してません。
「3gp」ファイルは Flash では鳴らせないと思われる(しかも重い)ので、今のところどうしようもありません。
対処法をご存知の方は是非お知らせ下さい。
![[むのう]](../g/i-mu20.gif)
どうしても聞いてみたい人向けに 3gp ファイルを単体で用意したよ
対応してない場合は諦めてね_
ダウンロード[96KB↑]
![[むのう]](../g/i-mu20.gif)
softbank で聞けない人向けに mmf ファイルも単体で用意したよ
これは au でも聞けるよ でも音質が低いんだよ_
ダウンロード[94KB↑]