月別アーカイブ - September 2008

ゼロからの人工無能制作 初めてのPHP

PHPのソースを見てみる

とりあえず、chat.phpを印刷してじっくり分析することにした。ふむふむ。C言語ちょっとだけやってたから、大体の構造はつかめるかもしんない。メインルーチンが本処理で、サブルーチンは呼び出すための部品、うん、C言語の関数みたいなもんか。

変数宣言

フィーリングで変数宣言の仕方は覚えたけど、型が無いのねー。そして配列の構文が奇想天外な事になっている。調べてみたところ、連想配列とかいうものが使えるらしい。慣れないなぁ。

変数宣言って書いたけど、なんか見た感じ宣言なんてしてないよな(笑)グローバル変数の扱いは注意しなきゃいけないみたいだけど、どこでも変数作ってる......。慣れないなぁ。

POST

POSTってのが至る所に出てくる。これで、画面遷移をコントロールしてるっぽい。if文の中に良く入っているし。で、どういう仕組みだ?

全く、よく分からないことばかりで大変だ。とりあえずこいつは置いておこう。

レスポンスヘッダ

メインルーチンの中で一番分かりやすそうな出力処理から分析してみようと思う。「print_~」のようなサブルーチンを読み込みまくっている。中にはhtmlしか出力していないサブルーチンもあるね。しかーし、またまたよく分からない単語が現れた。HTTPレスポンスヘッダってなんだ!?

ググってみてもよく分からない。HTMLソースを除いても出力されていない。なんなんだ、コイツ。とりあえず、色々とサーバーに情報を送っている、ということだけは把握した。こいつは「おまじない」ということで見なかった事にしておこう。それでも支障はないでしょう。いつか意味が分かる時が来るさってことで(笑)

ふぅ。そろそろお昼ご飯の時間なので続きはまた今度。次回も、PHPを眺めてグチグチ言うだけかも知れない(笑)

著作権表示

この記事で使用しているチャットCGIは、下記のサイトにてMITライセンスで配布されているものです。
http://confetto.s31.xrea.com/

ゼロからの人工無能作成 ベースとなるシステム

スタート

「真面目に人工無能を作ってみよう」と、ようやく思い立った。

「技術が無いから作れない」をスタンスに今まで作らなかったのだが、「作って技術をつけよう」という方針で行くことにする。ひとまず完成を最大の目標とすることで、レベルアップを狙う作戦だ。

ローカルで動く環境を構築する

今のところ、自分は沖縄高専の学生寮に住んでいる。インターネットは、学校のネットワークを使っている訳だから、当然規制が入っている。FTPもその規制の一つだ。FTPでアップロードできないのはめんどくさい。ファイルマネージャーの環境用意するのもめんどくさい。すでにXAMPPをインストールしているので、制作はローカル環境で行う事にしよう。

とりあえず、チャットや掲示板すら作ったことのない自分が、人工無能を作るというのはどうも無謀な気がするので、改造から初めてみることにしよう。

人工無能ARISA

現在、こちらで稼働している人工無能は、人工無能ARISAをベースに作られている(というか自分はARISAの辞書ファイルを作っただけですごめんなさい)。

ということで、XAMPPのフォルダに関連ファイルを置いて、ひとまず動作チェック。

Perl関連の設定はしてあるが、環境変数だのなんだのは触っていなかったので、#!/usr/bin/perl/~の部分を書き換えて、ブラウザからCGIを動かしてみる。

「あれ、動かない......?」

CGI自体はちゃんと動いているのだけれど、会話をするとフリーズしてしまう。なんでやねん。

1時間ほど弄くり回したが、どうも動かない。というかPerl自体が動かない。

心が折れ、ARISAをベースに制作(というか改造)を行うのは諦めることにした(笑)

PHP、FLASH

さて、Perlが動かないが他は動くので、他のもので作ろうと思う。PHPやFLASH、案外C言語とかでも作れるかもしんない。どっちにしろ、ゼロからのスタートだから、どれで作ろうが自分にとって大差はない。(現時点で。絶対に後で後悔しそうだけど)

