perl

みんな Perl やろうよ! - IT戦記に同意。

perlやる人の悪い癖として、perlやらない人の「perlはわけわからん」とかの発言に対して「HTTPサーバできたよー」 use IO::Socket;$SIG{CHLD}=sub{wait};for($s=new IO::Socket::INET( LocalPort,9999,Listen,5,Reuse,1);$c=$s->accept;){if(!($p=fork)){whi…

PHPのおべんきょー用対話環境ほしい。

PHPよくわからんで、対話環境とか欲しーなあ思ったけど見あたらんかった。なのででっちあげた。こんな動作。 % phpterm.pl php> $x = "hoge"; php> $y = $x . "\n"; php> echo $y; hoge php> ただ毎回php -r inputやってるだけ。超てきとう、どころじゃない…

クロージャが簡単につくれていいなと思った。

% cat hoge.pl $counter1 = makecounter(); $counter2 = makecounter(); printf "counter1 = %d\n", $counter1->(); printf "counter1 = %d\n", $counter1->(); printf "counter2 = %d\n", $counter2->(); printf "counter1 = %d\n", $counter1->(); printf …

脆弱性あった。

風呂に入ってて、ふと気付いた。 #!/usr/bin/perl -w use strict; use CGI; my $cgi = new CGI; print $cgi->header(-type=>'text/plain', -charset=>'utf-8'); my $datadir = $cgi->param('datadir'); my $mode = $cgi->param('mode'); my $page_name = $cg…

人工無脳をつくってみようとする8

レポートとして提出したところまでの人工無脳。提出したのは2月24日だったんだけど、レポート提出の開放感で絶賛放置していた。とりあえず現状を確認する。プログラムは以下のURL。 http://konbu.s13.xrea.com/lib/mezassi.tar.bz2 インストール 実行するた…

人工無脳をつくってみようとする7

http://d.hatena.ne.jp/hogelog/20061228#p1 以前書いた方向性で、やってみた。「中継点」こと「注目単語」は一つしか選択できない、そもそも注目単語の抽出が乱数まかせ、経路のコスト計算を単語2-gramだけでおこなっている、というまったくあれな感じのだ…

ハードディスクの容量を圧迫してるファイルたちはどこにあるのか調べる一行野郎with perl。 % du |perl -e'print for(sort{$a<=>$b}<>)'

Golfのおかげで

print "good",(localtime)[2] <12 &&" morning! "||" evening"," Mr.foo"; とかに違和感が無くなった。s///のeeとかもGolfやらなきゃ使ってみなかったろうなあ。

あらためて人工無脳をつくろう(2)

前回考えた方向性で、人工無脳の最適な発言を見つけるアルゴリズムは最短経路問題の解法ダイクストラ法でほにゃらろうと考えてみる。 えーとそうすると発言の度に全形態素にスコア付けをしなおす……きつい気がしてきた。いや間違いなくきつい。最初から全形態…

眠くなくなったから続き

ちょっとはマトモになったかね。微妙。あんまり良くない。オブジェクト指向が簡単に使いやすいRubyの方が頭がすっきりするんじゃないかという気分になってきた。Ruby使ったことないけど。オブジェクト指向プログラミングしたことないけど。

最短経路問題

人工無脳の発言生成を最短経路問題と見なして、ほうほうこれはなかなかいけそうなモデルじゃねーかなと思った。しかしどーもそこから次の段階へと思考が至らない。そうだ。そもそも最短経路問題をうまく解けねえよ俺。 参考ページ http://www.me.sophia.ac.j…

あらためて人工無脳をつくろう(1)

どうも俺は設計と実装をごっちゃにして考え過ぎる。実装に気が取られると、設計は二の次三の次。人工無脳作りを通してつくづく感じた。よろしくない。というわけで、しばらく時間空いて忘れた部分もあるしもう一度人工無脳の設計から考えなおす。「発言=最短…

ソート色々。

適当に勘で書く。Perlのスライスは便利だなあと思う。バブルソート。 for($i=$#a;$i>0;--$i){ for($j=0;$j<$i;++$j){ @a[$j,$j+1] = @a[$j+1,$j] if($a[$j]>$a[$j+1]); } } 「一番簡単なソート」的なあつかいをされていることがあるけど、そんなにわかりやす…

りはびりぱーる

ちょっと余所見してる間に、はてながソースコードへの色つけしてくれるようになってるらしいしPerlリハビリ。 実用性が皆無なソートアルゴリズム、ボゴソートでも実装してみましょう。 #!/usr/bin/perl @a=<>=~/\d+/g; # 入力を一行読んで、その結果で\d+に…

なんかリンク抽出してみた。

Perlでウェブページからリンク抽出してみよう! そう思ったのは大学の講義でGoogleのPageRankアルゴリズムを習ったからだと思います。リンクの抽出ができたあたりで満足しました。 CPANって偉大じゃねーかな思いました。そして俺はさっさと月曜締め切りのPag…

なんかオンラインメモ帳っぽいの。

ひさしぶりにCGIとか作ってみた。 http://konbu.s13.xrea.com/tpage/tpage.cgi テキストを編集、保存できる。超絶劣化Wikiと言ったらわかりやすいのかもしれません。というか実用CGIとしてあんまり成立してませんけど。実用的にするためのプログラミングって…

人工無脳をつくってみようとする6

文字単位N-gramモデルか、MeCabによる単語単位N-gramモデルかを選べるように。辞書データの保存は我流謎フォーマットから、StorableモジュールかData::Dumperモジュールで行なうように。あとはそーね、(2+i)-gramモデルに対応。1-gramモデルで統計を取るには…

Perlめも2

人工無脳づくりでしばらく頭がねじれていた、ごちゃごちゃしたハッシュリファレンスの保存方法が解決した。 use Storable qw(store retrieve); ...ほげほげして馬鹿でけー辞書ハッシュをつくる store($ref_dic, $dic_name); # $ref_dicは辞書ハッシュへのリ…

Perlめも(1)

変数名の前の「@」、「$」や「%」は、その変数が何として処理されるかを表わす。とかなんとか。 C:\Perl\bin>perl -e "@a=(1,2,3,4);print @a;" 1234 C:\Perl\bin>perl -e "@a=(1,2,3,4);@a[0,2]=@a[2,0];print @a;" 3214 C:\Perl\bin>perl -e "@a=(1,2,3,4)…

人工無脳を作ってみようとするよ5

なんかいいかげん日記につづる形式が適当とも思えないような気もしなくはないので、Wikiとか設置してそっちで書くかも。なんかフラフラと自然言語処理の知識を遠くから眺めて思ったんだが、この分野ってすげえエキサイティングなんじゃなかろうか。適当に自…

人工無脳を作ってみようとするよ4

Perlオブジェクト指向プログラミング Perl&CGI最強講座 このあたりの記事を読みつつ、今まで書いたスクリプトをモジュール化。書き方まずいところあったか、ベタ書き時より遅くなってる処理あるけどよしとする。そのかわりに処理の流れがわかりやすくなって…

人工無脳づくりを再開する前にすること

ロシア語の予習 物理学実験のレポート Perlのリファレンス変数を理解する。(ポインタみたいなもんっぽい) Perlの手続き型的プログラミング方法を理解する。 Perlのオブジェクト指向的プログラミング方法をさらっと眺める。 今まで書いたPerlスクリプトはま…

人工無脳を作ってみようとするよ3

先人の知恵は高尚で、理解に時間がかかってしまう。なのでMeCabにわかち書きさせる以外は適当な「こうやったら文章っぽくなるんじゃね?」アルゴリズムで開発中。「人工無脳目指すスクリプト」さん、喋りなさい。 以下妄想。 おそらくは元々アカウント名は10…

人工無脳を作ってみようとするよ2

まずいまずい。日常が意外と楽しいですよ。人工無脳製作目指してますよ。 製作中の人工無脳の欠片さん、さあ10回発言しなさい。 今ソース今日とある。人さらなる男はでととか。となるた帰結立ち読みないいるはと来でF俺けどにて あと無のでメールなんてに 今…

人工無能を作ってみるよみようとしてみるよ。

大学の自然言語処理の講義で、課題が出された。「自然言語処理についてのレポートを書くor人工無脳プログラムを作成する」の好きな方を選択してください、と。 最初は「伺か」的な、仕込んである特定のワードが出てきたら、それに反応するみたいな無能さんし…

csvファイルをTeXのtabularに

表計算ソフトの結果とかをTeXのtabular環境下にぶちこみたい。手書き? 勘弁してくれ。 #!/usr/bin/perl foreach(@ARGV){ $file = $_; open(IN, $file); @buf = <IN>; close(IN); foreach(@buf){ s/,/ & /g; s/\n/ \\\\\n/g; s/([^,]+)/\$ \1 \$/g; s/([0-9]+\.[</in>…

test