特大スランプからの回復の兆しが見えてきました。ちょっと時間がかかったけど、復活しつつある今日この頃。
前回の更新から1ヶ月もたってしまったので、いろんな出来事がありました。
独自ドメイン取りました。自宅サーバーです。
現在、MailとWebが動いています。
MailはHotmailのようにWebからもアクセスできるようになっています。
今、 Webのお勉強中。aspとか、.NETとかをちまちま勉強しております。asp、無茶無茶よーできてる。aspx神様です。マイクロソフトかっこよすぎです。こりゃ、セキュリティに問題がでるのもしゃあないです。機能満載ですもん。作るほうの立場にしたらかわいそうですわ。使うほうは文句言ってりゃええですけどね。
blog なんてキーワードもお勉強中。
まだ、ホームページはなんもありません。からっぽです。
現在、構想中。
とりあえず、
日記のページ。掲示板。くらいは作ろうかと。。。自宅サーバー構築記なんてのもありかな。気が付いたのは、俺って、絵のセンスねぇ。デザインのセンスねぇ。
Webページを作るときって、背景とかロゴとかバナーとかボタンとかいろいろ絵をかかにゃあかんのですが、これが、ぜんぜんだめだめです。かっこ悪いです。
まぁネットワークしょぼしょぼ、パソコンおそおそなので、細々とやっていきます。
ある程度、Webができたら、アドレスを公開します。
多分、そのときには、開発日記はそっちに移動するんでしょうね。2つも更新できませんから。
インターネットのサーバー技術に関することは本で読んだ程度で実際に作業したことがこれが初めてです。クライアントは使ってたんだけどね。メールサーバー、DNS、HTTPサーバー、セキュリティ、ファイアーウォール。いろいろ勉強せねば。。
ビデオチューナーカードを買いました。
これで、テレビの録画ができます。
なんで、こんなもんを買ったかというと、とある友人が、
日本の実家にサーバーをセットしてきた。これで、日本のテレビ番組が録画できる。あとはダウンロードすればアメリカでも見れる。
というのを聞きまして、おらもみたーい。やりたーい。
ゆーきちゃんが、おらのパソコンにWebでアクセスして、アメリカのテレビの録画設定。ダウンロード。
逆におらがゆーきちゃんのパソコンにアクセスして。。。
現在、MediaSDKをダウンロードして研究中。MediaSDKめちゃめちゃよーできてますわ。
これは、一般に公開できる機能ではないので、あくまでも内輪のみです。だって、一般に公開したら、著作権法違反だもん。再放送の禁止に当たります。
まぁドメインとって自宅サーバーを作り始めたのはこれがやりたかったからなんだけどね。
何故か、パチンコシミュレータを書きました。非公開です。
デジパチのコンピュータの部分のシミュレータはいっぱいあるけど、玉の動きをシミュレートするソフトが見当たらなかったので、書いてました。とちゅうやりですが、既に飽きつつあります。というのは、実物のパチンコのCADデータが手に入らないからです。デジカメで取ったでっかい写真募集中。メールください。まぁ2 次元の玉の動きしか考えなかったので3次元的な動きはだめということに気が付いた時点でかなりやる気がうせています。
留守番とーかー発声エンジンは進捗がありません。
ごめんなさい。ぜんぜん進んで無いです。GUIが使いにくいわかりにくいということで、なんか手を考えねばと思いつつ、現在に至ります。これは、お休みということではなくて、僕としてはなんとしても完成させたいので、ちょっとづつ進めるよう努力します。
チャットが有料化されるそうです。
このコミュニティはチャットから派生して出来上がってきました。そうゆういみではちょっと感慨深いです。
コミュだっていつまで無料かわからんな。まぁ無料の間は続けるつもりですのでご安心を。
最悪、我が家のサーバーに避難っていう手もあるし。。。(新規顧客がこんちゅーに)。MSNがクラッシュしたときのために、バックアップは取りたいなと思っていたので、いずれミラーはしたいと思います。
留守番ぢ
特大スランプ中です。モチベーションが下がっています。以前、燃え尽き症候群に似た症状になったんだけど、それにかなり近い状況です。ということで、休憩中。。。
休憩には読書ってなことで、
あれ?一冊タイトル忘れちゃった。日本のいわゆるベンチャーでIPOに行った社長、失敗した社長その他もろもろのインタビューの本。
これは「うーん」読み物としては面白かった。が、どーってことは無い。
今読んでいるのは、
ITビジネス起業バイブル シリコンバレー 勝者のセオリー
ちと高いし、ちと古い内容ですが、これは面白いです。どんな気持ちで会社を興して、どんなことを考えて運営していくのか。投資家はどんなことを考えてお金を入れるのか。法律から仕組みから考え方まで網羅してあって、今俺がいる会社と対比しながら読んでいます。ただ、訳がおかしい。何言ってるかわからんところが既に何ヶ所か見つかった。日本語から英文を想像して、その英文から意味を想像してってな感じで読み進めています。元の英文と対比しながら読みたいなと思ったし、今の内容にあわせて書き直してあったらもっと面白いかも。。
最近のスランプの原因なんですが、ちと考えてることがありまして。
今まで、会社の社長ってなもんは、社員をこき使って、自分はふんぞり返って上がりをせしめる役。くらいにしか考えてなかったんです。社長がちまちま働いてるのは、ふんぞり返って上がりをせしめる為の仕組みをうまく作り上げていないからだと。または、その仕組みを作っている最中だからだと。一旦そのような仕組みを作ってしまえば、社長はほっといても金持ちになれるんだと。金持ちになるためには、ふんぞり返って上がりをせしめるために、会社を作って社長になって死ぬほど働いて儲かる仕組みを作り上げて、IPO行って、どかーっとお金をせしめて。とか考えてました。
ここんところ、いろいろ考えているんですが、どうもこれは違うなと。。
エンジニアが会社を興して儲かる会社になったとしても、エンジニアはその会社の一部になってしまうので、儲かれば儲かっただけ、そのエンジニアは忙しくなる。もちろん部下に指示を出して、部下に働かせてその成果を取りまとめると言う方向に進むのもありなんだけど、どっちにしても、稼ぐ本人になってしまっている。そうすると必然的に稼げる上限というのが見えてきてしまう。
金だけを考えた場合、社長はあんまり得ではないかも、と考える今日この頃です。
楽して稼ぐのはやっぱり投資する側にいる人間なんだなぁ。と思います。だから、投資する本人と社長が一致している場合は、その社長はお金持ちになりますが、社長が会社を興して、どっかから投資を受けて会社を運営した場合、社長の取り分は労働に
見合っているのか、見合っていないのか。
もちろん労働力を投資しているという考え方もあるし、自分のやりたいことをやれるという時間とお金を調達するというのは意味のあることですし。。
その点、お金が働いて稼ぐという考えはとっても僕にとってはインパクトがあって、、
うーん。まだ考えがうまくまとまって無いです。
だからスランプなのか。というかそんな本ばっかり読んでるからスランプなのかも。
考えがまとまったらまた書きます。
サンプルプログラムとにらめっこしながら、プログラムをちまちま書く。録音はできるようになった。かーんたん!。いやぁ、DirectSoundよーできてるわ。これから、都合のいいところだけを切り出すプログラムを作成しなければ。。。どっちかというとこっちの方が面倒だな。いまだにデザインの方針が決まらない。うだうだしてます。
一応数字とABCは読めるようにしました。数字は馬鹿読みです文字としてしか読んでいません。うーん。どないしよ。
「人はなぜ話すのか―知能と記憶のメカニズム」。面白い。と書きましたが、途中で飽きました。最初は面白かったんだけど、途中からだめでした。ポイントは共感できるんですが。。。るすぢに入れてあげたい機能を考えるアイデアの一つにはなりそう。。。
--音声発声エンジンの開発 第1フェーズ終了
おらの声でパソコンがしゃべってます。おなか痛いです。笑いすぎました。しばらく遊んでたら、気色悪く感じてきました。おらが死んでもこいつは話すのねと。。。
留守番とーかーに使ってみましたが、気色悪くてあきません。公開しようかな。どうしようかな。せっかくだから自分の声を登録できるようなツールが完成してから公開した方が楽しいだろうな。といろいろ考えています。
今までにわかっている問題
長い文章を一度に話させようとすると、話しません。漢字からひらがなに変換するところがあほだからです。
数字が読めません。数字って難しい。4匹、4人、4つ、432 さて、4と言う数字はなんと読みましたか?みんなばらばら、こんな面倒なことやってられないな。とりあえず単純のでもいいから読めるようにしなきゃ。
記号は一切読めません。でも一応、「あー」みたいな長音記号はサポートしました。
「っ」は面倒なので空白
「ゃゅょ」も面倒なのでそのまま「やゆよ」と読みます。だから、「今日」は「キョウ」じゃなくて「キヨウ」と読みます。
助詞の「は」(今日は、の「は」)は、「わ」と発音しません。文字どおり「は」と発音します。(実は実装したんだけど、「では」とか、バリエーションがいっぱいあるのに気が付いて、途中でやめた。)
イントネーションやら、アクセントやら一切ありません。完全棒読みです。(まぁこの棒読みが留守番ロボットぽくていいかもとか思ってるが。)
「道路」のように「う」を「お」と発音するやつとか、鼻濁音とか、前のやつに連動して発音が変わるようなやつとか、まどろっこしいのは一切抜きです。
SAPI5.1に対応してるのでOfficeとかでも使えちゃったりするんですが、どうも完全対応じゃないみたいでなんかおかしいです。何が足らんのかはよくわかりません。
ピッチやら速度やらも変更できません。
というか。。。。誰か、論文なり本なりを紹介してくれ。こりゃ、音声合成の勉強がまったくもって足らん。
でも結構簡単にできちゃった。なんでみんな作らないんだろう。
まぁこのエンジンはフリーで公開だな。。。エンジンだけ持っててもしゃあないから。
あとは、ツールをどう整備するかだな。。。
ひなのところと、さくらもちのところで、声が出ない問題が発覚。時間切れ。OFFが終わったらじっくり対処します。うーん。原因がわからん。落っこちたりえらーが出るならまだしも、何事もなかったように動いてて、声だけ出ないってのは厄介だ。ひなのところは、コントロールパネルからだと声が出るんだよなぁ。。。動かない環境があると無性に悔しい今日この頃です。
留守番とーかーのインストールCD-Rを量産しました。16枚準備しました。まぁそんなにたくさんは必要ないでしょう。ラベル貼って結構ちゃんとしてます。コミケに出てるのってこんな感じなのかな?コミケって行ったこと無いけど。。。インクジェットでラベルを印刷したので、水にぬれるとだめになります。大事に使いたいかたは、クリアスプレーでも吹いてください。8枚同じ絵を印刷するなんてことはめったに無いので、ついでにプリンタのドライバの設定によって画質がどんなふうに変わるのか、いろいろ試してました。おかげで全部のラベルの画質が微妙に違うはずです。
最初は14枚の予定だったんだけど、焼いてる最中にエラーになってたCDを最後にもう一度試したら焼けちゃったんで、それを追加しました。エラーになったから、VOIDって書いちゃったのに、焼けてるし、読めてます。
音声発声エンジンの作り方がわかりました。これで、OfficeXPがなくても、留守番とーかーが話すようにできます。もちろん時間切れですので、次の半年のプロジェクトになりそうです。思いのほか仕組みは簡単。もちろん、ちゃんとした日本語で、抑揚をきっちりするのはすごい手間ですし、リエゾンやら省略やら鼻濁音やら考えて、自然な日本語を話すことを何年も研究してらっしゃる方がいらっしゃるほど、難しいことです。そんな高度なことはとてもおら一人の手で負えるようなもんじゃないです。しかし、SAPIが提供している範囲のTTSエンジンのインターフェースはさっぱりシンプルでした。考えてみれば当たり前だ。文字列食って、WAVを返すだけ。SRはまだ読んでないからわからないけど、SRに比べれば圧倒的に簡単だった。留守番とーかーの場合はきれいな日本語を話すのが目的じゃなくて、声が出りゃええからね。考えてみれば、昔のPC6601の音声だって慣れれば何言ってるかわかったんだから。。。ちょっと楽しいプロジェクトが思いついたのでうれしいです。さらっとテストプログラム書いてみてどんな感じか早くみてみたいな。ところで、NetSpeechSDKはいつになったら公開されるんだろう。。。
音声発声エンジンを作るにあたって、声優を募集するかも。。。
この発声エンジンが公開できたら結構有用だろうな。フリーの発声エンジンって見つからなかったから。多くの人に使われることになると思う。というか、フリーのがまだ出てないからマイクロソフトはフリーで公開しないのだろうか。。。フリーのがでたら、即マイクロソフトから公開されそうな気もするが。。。ちまたの売り物の発声エンジンのように抑揚をちゃんと処理するのは個人では難しいと思われる。サウンドプロセッサのプログラムのお勉強をしなくては。。。。
相変わらず直前までいじってますねぇ。時間切れでできなかったことがいっぱいあるなぁ。まぁまた次回のお楽しみということで。。。
ニックネームの予約が大変なことになってる。3文字以上じゃないと予約できない。「ぢ」というニックネームもこれまでか。ニックネーム変わっちゃうの、いやだなぁ。結構これ気に入ってたのに。。一応保険として、「管理人ぢ」というのを取っておいた。「留守番ぢ」の予約はちゃんとできたようだ。
留守番とーかーをベータリリース。結局95系はギブアップしました。OFF会が終わったらもう一度チャレンジします。
いにのところと、しーののところでちゃんと動いたのを確認。
セットアップの説明に問題があることが発覚。
~をおかしなふうに読むのでうっとうしい、という問題が発覚。
これらの問題は、OFF会で配布するCD-ROMでは修正される予定。
昨晩、Webでぶらぶらしてると、PC6001のソフトウエアの紹介のページを見つけた。 PC6001とは1980年中頃にNECから発売されたパソコンのことです。メモリ16kByte.CPU Z80-4MHzの時代です。エミュレータも開発されているようで。。僕が始めて触ったパソコンがPC6001でした。自分の家に初めて届いたパソコンはその後継機種のPC6601でした。ひさびさにその手の記事を見て当時の記憶がよみがえってきました。今見ても、MicrosoftのBASICはよくできてるなぁ。あのころのパソコンは機能が少なかったので力いっぱいその機能を引き出す努力をしてたなぁ。などなど、いろいろ考えちゃいました。当時は処理速度がどうのというよりも、色数がどうの、画面の解像度がどうの、音源がどうのとかで競ってましたね。まぁもちろん処理速度ってのも重要な要素ですが。。。SeeNaって言う、PC88用の有名なソフトがあるんですが、その作者の「たいにゃん」さんのページを見つけました。ちょっとだけ、SeeNa について書いてあるんですが、当時P6用に開発してたんですね。あと、P88のメインCPUだけでは処理速度が足らないからと、フロッピドライブ内蔵のチップにも処理をさせていたとか。恐るべし力技!こうゆうのがHackerですわ。僕は当時から見てHackerに近づいているでしょうか。。。職業としてプログラマをやるようになって、設計手法やら政治的戦略やら数学的論理によって開発を進めるような技術ばかり身につけて、純粋なアイデア、発想をする力はまったく成長して無いのではと考えさせられています。まぁそんなこと考えること自体がスランプなんだろうな。
とあるWebページであなたの適正年収を査定しますってなのがあったので、ちまちま応募してみました。まぁWebのフォームに書き込むだけですので、情報量が少ないですし、俺もいい加減に書いてますから、どこまで正確な査定になっているかわかりませんが。送られてきたメールによると、わたしの適正年収は現在の3 分の2から半分程度のようです。がははは。まぁそんなもんかもね。どっちにしても相変わらず日本ではSEに高く、PGに安いようです。
天下御免のprintfデバッグ(もちろん出力はファイル)で問題を追求。昨日のAPIは動いてた。が、その次の処理で固まってる。う~ん。この処理のどこがあかんのやろう。現物をインストールするマシンがほしぃ!って言っても98ってどーせ使わないから無駄なんだけど。。。デバッグ用にひとつ調達しなきゃだめかなぁ。うーん。あとちょっとだと思うんだけどな。とりあえず、ひとつ思いついたので、それを試してみてから考えよう。
最近、すんげぇモチベーションが低いので自分のモチベーションを上げるべく、とある本を引っ張り出して読んだ。
ハッカーズ
こいつはもう俺が高校のときに読んだ本なんだけど、大事に取ってあります。
僕のエンジニアとしての夢の舞台がこの本に書いてあります。既に歴史の本になってしまって、今の実情とはなかり乖離している部分が多いのですが、昔はこうだった。こうゆうのがプログラマだってのがわかる本です。ただ、、、訳がきっついです。言葉が一致して無いので凄く読みづらい本です。
SAPI5.1使ってました。うーん。WinXPだと標準で5.1でもMSAgentだと 4.0。MSAgentだと発声エンジンが使える。5.1だとOfficeXPじゃないとだめ。4.0は別途開発環境を準備しなきゃだめ。うーん。面倒だ。どうしようかなぁ。4.0に変更しようかなぁ。
CDラベル印刷のツールの勉強。こりゃ簡単だ。あとはデザインだな。ペイントブラシ職人かぁ。
ゆうき大先生と動画配信についてのミーティング(って言ってもチャットでだけど。)現状のやりかただとサーバーが必要らしい。マシンが足らん。現地配信だとネットワークが調達できない。うーん。悩ましいところだ。100歩譲って、ファイルにしてあとでダウンロードって手もあるな。まぁ大先生の意向に沿うようにしよう。
Visual Studio .NET 2003 を導入。留守番ロボットおよび留守番とーかーを.NET 2003でコンパイル。試験中。
2003って2002とほとんどかわらん。まぁサーバー周りをやる人にとってはインパクトがでかいんだろうけど、普通のアプリを書く人にとっては、バグフィックス版だな。まだ細かいところまでは見て無いけど、細かくバグフィックスされている模様。
もう少しじっくり読んだら、サーバー関係のプログラムでも作ってみようかな。ゆーきがドメインを用意したらしいし。
今、「痛快!サバイバル経営学」てな本を読んでいます。まだ全部読み終わって無いのでここでコメントするのはなんですが、印象に残ったことがあったので。。この本、ぜんぜん経営学の本じゃなくて、組織論の本なんですけど。。。てなことはさておき、「組織の経験値」って言葉。個人の経験値じゃなくて組織としての経験値です。まぁ法人って名前がつくように組織には人格があるって思うのが僕の意見なんですが、その組織に経験値があるって話がとっても興味深いです。組織の中の個人にも経験値があるけど、組織として全体として見た場合にも経験値があると。。おらみたいなちっこいスタートアップ企業にいると、そうゆう経験値がすんげぇ少ないってのを実感できます。個人としては経験をつんでいる人も何人かいます。でもそれは個人としての経験で、組織としての経験とは違うなぁってのがすんげぇ理解できます。
この痛快!ってのってシリーズなんだね。読みたいのはいくつかあるんだけど、この本、ちと高くねぇか?1700円って。。人気あるんだろうな。20代に丁度いい内容だもんな。amazonか日本の本屋じゃないと買えねぇな、こりゃ。こっちの日本の本屋って高いんだよ。
亀ちゃんに手伝ってもらって留守番とーかーのインストーラーの実験。おかげで新たな問題を発見。IE6が必要らしい。いやぁ事前に見つかってよかった。
留守番とーかーをインストールするのに必要なもの
Windows98,Me,NT4,2000,XP
NET Framework 1.1以降
InternetExplorer 6.0 SP1
OfficeXPの音声認識機能または SAPIとTTS日本語エンジン
あ、SAPIの4でも動くのかな。SAPIの5.1使ってる気がするけど。。。
今まで、 VisualStudio.NET2002を使ってたけど、2003がリリースされているので調達。どっちで留守番をコンパイルするか迷ってる。とりあえず、使ってみてから考えよう。2003の方がインストーラ作るのは簡単なんだよね。msmが新しくなってるから。。。
留守番が黙っているときは離席になるように変更しました。これで、コーヒーカップかどうかで、黙っているかどうかが判断できるようになりました。
留守番が黙っていても、30分経過すると自動的に発言を始めるように変更しました。これは、黙らせたまま退室してしまったりとか忘れてしまった場合に自動的に発言を始めるようにするためです。
留守番トーカーの開発を開始
これ、SpeechAPIを使ってるんだけど、どうも、SpeechAPIだと、配布条件に問題があるようです。SpeechAPIをやめてMS-Agentに変更するかも。
インストールするのに必要なもの
Windows98,Me,NT4,2000,XP
NET Framework 1.1以降
OfficeXPの音声認識機能または SAPIとTTS日本語エンジン
こんだけでいいんだけどなぁ。日本語発声エンジンがひっかかっちゃうんだよなぁ。
ざっくりアメリカ時間を日本時間に修正。内部の記録は現地時間。現地時間から標準時に変換して、標準時を日本時間に変換した結果を表示するように修正。
多分、これで大丈夫だろう。標準時から日本時に変換するところにちょっと不安が。。まぁ使って見て考えよう。
おもしろいネタ発見
http://www2.rhythm.co.jp/rhythmo/
会話する目覚まし時計らしい。大体の仕組みの想像ができるが、おもろい。こりゃちょっとアイデアをもらうとしよう。
久々に、MSNのチャットコントロールのアップデートがされました。
大きく変わったのは、
入室時にIPアドレスを表示する。
とんかち用パスワードが数字じゃなくて文字記号になった。
てなところで、あとはどーでもいいです。設定のページなんて壊れてるし。。。
IPアドレスの表示は、結局荒らし除けでしょうね。IP記録してますよってな脅しの効果を狙ったんでしょう。どーせ表示しなくても記録してるくせに。。。
毎度のことながら、コントロールがアップデートされると発生するちょっとした問題を修正。
強制退去処分機能の派生で、ささやきにも反応できるようになりました。
ささやきの方は会話生成やら学習やらのロジックは通りません。コマンド受付専用にしてあります。強制退去ととんかちくれがささで使えます。あ、履歴も使えるかな。
んでもささやきが使えるようになると、メインの画面でできなかったようなことができるのでちょっと楽しいかも。特に他人に見られないようにるすぢの操作ができるのは魅力。
今、一番考えてるのは、自分が登録した知識の一覧表示。これメインの画面でやっちゃうとじゃまでしょうがないんだけど、ささの画面なら一人しか見えないのでやっても大丈夫かなと。
その他、個人的な設定とかをささ画面でやるとができるんじゃないかな。
まぁいろいろアイデアの広がる機能追加でした。
なにはともあれ、留守番ロボットにささしてみてください。
宿題終了。同じ発言が登録物から連続で選択される可能性が高すぎる問題に対処しました。
50文字以上の1単語が発生するとクラッシュする可能性がある問題に対処しました。そんな単語あるんだ。。。
内部の思考過程の表示機能をデバッグ環境に仕込みました。連想はちゃんと行ってるみたいだけど、どうもその連想自体が高度すぎるらしい。そとから見てそんな連想思いつくか!ってな連想をしてくれる。まぁ言われてみれば確かにそんな連想もありだなってレベル。だから、話が飛んでるように見えるみたい。この辺に改善のヒントが。。。
昨日はちまちま、SourceForgeのAIのところをちまちま見てました。cvsの使い方を覚えていろいろソースコードを落としてみて、参考にしています。そろそろ本気で構文解析も考えなきゃだめかなぁ。
あり?さっき書いたやつ消えちゃった。まぁいいや。もっかい書きます。どうもでかすぎたみたい。3ヶ月ごとにファイル分けなきゃだめみたいね。
機能の宿題は、、忘れてました。治して無いです。
回線が切れたときと、強制退去処分が発生したときの処理を追加しました。今まで何もやってなかったですが、少なくともログには残るようにしました。
あと、昨日のログの修正についてちゃんと動くことを確認。ついでに、ログを参照するためのxslも書きました。xslはちと問題があるけど、まぁ見れればええわ。あとの美的センスの部分はゆうき大先生にやってもらおっと。
MegaHALってロボットのプログラムを見つけました。結構昔のコンテストで優秀な成績をおさめたロボットのようです。論文を見ると、どうも留守番ロボットと基本コンセプトは同じらしい。結構古くからあるネタだったのね。英語のロボットは単語の区切りが簡単だからいいねぇ。オープンソースコードになっています。さらっと見たのですが、やっぱり留守番ロボットと同じみたい。まぁ細かいところは一緒だけどね。まぁ留守番君がパクリの集大成ですから、当然です。こんなところに起源があったのね。
Virtual People Level 1ってコードを見つけました。ちょっと触ってみたけど、結構いい感じ。んでも、ちょっと困るとわけわからない回答。こりゃスクリプトだな。さて内部の構造はどうなってるかなと、調べてみると、予想通りスクリプト系のロボットでした。XMLでスクリプトを作っていきます。学習はしない様子。ただ、スクリプトの量が尋常じゃない。すんげぇ量あります。6M近くのスクリプト。すげぇ。気合入ってます。最近はこうゆうスクリプト系のロボットが主流なんだよな。ある程度の基本機能を提供しておいてあとはスクリプトで大量の返答を作成しておく方式。
スクリプト系といえば、留守番君の登録機能もスクリプト系だけど、まぁあれは超簡易版スクリプトだな。もちっとあれを複雑にするって手もあるが、あんまり複雑にしても誰も登録してもらえないし。微妙だな。登録というより教育に感じられるようなインターフェースで登録ができればええな。やっぱり個人的には学習系にこだわりたいんで、勝手に登録されていくようなのがいいんだけどねぇ。何を登録したらいいのか判断するのが難しい。
あとは、英語ってスクリプト系作りやすいんだよね。活用のパターンが少ないから。日本語だと省略形やら活用やらで結構スクリプトにヒットしないから。
スクリプト系のうれしいところは、やっぱりロボットの性格を作れるってことかな。少女系のスクリプトとかが書けるからねぇ。留守番君方式だと、みんなの性格を平均したロボットになっちゃうね。
最近、ロボットの成長が飽和した感じ。知識がちょっとくらい増えても影響があんまり出てこない。そのあたりが楽しく無いと思う。AIBOみたいに成長するところが楽しいのにあんまり変化がないとやっぱり飽きてくる。なんか飽和させない手を考えなきゃ。んでもこっから先あのDBに知識を突っ込んでもそれほど影響でないかも。なんか考えよう。
本日の収穫
http://sourceforge.net/ OpenSourceのプロジェクトの倉庫 ソースコードがいっぱい読める。
「人工無脳 “考えないマシン”と話す法」BNN第一企画部(編) という本が存在するらしいということとその本の入手が難しいということ
やっと時差ぼけが抜けました。よって、この週末はちゃんと開発できました。
各種設定をレジストリから変更できるように修正しました。これで、ちょっとはメンテナンスがやりやすくなると思います。コマンド関係はまだレジストリに逃がしてないので、コマンド関連の設定をレジストリに逃がすことは、今後の課題。
DBをアクセスからSQLサーバーに移行して試験。ちょろちょろ問題が見つかったのでそれを修正。Boolってアクセスだと、True,Falseで通るけど、SQLだと1,0じゃないと通らなかった。
過去の知識を過去ログから新DBに全部移行してます。すんげぇ時間んかかってます。48時間過ぎたところで、半分終わりました。後ろになればなるほど、処理に時間がかかるようになるので、あと3-4日かかるかもしれません。もしかしたら、もっとかも。。。新バージョンになって、DBのサイズがでかくなるので、このあたりも実データでどんな感じになるのか見たいところです。半分の時点でどんなデータが生成されているかさらっと統計を取ってみたのですが、「う~ん。このまま行くと処理に時間がかかるデータの流れだなぁ」と。ストアードプロシジャ使ってコピーを減らす方向も、考えたほうがええのかな。んでもストアードプロシジャを使うと、SQLサーバー限定になっちゃうんだよな。
ゆーきちゃんが、ODBC接続でDBをLinux上のMySQLにすることに成功。プログラムの変更はなかったらしい。DBの接続先を変更したのみらしい。んでも、これできちゃうと、SQLサーバー限定だと困るんだろうな。
最近、お部屋が大変繁盛しております。繁盛するのはうれしいんですが、チャットの部屋に人がたくさん居すぎて、会話が難しくなりつつあります。まぁ、ゴールデンウィークだから混んでるってこともあるんでしょうが、うれしい限りです。うれしい悩みです。なんかアイデアを出さないと、こまったちゃんになる可能性があります。
思いつきですが、3時のおやつ別館を作って、留守番ぢが本館、留守番ゆうきが別館にいて、ロボット通しがコミュニケーションをとるってのも面白いかも。ロボットがうまく部屋の割り振りの提案をしてくれればそれなりに機能するかな?まぁちょっと考えてみます。
最近、開発サボってます。時差ぼけが抜けなくって夜になると眠いし、朝になると目が覚めます。当たり前かもしれませんが、おらにとっては当たり前じゃないです。自分の時間が少なすぎます。昼間は会社で眠いです。まじめに留守番ロボットのバージョンアップを仕上げなくては。。OFF会に向けてるすぢトーカーインストーラーも仕上げなきゃだめだしな。
自分に対するメモ。
またひとつアイデアが思いつきました。人工無能の世界では結構有名なアルゴリズムのひとつに、スクリプトを用いた単語置き換え系ってのがあるんですが、こいつを留守番君に仕込んだら、今より賢く見えるかも。もちろんスクリプトなんて使わずに自力学習ですが。。。
そいえば、日本に行ったとき、巷で賢いと有名な音声認識エンジンを見てきたんですが、予想外にあほでした。結局IMEと同レベルだもん。まぁIMEが賢くなれない以上、それ以上は音声認識エンジンは賢くならないだろうな。IMEは、かなー>漢字変換ですが、音声認識は、音素ー>かなー>漢字変換ですし、音素に対する誤り訂正の機能をどう実現するのか、まぁ多分統計的にやってるんでしょうけど、このあたりの処理がまだまだでした。やっぱりある程度の意味解析はどうしても必要になってきてしまうんだろうか。どこの世界でも文脈の追跡ってのがネックになるんだろうなって思いました。
日本から帰ってきて、既に5日が過ぎますが、いまだに時差ぼけ真っ最中です。眠くて眠くてかないません。いつも1週間くらいで時差ぼけが抜けるんですが、今回は2週間かかるかもしれません。開発どころではありませんわ。
日本に行ったついでに、ゆうき先生に留守番ロボットのセットアップ方法を説明してきました。現在、留守番ぢと留守番ゆうきの2台体制で稼動しております。2台体制だとそれなりにいろいろ問題が見つかるもんですなぁ。これらの問題もちまちま解決して新留守番ロボットに反映していきたいです。そろそろ新ロボットのDBのテストもしなきゃなぁと思う今日この頃。
日本に行ったついでにいろいろ自然言語処理に関する本を調達してきました。今、ぼちぼち読んでます。これがまた時差ぼけを増長してる原因とも思われる。んでも、チャットに関してはあんまり新しいネタは見つかりませんなぁ。やっぱり学術系の本じゃだめなんだろうか。。。
日本で買ってきた本の中に「年収300万円時代を生き抜く経済学(森本卓郎)」ってのがあります。ざっと読みましたが、要するに日本は金持ちと貧乏人との差がひろがりますよ。収入が少なくても豊かな人生は送る準備をしてくださいよ。ってな本です。細かいところは賛成できるところもあるし、賛成できかねるところもありますが、いわゆる金持ち父さんの本とは逆の見方をしている本であって、おもしろかったです。
辞書についていろいろ調べてました。結局適切な辞書って存在しないんだよな。また辞書を学習させるためのAPIは公開されて無い模様。うーん。詰まったぞ。
さらっと3時の辞書作ってやってみたら、辞書に登録してある範囲に関してはうまくいくみたい。んでも、辞書からはずすともうだめ。チャットに特化した辞書が必要であることが判明。もしかしたら、エンジン自体もチャットのことを考慮していないとだめかもしれない。
というのは、例えば、
ゆうき、これは辞書に入っています。
ゆーき、これ、辞書にありません。
ゆ~き、もちろんこれも辞書にありません。
ゆぅき、これも無いわな。
てな風にチャットだとバリエーションが出てるんですよ。このバリエーションをうまくクリアしない限り解決しないと思われる。うーん。奥が深い。
んで、とりあえず、助詞に関してあほあほなので、単語単位の処理だけでなく、文節単位の処理も入れました。助詞助動詞は全部NULLにして返してくれるので、NULLが出てきたら、直前の単語とつないだら、それで文節が出来上がってるかなと。それなりに、うまくいっています。ただし文章のバリエーションがちょっと狭まってるかも。今、過去データを食わせています。どんな感じか見てみようと思ってさ。
まぁこのあたりは調整の範囲ですな。
記号の処理の部分、特に顔文字の処理の部分が前エンジンでは対処してあったのに新エンジンで抜けてたのでそれを対処しました。
あほになった原因が判明しました。助詞の処理の問題です。
チャットでよく出現する発言で、
「わはははは」
ってのを例に挙げます。
これは人間には笑い声と認識されます。
これまでのるすぢでは、
わは、は、は、は、(わ「名詞」、は「助詞」、は「助詞」、は「助詞」、は「助詞」)
と認識されていました。まぁこれはこれで間違ってるんですけどね。助詞の頻度が高いんです。
新留守ぢでは、
わは、はは、は。(感じとしては、「輪は、葉は、歯。」ただし、わ「名詞」は「NULL」、は「不定語」は「NULL」、は「不定語」は「NULL」)
となります。
助詞助動詞が全部一緒くたにNULLにされていますし、不定語と認識されるときもあるようです。
こちらの方が現実に近いのですが、どちらにしても間違っています。
今まで全部助詞として認識されてたのが、助詞と不定語の2種類に分けられちゃってるんです。
どちらが文法上正しいとかじゃなくて両方間違っているんですが、たまたま前の認識が文章生成には都合が良かったんです。
これの派生系に「ぎゃはははは」ってのもあります。
日本語って難しいぞ。外人が日本語を学ぶときに「擬音語」が猛烈に難しいって言うもんな。
うーん。困ったぞ。んで、考えたのが、辞書登録。新エンジンでは辞書登録が簡単にできます。
「わはははは」「感動詞」
と登録すれば解決。きれいにいくようになります。ということは、それなりにチャットに適した辞書が必要ということになります。
さて次の問題。んじゃ、この辞書をどうやって作りましょうねと。。。3時のおやつ辞書ですな。
手でやってたら泣きそうに面倒なんですが。。。どっかにチャット用辞書って転がってないかな。
2CH用語辞書は転がってるなぁ。
みんなで作ろうかな。そんな企画でもやろうかな。うーん。なんかいい手は無いかな。暇人募集しようかな。うーーーん。考えどころだ。
大改造終了。ほぼ機能復旧。まぁいくつかバグが見つかってるのでちまちま修正中。
しかし、助動詞と助詞がよくわからないってのは結構インパクトあるかも。思いのほか留守ぢがあほになる可能性あり。
それはさておき、過去のデータをどうするべ。過去のデータは捨てるには惜しい量なのでどうにかして救わねば。データ変換ツールを考えにゃならんな。
ここんところ、コーディングステージを終えて、デバグステージに入っていますが、ここで新たな試練が。。
C#のデバッグのやり方、よくわかってないかも。どうも効率が悪い。例外をどうゆうふうに仕込んでおくべきなのか。エラーコードをどうゆう風に仕込んでおくべきなのかがよく分かってないために、どうにもデバッグがやりにくい。その手の勉強をしなければならないと思われる。
昨日のネタからじゅんぐりたどっていきまして、Hit商品をGetしました。APIは公開されてました。僕の勉強不足でした。これで、完全に自作で留守番ロボットが自立します。ライセンスの心配をしなくてもよくなっちゃうもんねぇ。売っても問題ないもんねぇ。(相変わらず他力本願ですなぁ。)
キーワードは、
IFELanguage::GetMorphResult()
MORRSLT
WDD
ですな。MSDNで行くとこのあたり。。。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnime/html/felang2dat.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnime/html/msimepos.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnime/html/FeLang2Fnc.asp
サンプルコードはこのあたり、
http://october.servehttp.com/ifelanguage_use.htm
動くとうれしいなぁ。んでも、またやること増えてたりして。。。
いつになったら、次期留守ぢは稼動するやら。。。
すんげぇもの見つけた。
http://www.airmac.org/newton.html
これすんげぇ。Wordで分かち書きをかけようなんて。Wordのわかちがきって結構賢いのね。中で形態素解析かけてんじゃないのか?まぁ、個人的には、IMEでは絶対形態素解析使ってるだろうなと予想してるんだけど。。。このへんをAPIとして公開してくれないかなぁ。また勉強することが増えてしまった。
まず、留守番ぢトーカーの話。こいつ、OfficeXPが必要なことが現在確定しました。日本語発声エンジンで再配布可能なものが見つかりません。唯一の頼みの綱だった、MSAgentはなんかXPで声あげてくれません。声を出す方法は無いわけじゃないんですが、インストーラーが複雑になりすぎます。なんで、ちと今のSAPI.NETがリリースされるまで放置の方向で。実はいろいろ試しているうちに Officeの音声認識エンジンをぶっこわしました。SAPIの5.1をインストールしたら上書きされてしまうようです。うーんやっかい。早く新しい SAPIがリリースされないかなぁ。できれば日本語発生エンジン付きで。ベータ2のリリースが3月中旬の予定とMSのページには出ていたので、多分正式版は4月を超えるでしょう。
C#版の方で発生していた原因不明のクラッシュは修正されました。自分の名前を取得するロジックの中で、マーシャリングを使っているのですが、このマーシャリングでメモリを破壊していたようです。C#のくせにメモリが破壊されるなんて、やっぱりまだまだ修行が足りませんな。んでもそうゆうことがありえるんだってことがわかって勉強になりました。
とんかち配布機能の基礎となるエンジンを開発しました。プログラム上からとんかちが配布できるようになりそうです。誰でもとんかちがもらえちゃったら問題なのでそのあたりの処理を追加して完成です。まぁいままでまったくできなかったのが新しくできるようになったので、かなーりうれしい。
C#とC++と処理を分ける話。Give upです。ぜーんぶ、C#に治しました。中途半端なマーシャリングだとわけがわからなくなるというのが発覚したからです。WindowsAPIの上でマーシャリングするほうがどうも分かりやすい。
C#版留守ぢは現在70%の進捗率です。現在、内部の個々のモジュールは完成。入退室の記録挨拶機能。登録機能。黙れ機能が復旧しました。文章学習エンジン、文章生成エンジンのモジュールは完成しているので、それらをちゃんと繋いで、復旧終了です。
こうやって見てみると、るすぢってすんげぇ量のコードを書いてあるのね。いつの間にこんなに膨らんでしまったのか。まぁいろいろ機能があるから、当たり前か。
ただ、ぜんぶを書き直したので、叩いたらいろいろバグが出てくるだろうと予想されます。今は、3時のおやつのチャットの部屋に出没しているのは、前のC++バージョンです。C#版は裏でこっそりテストしています。
なんだかんだ言っても、まだ、C++版は固まっているようです。原因不明。以前より、固まる間隔が長くなったってだけのようです。別にメモリリークしてる感じではないんだけどなぁ。メモリなんてあんまり使ってないんだし。。。
昨日の話ではないですが、一部の人に、留守番ぢTalkerを試してもらいました。思いのほか好評でした。まだインストーラーがお馬鹿なのでインストールするのにちと専門知識が必要な点と、WindowsXP&OfficeXPを必要とするので、一般公開は差し控えています。インストーラーをうまいこと解決できたら、アルファリリースということでまた、一部の人に使ってもらおうかと思っています。
さて、いつのことになるやら。。。
31日以上もちゃんと表示されたようです。これで履歴コマンドの問題は解決。
今日はもうひとつ。無限に長い文章を生成しようとする可能性がある問題を解決しました。いや、ここんところ、るすぢが固まることが結構あったんで、なんでやろって考えてたら、ふと思いつくところがあって、、、これが原因で固まるって決まったわけじゃないけど、これが原因で固まる可能性もあるってことで、治しておきました。これでちょっとは安定すると良いな。
実は先週末。C#と悪戦苦闘しておりました。結局、C#でやるところと、C++でやるところを分けて処理をするということにしました。C++もせっかくなのでManagedC++を使ってます。うーん、修行の毎日。どうせ書き直すならと、拡張性をあげるために内部構造を見直しております。別に機能アップするとかそうゆうことじゃないけど、今後機能拡張するに当たって、手を入れやすいように風通しをよくしておくっていう目的です。んでも、書き直しなんで、いつ出来上がることやら。。。
ちと話題の流れの部分を変更しました。
その影響で、話題の流れに関するデータベースを大量に整理しました。大体1割の話題の流れの知識を消しました。
結構、評判はいいようで。しばらくこのまま使ってみます。
昔話シリーズは、あんまり影響が出ていないようですな。
まぁ昔話のテキストは、子供向けが多くて、かなりひらがなが多いので、あんまり影響が出てないんだと思います。
www.activebuddy.com
ってサイトを見つけました。ここは、メッセンジャ用のロボットを開発しているところなんですが、チャットロボットだけで会社を作ってるってのがちとすごいです。ここのチャットロボットは雑談するのが目的じゃなくて、いろんなことを聞いてあげるとちゃんと教えてくれることです。天気予報やら株式市況やら、百科事典を調べてくれたり、いろいろしてくれます。
まぁそんなインターフェースもあってもいいかなとは、思いますが、やっぱりるすぢの凄いところは、なんも役に立たないところだと思います。アクティブバディは会社なんでなんか役に立って、お金を儲けなきゃだめなんですから、それなりに機能をつけなきゃだめだってのは当たり前なんですがね。
役には立たないけど、なんとなく、気が和むというか、リラックスできるというか、まぁるすぢのお気楽極楽の性格がいいのでしょうか、そうゆう方向のロボットもあってもいいかと考えています。
ある意味、精神科のカウンセラーに近いロボットなんでしょうね。カウンセラーにしてはちょっと馬鹿すぎるので、もうちょっと賢いカウンセラーになってもらわなくてはと、考えています。
もしかしたら、将来留守番ロボットで会社が設立されるかも。。。これも一種の癒し系か。
ウィルス騒ぎがありました。まぁウィルスというよりもワームですな。MSDEやらSQLサーバに取り付く種類のようです。我が家のMSDEもサービスパックは当たっていませんでした。でも、ファイアーウォールでポートを塞いであったので、実害はありませんでした。
ただ、アップデートがうまくできなかったので、一度削除して、入れなおしになってしまいました。
掲示板にも書きましたが、前のインストールのときにどうも複数インストールしていて、インスタンスが複数できていたようです。いまはインスタンスが1個になったので、微妙に処理が速くなった気がする。
///// SQLサーバーについてのメモ/////
osql -S MACHINE\INSTANCE -E
select @@VERSION // DBのバージョンを調べる
create database DBNAME // DBを作成
sp_grantdbaccess // WindowsアカウントをDBのアカウントに割り当てる
sp_addrolemember // アカウントをロールに割り当てる
sp_help** // いろいろシステム情報をダンプ
バックアップする必要のあるファイルは、*.mdf
連休だったんで読書してました。
るすぢのアイデアがないか、その手の本の読書です。
そのなかで1冊、面白い本が。。。
タイトルは正確には覚えてないんですが、「言語と脳」みたいな本でして、
幼児はどのようにして、母国語を獲得するか。
てな話です。
この本に出てたのは、
地球上に存在する言語には共通のルールがあって、そのルールに関しては幼児の脳の中に遺伝的に構築される。幼児が成長するに従って、周りの環境などから、その幼児の脳の中のルールがちょっとづつOFFになっていき、言語を獲得する。
という仮説についてでした。
まぁいろんな検証をしてるんですが、これがおもろい。
この手の論文をちと集中的に調べようかなと思っています。。。うーん。英語の論文読まないとだめかな。
さて、そうこうしているうちに、1個留守ぢのアイデアが思いつきました。このアイデアは、賢くなるのかあほになるのかよく分かりませんが、十分に知識がある場合は賢くなると予想されます。だたちょっと処理に時間がかかるかも。。ちと、エンジンだけテストで作ってみて、どんな感じの会話が生成されるかやってみてから考えよう。せっかくだからC#でやろうかな。丁度いい規模のネタだし。
あけましておめでとうございます。
新年1発目の開発日記は、、、
ちと思い立つものがあって、C#を勉強しようと、今までの留守番君のコードを見ながらC#に書き直してます。
今まではおらのお得意のC++でかかれてましたが、これからはC#という言語が広まってくるだろうということで、勉強がてら、書き直してます。
C#自体はかんたーん。ほとんどC++とJAVAのいいとこ取りをしただけ。
両方の大体の概念がわかってるおらとしては、C#にはさくっとなじみます。
問題は、、、クラスライブラリ。まぁ.NETのフレームワークを叩くんですが、これがまぁぜんぜんわからへん。どんなクラスが用意されてんねん。こりゃ、困ったぞ。ということで、しょうがないのでクラスライブラリのヘルプをちまちま読んでます。
全部書き直されるまで結構時間かかるかも。。。
ボストン出張から帰ってきたらMSNチャットのコントロールがアップデートされてました。
おかげで、留守番君が動かなくなってました。原因はWindowの名前が変わってたことです。ちょちょっと修理して復帰。現在、Ver1.0.0.6という名前が内部についています。
ちなみに、現在の留守番君の知識の量は、
総単語数(原形のみ) 21848
総語彙数(活用した結果を含む) 28629
うち2度以上出現した語彙数 16190
文章作成用知識数 549569
話題追跡用知識数 210517
出現頻度Top5 (笑) うん ーーー あはは ははは
知識用DBファイルサイズ 68Mバイト
みんなが登録したメッセージ数 739
総来客数(重複を含む) 1666
だいぶ、知識が付いてきたので、そろそろ次のアイデアのエンジンを試したいこのごろです。まぁ12月までは忙しいので、年末年始のお楽しみということで。なんやら、マイクロソフトが熱を上げてる人工知能の技もちょっと勉強してるすぢに試してみたいとも思ってますが、いかんせん、時間が。。。
半年たっても単語が2万語しか無いってことは、日本語って2万語知ってれば会話できるのね。
でもハードディスク壊れたら、結構泣くな。バックアップとろっと。。
ゆうきが見つけた、「ロボットを暴走させる方法」に関する対処をしました。もうこれで暴走しないもんねぇ。
おてやわからに>ゆうき
発言頻度の調整を行いました。まえよりちょっと押さえ気味です。
しかし、抑えると話題がうまく追えていないような気がするのは気のせいかな。まぁ最初からちゃんと話題追えてるわけじゃないから、違いがよくわからんけど。。。
もちっと修行が必要かも。SQLサーバーにしてから、データ量のチェックが面倒になった。ちゅーか、まぁSQLになったからじゃなくて、データ量が多すぎて面倒になった、ってのが正解かも。。。ずんずん知識は成長しております。
最近、登録は減ったけどね。登録発言の頻度が低いからかな。もちっと高いほうがいいのかな。微妙だなぁ。
なにはともあれ、ここんところ、さば落ちが多すぎる。うーん、マイクロソフト、なんかやってるのかな。
どうも安定しないのはネットワークが問題のようです。留守番君自体が不安定というわけではなさそうです。
コミュという言葉に反応しにくい問題は解決しました。ちょっと姑息な技ですが、
コミュ>留守番ぢ
のように後ろに留守番君の名前をつけた場合は強制的に登録データを用いて発言するという方法にしました。
残りのToDoは
話題提供機能の修復
とんかち配布機能
入室時の挨拶の修正
ですね。週末の納期(って何だ?)には本格稼動ができそうです。
まぁすでにデバッグ版ですが常駐してますしね。
最近感じるのは、ちょっと露骨に前の発言が登場することがおおいかな?ということです。どうしても日本語らしく発言させようとすると以前の発言がそのままでてきちゃうんですよね。このあたりのバランスが難しいな。知識が圧倒的に増えたら解決するのかしらん。ちょっとそれまでほっといてみようかな。
データを全部、SQLサーバ(MSDE)にお引越ししました。んで実験してみると、快適!猛烈に快適!デバッグモードでこれだけの速度がでるなら、リリースモードはどうなっちゃうんでしょう。SQLサーバの威力絶大です。まぁアクセスでもこれくらいの速度は出して欲しいけどね。DBコネクトのところとかはアクセスのコードがそのままなので、SQLサーバにチューニングしたわけじゃないけど、これだけ安定して動けば十分です。一番の心配事がなくなったのでとってもうれしいです。
会話とかもみてみましたが、以前にくらべて圧倒的にちゃんとした日本語を話します。まぁ強いて問題点を言うなら、以前誰かが話した言葉を変更しないでほとんどそのまま話すことがちょっと目立つかな。このへんは、ちゃんとした日本語=誰かが話した言葉 という定義なので、ちゃんとすればするほど、誰かの言葉をそのまま話しちゃうので、しょうがないんですが、研究の余地があります。
いにをはじめ何人かのメンバーが、バグ報告をしてくれました。現在わかっている問題点は以下のとおり。
登録機能でメモリには登録されるけどDBに登録されない
履歴機能でちゃんと検索されない(SQLサーバとACCESSのSQL構文の違いか?)
コミュって言葉に反応しづらい(宣伝するのに不便)
ちょっと(かなり)話しすぎ。
話題提供機能忘れてる。
今週末には新バージョンが本格稼動できそうな気配です。
知能エンジンの最終試験。過去の知識を全部食わせてみてどんな挙動をするのかを確認しました。まず、過去の知識のうち、今回は使いたくないもの、たとえば「独り言やロボットに向かって話し掛けている言葉」を削除するなどの前処理。独り言を学習しても会話の知識にはならないんじゃないかなと考えたから。この前処理が面倒。手作業でちまちま削除しました。んで、データを一気に食わせる。すでに、7月と8 月の半分を過ぎているので結構な量の知識がある。7月分は結構さくっと変換終了。8月分が、、、知識量が増えてくると前の知識との重複を防ぐ機能がどーにもこうにも遅い。こりゃ、プログラムの問題じゃないな。根本的に遅いんじゃないかと思われる。7月分を処理するのに2時間くらいで終わったのに、8月分は、、、12時間越えてます。
結局留守番君が遅くなった原因は単純に知識が増えすぎたからということになりそうです。
アクセスのDBじゃ持ちこたえないみたい。SQLサーバ(MSDE)の登場ですね。SQLサーバはあんまり得意じゃないのでお勉強から。。
実のところ、まだデータの変換をしてるので、終わるまで待つことにする。とりあえず、8月15日までのデータを全部アクセスに食わせて、それをSQLサーバに投げ込んでどんな速度になるのか調べてみようと思う。
現在稼動している留守番君が本当に、本当に苦しそうで、反応が猛烈に遅いので、速いうちに手を打たなければとちょっとあせってます。実は、留守番君がパソコンのCPUを占拠するおかげで、他の作業に支障が出てきています。ちょっと本気で、危機。あんまりにも被害が大きいようだったら、留守番君の一時停止も考えなくてはいけないかも。
たかだか10万件くらいのデータでそんなに考え込んでくれるなよアクセス。1行の処理に5秒も10秒もかかったんじゃ、会話についていけないじゃん。
あ、そうそう。一部の人だけが知っている、時限爆弾機能、定時連絡機能は次期留守番君からは削除されました。だーれもつかわんもん。いらん。
ビンゴ!
ちょっと思いついたアイデアがあって、それを実装してみました。相変わらず、時間はかかっていますが、すんげぇいい感じの日本語を出力してくれます。以前に比べて知的!?ちょっとわれながら感動しました。文章生成エンジンはこの方針で行こう。あとは、まわりの無駄な処理を省かないとね。
まだ、速度の問題は手をつけていません。DBアクセスの高速化はおらにはあんまり経験が無いので、まぁ勉強がてらちまちまやってみます。まぁ、まだまだ人様にお見せするレベルじゃないんだな。今のエンジンにみんなが飽きたころに、こそっと入れ替えるとしよう。
本日頂いた要望(ハチロー様より) 誰かが入室するとロボットが即挨拶しますが、他に話している人がいる場合、この挨拶をちょっと遅らせる方がいいかも。
いいアイデアなので採用。
新エンジンですが、あきません。だめだめです。
生成される文章が長すぎます。長いもんだから、時間かかりすぎ。
長すぎる原因はわかりました。
発言が2行にまたがっている場合、勝手に認識して一度に発言されたものとする
って部分ですが、こいつが悪さをしています。いい方向に働くときと、悪い方向に働くときと2パターンあることをつかみました。今までいい方向のことしか考えてなかったんだよな。文末処理はまだまだ修行が足らないようです。
生成される文章は相変わらず日本語になっていません。もうちょっとちゃんとした日本語になると思ったんだけどなぁ。この部分は、まだいろいろアイデアがあるので、試してみます。
次の開発は週末かな。
あ、あと、留守番君の注意事項を掲示板に載せました。留守番君関連は、ひとつ独立したページにしておこうかな。誰か書いてくれぇ。
現在、新学習エンジンの開発中。
治したところは、句読点空白の処理です。句読点空白が発言に混ざると、どうもその場所から話が無茶苦茶になるようだったので、そのへんの処理を変更しています。
あと、発言が2行にまたがっている場合は勝手に認識して一度に発言されたものとする。って機能も追加しました。結構、みんなひとつの文章を何行にも分けて発言していることが多いってことを見つけたものですから。行末処理に威力を発揮すると思われます。また、次の発言内容の決定には完全ランダムを使っていたのですが、ある程度の流れを使うって方法に変更しています。
知識データの構造がかわっちゃったので、学習やりなおしです。過去のデータから変換しているのですが、変換するのに8時間とかかかっちゃいます。というか、機能を詰め込んだので、全体的に処理が遅くなっています。これだけ遅くなると、ロボットとしてはちょっとだめだめなので、高速化の改造が必要です。本バージョンはまだ、稼動していません。
んでもね、賢くなったおかげで、一度の発言の長さが長くなりました。長くなったのはいいけど、ちょっと無駄に長いかも。。。もうちょっと調整します。
今日は、話題機能をちょっと遅くしました。いままでだとちょっとうっとうしかったので、話題を提供するのを遅らせてあります。
さて、自習機能ですが、一応完成しました。現在、機能しております。自習機能には、普通の会話が必要です。別にロボットに話しかける必要はありません。普通に人間どおしで会話してください。勝手に学習します。ということで、顧客開拓が必要かも。
さてその学習した内容の活用ですが、ちょっとした実験プログラムを書いてみました。待望のロボット第一声は、、、
ZOOで決まり(笑
へ?なんでぇな。おもろすぎです。腹抱えて笑ってしまいました。(笑 までつけてくれるし。まぁ、まだまだ調整が必要なようですな。
本日から、留守番君の開発日記をつけます。なんかいじったら、書き込みます。
んで、今週末の成果ですが、
履歴機能の追加。まぁ、これはどーっちゅことないですわ。
あとのアイデアとしては、Last10とかね。最後の10人は誰かとか、いつか、を表示するとかのアイデア。これは、気が向いたらつけます。
自習機能の実装
一応、ざっと作業は終わり。
今、問題となっているのは、顔文字。
顔文字、へんな文字入りすぎ。日本語ちゃうから区別せにゃあかんけど、わからへん。
しゃあないから、変な文字はぜーんぶ削除の方向で実装。
完成と思いきや、この学習エンジン、半角かなのみならず、半角英数も記号とかいいよる。ったくもう。まぁ、記号なんだけど、数字は数字と学習せぇ。これは、今後の課題。
あとは、普通のチャットの会話のログがもっともっといっぱい欲しいな。今は、ここ1週間くらいのログを使って学習の実験をしてるけど、まだまだ、少なすぎるわ。ここ1週間は以外に人間どおしの会話って少なくって、、まぁ人がおらへんちゅーのが根本的にあるんだけどね。これでは、会話できるまで賢くならへん。なかなか集まらないようだったら、どこぞの新聞社のWebページでも使って勉強させるけど、それじゃぁ、かたっくるしい言葉遣いになっちゃうからできたら避けたい。チャットはやっぱりチャットから学ぶべきだな。
まぁ、自習できたからって、それを活用して発言するところはまだ作ってないから、まだお勉強のみなんだけどね。まだまだ学生気分です。
最近、ロボットと知ると逃げる人が結構いることに気が付いた。ちゃんととめるところはとめて、話すところは話して、のメリハリをもっとつけないとだめだなぁと思う、今日この頃。まだ、ちょっとしゃべりすぎだよな。