が、FLASHでXMLを編集するには一度サーバを介さないといけないご様子。ググってみると、「難しくないよ~」とか言っている人がいっぱいいたが、XAMPPの設定を小1時間問い詰めた自分は正直、サーバーという単語がトラウマスイッチになってしまっている。よってFLASHで作成するのは止めた(笑)C言語も同じく。

となると、なんとか制作を始めるところまでたどり着けそうなのがPHPしか無い。

それに、PHPってHTMLに直接書き込むタイプらしいね。HTML大好きな自分にピッタリだ。よし、PHPで何とかやってみよう。

1からPHPを書いたことなんてないから、ひとまずベースとなるチャットCGIを探すことにする。「あ、どうせだからAjax使ったカックイイやつねぇかな」と、その場の気分で『チャット PHP Ajax』で検索。案外すぐに出てきた。

http://confetto.s31.xrea.com/php/chat/

とりあえずこれを使ってみることにしよう。シンプルだし。

XAMPPに落として......あ、動いた。

とりあえず、これから、これを改造して遊んでみよう(MITライセンスらしいので)。ただ、今日はもう疲れたし、やがてネットも切れるから続きはまた今度で。

ゼロからの人工無能制作

スタート

「真面目に人工無能を作ってみよう」と、ようやく思い立った。

「技術が無いから作れない」をスタンスに今まで作らなかったのだが、「作って技術をつけよう」という方針で行くことにする。ひとまず完成を最大の目標とすることで、レベルアップを狙う作戦だ。

予告

これから、地味に人工無能を制作する過程を日記に書いておこうと思う。不定期で。

本当に、ゼロからの作成となります。よって、行き当たりばったりで作っていくと思います(笑)完成するといいんだけどなぁ。

Adobe Creative Suite 4 (CS4) 発売日を発表か

9月23日にちょっとしたイベント

http://adobe.istreamplanet.com/ ※英語圏のみ

上記のサイトで、登録をすると、メールでポッドキャスト(なのかな)などによるアナウンスのお知らせが届くようです。

ちなみに、アメリカ時間の9月23日9:00に届くそうです。ということは、そろそろですね。

CNET系列のニュースサイトでは「9月23日発売!」とか書いてありましたが、正しくは9月23日発表らしいです。とりあえず楽しみに待ってみることにします。

Apple[Let's Rock]Event 新型ipod nano,ipod touch発表イベント速報

Apple Let's Rock 開催

日本時間の深夜2時頃から、スティーブジョブズさんがドカンと新製品発表をしています!

iTunes 8

iTunesは8にバージョンアップし、かなり機能強化された模様。今のところApple Storeは落ちているので、明日にでもダウンロードしますかな。

ipod nano 4G

噂通りの形となりました。そして、やっぱり噂通りiPhoneに合わせて、値段が安くなりました。"Entry price of $149 for 8GB, $199 for 16GB."とのことなので、8GBが大体16000円、16GBが21500円程度となりますね。現機種に比べると、値段あたりの容量倍増という感じですね。ということは、ipod touch もコレに合わせた値段かなぁ......。

apple-lets-rock-056.jpg

ちなみに、ipod classic は120GB $249(26,710円)とのことです。

ipod touch

ipod touch は大幅なグレードアップはなく、薄くなったみたいです。値段はと言いますと、8GB, $229, 16GB for $299, and a 32GB for $399。面倒なので、日本円には自分で変換してください(笑)まぁ、今のものと比べると、各機種5000円ほど値段が落ちたかなぁといった感じです。

ipod 買っちゃう?

お財布的に、しばらくは様子見ですかね。もうちょっと値段が落ちるのを待って、ipod touch 16GBを狙うことにします。

ちなみに、自分はここで英文を読んでいました↓
http://www.engadget.com/2008/09/09/live-from-apples-lets-rock-event-in-san-francisco/

TYPINGMANIAに初音ミクのメルトが追加

タイピングマニア TypingMania

タイピングマニア、というのは歌謡曲に合わせてタイピングして遊ぶという、超上級者向けなタイピングソフト

http://www.sightseekerstudio.com/typingmania/contents/odyssey.html←ここでプレイできる。

そこのオンライン版に、3日ほど前、初音ミクでお馴染みのメルトが追加されたのだッ!

(ちなみにダウンロード版で歌詞ファイルとmp3を用意すれば好きな曲で遊べます。)

さぁ、みなさん、私とタイピング速度勝負してみましょう。というか、ミスでスコアを減点されてしまうので、正確性が大事です。S以外の速度は認めません。(笑)

とりあえずタイピングしてみる

初回プレイ時のスコア↓

Music : メルト -Hard-
Class : AAA
Score : 199103
Max Combo : 281
Correct : 773
Miss : 7
Complete : 48
Solve : 0
Type Speed : 502/min
Corrected Percent. : 99%
Corrected Percent(Solve Cut) : 99%

右手は人差し指と中指しか使わないため、序盤の「すきなの」が辛い。20行目の「すきなの」に苦しめられること数回。

そしてタイピングを長時間

10分後。何とか「すきなの」を打てるようになる。

Music : メルト -Hard-
Class : AAA
Score : 199487
Max Combo : 491
Correct : 774
Miss : 4
Complete : 48
Solve : 0
Type Speed : 490/min
Corrected Percent. : 99%
Corrected Percent(Solve Cut) : 99%

ようやく乗り越えたはいいが、後半の苦手な「B」「W」「E」「R」で引っかかって悔しい思いをする。コンボ数は増えたが、ミス数があまり変わらない状態でさらに数回打ち込む。

Music : メルト -Hard-
Class : AAA
Score : 199744
Max Combo : 685
Correct : 773
Miss : 2
Complete : 48
Solve : 0
Type Speed : 478/min
Corrected Percent. : 99%
Corrected Percent(Solve Cut) : 99%

そして根性で打ち続ける事10分。コンボ685と、もう一息のところで再びミス!もう泣きそうになってその後もう一度連鎖でミス。おかげでミス2。

Music : メルト -Hard-
Class : S
Score : 200000
Max Combo : 774
Correct : 774
Miss : 0
Complete : 48
Solve : 0
Type Speed : 507/min
Corrected Percent. : 100%
Corrected Percent(Solve Cut) : 100%

そして何とか、ノーミスクリア完了............1時間は打ち込み続けました。いやぁ、疲れた。キャプチャ画像取り忘れたのが唯一の心残り。ここで諦める俺じゃねぇ!もう1回ノーミスクリアやってやるがな!そして、さらに1時間。

08091001.JPG

うわぁぁぁぁぁぁ最後でミスったぁぁぁぁ!ここで諦める俺じゃねぇ!そして、10分後。

08091002.JPG

ようやくキャプチャ画像を撮ることができました。ちなみにスコア↓

Music : メルト -Hard-
Class : S
Score : 200000
Max Combo : 775
Correct : 775
Miss : 0
Complete : 48
Solve : 0
Type Speed : 505/min
Corrected Percent. : 100%
Corrected Percent(Solve Cut) : 100%

コンボ数が1増えているのは、「n」の数です。母音の前で省略できるところを、省略しなかったんですねぇ、きっと。馬鹿みたいに3時間近くタイピングしていたのですが、まぁ楽しかったからいいです。すごくいい息抜きになりました。

もちろん、今日は勉強を頑張ったのでそのご褒美ですよ(笑)

え?どうやったらミスが減るかって?そりゃぁ......苦手な文字のところで減速して、緩急をつけてタイピングすりゃおkです。後は集中力です。

あ、アップルの新製品発表会が始まってしまっている!急いで中継を探さなくては。

韓国経済観察

今日も言い訳日記

純粋に、昼までネットサーフィン、3時まで寝てその後10時間ほどお部屋の大掃除をしておりました。明日は近くのジェフ(沖縄にあるファーストフード店)にでも行ってPCが無い世界で勉強しようかなぁと考えております。ここ最近、午前中は為替のチャートを見るのがちょっとした楽しみになっていたりします。

韓国ウォン安

今日は、久しぶりに8時頃に起きました。特ダネのオープニングで小倉さんの雑学的お話を見ていたのだけれど、大学教授らしいコメンテーターが、ウォン安について軽く触れていました。でもここ最近、世界的なドル安。お昼まで為替市場のチャートを見ながら情報収集をしていたのだけれど、そんなドル安のおかげか、急落していたウォンが持ち直していたね。まぁアメリカさんが、名前は忘れたけどとある会社に資金注入を素早く行ったおかげで、韓国が持っているモーゲージが元気になったからじゃないかと私は見ております。とは行っても、実はわたくし、あんまりサブプライム周りはよく分かっていなかったりするのですが。

9月危機説

自分はここら辺の経済的な話に、詳しい訳ではないのですけれども、結構興味があって、勉強中な訳です。韓国経済の問題点くらいは、軽く調べてあって、常識的な範囲は知っております。そんでもって、ケッコー前から言われていた話ですけれども、9月危機説というのがありまして。

平たく説明すると、10年前、アジア通貨危機というものが起こって、韓国は世界中(IMF)からお金を借りました。そのときの返済期限が、今年の9月と11月に集中していて、おまけに今現在韓国ウォン安で、こいつぁヤバぇんじゃねぇの?という話なのです。

なぜウォン安がマズイのかと言いますと、当時1ドル=950ウォンだったのですが、最近は1ドル=1100ウォンにまで落ち込んでいます。何百億ドルも借りたのですから、ウォンで返そうとすると、借りたときよりもたくさん返さなきゃイケナイよ、という訳なのです。ちなみに、韓国は日本と同じように輸出産業が盛んですので、逆にウォン高になっても海外にモノが売れなくなって自滅します。

まぁ外貨準備金という政府のお金を、10年前破綻していた時よりも遙かに多く持っているので、さすがに韓国が大変なことになったりはしないだろう、とも言われています。

2chではここ最近お祭り状態が続いていますので、気になった方はまとめサイトを調べてみると良いかと思います。こんなブログよりも遙かに詳しく載っておりますので。

この記事の続きを読む

言われて気づくアラ

レイアウト大崩壊

一晩寝かせて冷静に自分のブログのレイアウトを見てみよう。

これはいかん!(笑)

いずれリベンジしようと思います。あぁ、あとそれから、今度はちゃんとIE6も見捨てないようにします(笑)実は、このブログのトラフィックを観察すると、FirefoxがIEを僅差で抜き、3位にOperaが2割以上、と少々特殊なブラウザ状況だったりします。IE6と7の割合は1対3だったので、「あぁもういいかなぁ」とか言って崩壊をスルーしました。ごめんなさい。というか透過PNGを平気で使っている点からも以下略ですね。

コンテンツ

それからもう1つ。これは、指摘されて気づいた事なのだけれども。

このブログ、受験勉強関連の話と技術勉強関連の話がごっちゃになってるんだよね。別々のブログにしてしまうか、このままイっちゃうか。ちょっと悩む所。

管理は一元化されてる方がラクなことには違いない。でも、両方、自分の勉強の話ですけれども、ウェブ系の話はやたら専門的な話になる。フツウの人が読んだら、この記事だって意味が分からない言葉だらけなのかも知れない。

閲覧者側に立ってみると、分けた方が読みやすくなるのは確か。

予定

9月の末にでも調整をかけよう。10月1日に学校が始まるんだけど、28日から寮に戻るから、自分の作業空間で1週間くらいヒッキーしようかな。

もし、夏休み中にもうちょい余裕があれば、早めに作業しよう。

ま、とりあえず。もう9月だし、ちょっとモードチェンジしないと。ずーっと、サイト作ったり海外のサイト眺めたりしながらニヤニヤしている訳にもいかない。

人工無能追加機能案


中学生の頃、配布されていたスクリプトを利用して、人工無能の辞書を用意し、会話できるようにしていました。

そんでもって、ちょっと前に記事に投稿したように、それをそのまま再アップし、稼働中だったりする。

今後、スクリプトを改造して強化するとするならば、双方向的な要素を取り入れたい。人間から会話しようとしなくても、AI側から積極的に人間に「しゃべらせる」ような。具体的に言えば、人間に、質問を答えさせればいいんだけどね。

ユーザーを簡単な登録形式で記録するようにして、「相手の情報を記録→会話に生かす」の流れがくめる。質問の答えをCHASENとかで形態素解析して、名詞だけをユーザー情報テンプレートに内容を記述していく感じで。質問の答えに対する返答は、その名詞に関する話題を自分の辞書から探してしゃべる形になるかなぁ。

本当は「教育者が手打ちで辞書を用意」を卒業したいんだけどね(笑)もちろん、現在の辞書も流用する。現時点でも、我ながら辞書の網羅性が高いから、頻出する話題にはちゃんと反応しているんだもの。だから、上記のプログラムを書いて追加するだけで、かなり「会話」が成り立つレベルになると思う。

例えば、
AI「ねぇどこ住んでるの?」
Xさん「沖縄だよ!」【沖縄→Xさん住所地域単語リストに登録】
AI「あ、俺も沖縄!知り合いだったりしてw」(沖縄に反応して用意してあった対応を行う)
Xさん「え、沖縄にサーバーあるの?」
AI「さぁね。あ、そういえばさー、夢とかないの?」(デフォルトの機能:辞書にワードが無い場合の返答+話題切り替え)
Xさん「夢かぁ、どうなんだろうねぇ」
AI「俺の夢はね、」(対応する反応が自辞書にない場合、自分の事を話すように事前に用意)
てな感じで成り立つのでは、と考えてるわけです。

お遊びのチャットプログラムにしては、とても優秀な方じゃないかと(笑)

さらに、ユーザーが増えたら、別の人の話をするとか、知り合いじゃないか聞いてみるとか、色々できるなぁ。

会話、ってものを考えてみれば、お互いの事をしゃべりあっているだけ、とも考えられるよね。それを考えながら設計すれば、辞書作成型の超古典的AIでもそれなりに遊べるものが作れると思う。

ただし、問題があって。

『俺、Perl読めないんです^^;』と本気で勉強しながらプログラムを書いて、人工無能を強化する気は今のところサラサラないのでしたー(笑)

現在、稼働中の人工無能で、中々面白い会話をしていたので、ちょっとピックアップしてみる。↓

この記事の続きを読む

本当の意味でのブログリニューアル完了

自分を構成する4つの柱

今の自分を構成しているものは、4つです。

  • このブログ。
  • 合理性を求めるライフハックの学問への応用の楽しみ。
  • 高専という環境と自分の専門分野。
  • 東大を目指すという目標

去年の自分とは偉い違いです。1年でよくこれだけ変わるものですなぁ、と自分でも思います。

4本の記事を先ほど作成し、サイト上部のリンクと繋げました。今までこのブログに投稿してきたことのまとめでもあり、等身大の自分を全てぶつけたものでもあります。いま、ここまで読んでくれたあなたにお願いです。多少長くなりますが、時間があれば是非とも読んでください。リンクを下にまとめて置きます。

このブログや長衣有希について、いろんな誤解が解け、より理解が深まる事と思います。

バナー作成

バナー

当サイトへリンクする際、下のバナーを使っていただけたらと思います。サイズは日本ローカルと国際標準の二つ用意してあります。

200*40

200*40

88*31

88*31

リニューアル

なんとかデザイン完了

3日ほどかけて、ようやくリニューアル完了。ニュースサイト風なインターフェイスを目指しました。とは言っても、上部のメニューはほとんど制作中って表示されます。後ほど更新しますので、あまり気にしないでください(笑)

結構細かく丁寧にCSS組みましたが、やっぱり最後は疲れて所々手抜きになっちゃってる気がします。まぁ、そこは妥協点ってことで。

なんだかんだで、一番の目玉はやたら長いプロフィールかも知れません。