2008-02-01から1ヶ月間の記事一覧

count-if関数

Lisperの後輩にそそのかされて薦められてPractical Common Lispを読んでいたら,count-if関数があることに気がつく.昨日のブラックジャックの問題を解くときに使った1の枚数を数える部分はこうやって書ける. (defun number-of-1 (lis) (count-if #'(lambda…

小数⇔分数の変換

そういえば計算結果に分数が出て,どうやって小数にするんだろと思っていた.解決.分数から小数への変換はcoerce関数を用いる.1/3のような循環小数は適当なところで丸められてしまう. (coerce 3/5 'float) => 0.6 (coerce 1/3 'float) => 0.3333333 小数…

Mew IMAPでgmail(IMAP超初心者編)

昨年GmailがIMAP対応したというので,やろうやろうと思っていてやっていなかった.ようやく手を出したものの,色々と躓いたのでメモ 自分のスペック stunnelやopensslは入っている Mewの基本的な設定はおk まず,.mew.elにこんな感じで書く. ; IMAP for Gm…

Perlにおけるgrepが見つからない〜そこでTIMTOWTDIですよ!

Lispには高階関数が沢山用意されている.map族でいえば,mapにはじまり,mapcar, mapcan, mapcon, maplist, map-intoなどがある.ほとんど知らんし,使えん.当然のことながら今までmapcarくらいしか使ったことがなかったのだが,そういやPerlにおけるgrepに…

レッツ・チャレンジパソコン甲子園第12回の問題を解いてみた

日経ソフトウェア2008年4月号のパソコン甲子園の問題を解く連載.今回はブラックジャックの手札が与えられた際に点数を返すというもの. とても時間がかかりました.けれど,解法にはそれなりに満足. ブラックジャックルール説明 ブラックジャックは,1〜13…

新しく宣言した変数のリファレンスを取得する方法

今まで変数のリファレンスを取得するためには,わざわざリファレンス変数に代入してから使っていた. こうすれば変数宣言と同時にリファレンスを取得できるみたい. \ my %hash; 確認プログラム my $hoge_ref = \ my %hoge; %hoge = (yamada => 1, tanaka =>…

実例で学ぶ脱初心者のためのシェルスクリプト(パラメータ置換編)

sh

一度習得すると重宝するシェルスクリプトだが,慣れないうちはこれほど不便なものはないと思ってしまう.PerlやRubyなどのスクリプト言語の方が使う機会が多いので,そっちで書けばいいじゃん,と思っていた.自分の場合はコマンドラインスクリプトも全てPer…

``に変数を使う

昨日解決しなかった問題が解決しました.t_morita様ありがとうございます! hello.rbとhoge.rbを同じディレクトリに作成. # hello.rb puts "hello" # hoge.rb command = "ruby hello.rb" output = `#{command}` puts output 実行すると % ruby hoge.rb hell…

Rubyで外部プログラムの呼び出しに変数を使う

RubyでもPerlとほぼ同様にコマンドの呼び出しができる.こんな感じ. system("ruby ./hoge.rb") 出力を取得したい場合は``を使う.これもPerlと同じ output = `ruby ./hoge.rb` ここからが落とし穴.Perlでは``の中身に変数を使うことが出来た.Rubyはそうは…

コマンドラインからLispプログラムを呼び出す

他の言語でそうやるように,コマンドラインからLispプログラムを呼び出したい.軽く調べてみたところ,あまり情報がない.とりあえず知りえたことをメモ. 他の処理系ではわからないけれど,CLISPの場合,こんな感じのプログラムを書けば良い. ; test.lisp …

数理統計学の基礎

数理統計学の基礎―よくわかる予測と確率変数作者: 新納浩幸出版社/メーカー: 森北出版発売日: 2004/05メディア: 単行本 クリック: 2回この商品を含むブログ (2件) を見る (2008-02-20読了)学部2,3年生向けに書かれた統計解析の本.ただサブタイトルにある…

モバゲータウンがすごい理由

モバゲータウンがすごい理由 ~オジサンにはわからない、ケータイ・コンテンツ成功の秘けつ~ (マイコミ新書)作者: 石野純也出版社/メーカー: 毎日コミュニケーションズ発売日: 2007/06/19メディア: 新書購入: 5人 クリック: 243回この商品を含むブログ (86件)…

SLIMEの正しい終了方法

SLIMEの正しい終了の仕方を知らず,lispプロセスがみっつも残ってCPUを占拠してた. YABEEEEE!!!11と思ってkillしようとしたが殺せない.よくわからないのでrebootする羽目になった.rebootする前にuptimeしたら173daysだって.一斉停電以降ずっと稼動してた…

Lispにおける配列の使い方

そういや今までLispで配列を使ったことがなかった.Lispのリストはデータ構造でいえば線形リストなので要素の追加や挿入が楽だけれど,規模が大きくなるとo(n)で時間がかかる.配列の場合は配列ポインタからのオフセットで表現されるのでランダムアクセスが…

事例で学ぶテキストマイニング

事例で学ぶテキストマイニング作者: 渕上美喜,末吉正成,高山泰博,今村誠,小木しのぶ,村田真樹,上田太一郎出版社/メーカー: 共立出版発売日: 2008/01/09メディア: 単行本購入: 1人 クリック: 96回この商品を含むブログ (9件) を見る (2008-02-18読了)タイト…

テキスト処理にWekaを使う(その2:文書セットをARFFに変換する)

前回:テキスト処理にWekaを使う(その1:文書のトークン化とTFIDF重みづけ) 昨日やらなかったことがとても簡単なことに気がついたので,メモ. Weka3.5.xからTextDirectoryToArffがTextDirectoryLoaderに変更になったので,注意.今後はそちらになると思…

チームバチスタの栄光(下)

チーム・バチスタの栄光(下) 「このミス」大賞シリーズ (宝島社文庫 600)作者: 海堂尊出版社/メーカー: 宝島社発売日: 2007/11/10メディア: 文庫購入: 7人 クリック: 55回この商品を含むブログ (439件) を見る (2008-02-17読了)「上巻読み終わる前に下巻を…

テキスト処理にWekaを使う(その1:文書のトークン化とTFIDF重みづけ)

テキスト分類課題などでは,文書をTF-IDF重み付けしたbag-of-wordsで表現することが多い.これをベースラインにするため,さくっとこの処理をしたい.卒論やM1のときは,この処理をわざわざ手で書いたのだが,バグが出たら大変だし,なにより面倒くさい. 論…

チームバチスタの栄光(上)

チーム・バチスタの栄光(上) 「このミス」大賞シリーズ (宝島社文庫 599)作者: 海堂尊出版社/メーカー: 宝島社発売日: 2007/11/10メディア: 文庫購入: 9人 クリック: 132回この商品を含むブログ (565件) を見る (2008-02-16読了)感想その他は下巻に書きま…

SLIME導入

Lispのメイン開発環境はxyzzyだったけれど,今後のことを考えてSLIME導入. インストールは簡単.FreeBSDなのでPortsから入れて.emacsをマニュアルどおりに変更.GCLが対応してないっぽいので,CLISPを使うことにする(って違いがわからんくらいの初心者です…

mapcarで内積の計算

完全に寝ぼけていた.mapcarを 要素が値のふたつのリストの内積を取る場合,こんな感じで書ける (defun inner-product (xlis ylis) (apply '+ (mapcar '* xlis ylis))) mapcarは引数に複数リストを取ることもできる.その場合は,その数分のcarを第一引数の…

分割数を求める.

ようやく積読状態にあった数学ガールを読んでいる.これはすごい.テスト前に覚えて2時間後には忘却の彼方だったテイラー展開や絶対不等式からの相加相乗平均の証明など,秀逸なものばかり.これは高校生の頃に読みたかった! 実は部分的に理解していないも…

文字列数値やsplit

Common Lispにあるはずのstring-to-numberがxyzzyになくて困った.(Common Lispにもない.とあるxyzzy使いさんご指摘ありがとうございます!) 本来ならば (number-to-string 256) "256" (string-to-number "128") 128 で変換できる.できない. どうやらxy…

Lispの構造体

かっこつけてちょっと大規模なプログラムを書きたくなったので,機械学習の初歩的なプログラムを実装しようとLispでかりかりしている.距離関数などの記述は非常に楽だなぁと思う. データのインスタンスをどうやって書こうと思っていて構造体があれば楽だな…

数学ガール

数学ガール (数学ガールシリーズ 1)作者: 結城浩出版社/メーカー: SBクリエイティブ発売日: 2007/06/27メディア: 単行本購入: 58人 クリック: 1,055回この商品を含むブログ (967件) を見る (2008-02-15読了)ようやく読了.感動した. 自分が高校生の頃は,…

Perlのjoin関数

にあたるものがないっぽい.concatと高階関数を使えば実現できるかもしれないのだけれど,Lisp脳が出来ていないので無理. ゆとりらしく,自分にあったものを書くことにした. (defun join (delm lis) (do ((oldlis lis (cdr oldlis)) (str (car lis) (conca…

Lisp楽しい

学部3年で情報工学科のLisp授業にもぐってから苦節3年(その間ほとんど触ってないけれど),ようやくLispでプログラムが書けるようになってとても楽しい. 今日やったことまとめ(時系列順) 距離関数をかりかり書きまくる 構造体の存在に気がつく.ちょっと…

NaiveBayes in Lisp

LispでNaiveBayesを実装してみた.ハッシュの力に頼らざるを得なかったし,不必要なところでもハッシュを多用している.明らかにPerl病なコードが完成した. コメント空行込みで130行程度.勉強時間,ハマった時間を含めて3時間程度かかった. 書き終えて思…

ハッシュで便利そうな自作関数

Perlのようにexisitsを気にせずに使える関数を自作.既にあるだろうけれど,自分でやることに意義がある.おつかいと一緒.それにしてもネーミングセンスわろし. (defun hash++ (key hash) (if (null (gethash key hash)) (setf (gethash key hash) 1) (set…

ハッシュの基本

前回の挫折ポイントであるハッシュから開始.めちゃくちゃ簡単なことに気がつく. 基本操作はこんな感じ ; ハッシュを作成 (setq myhash (make-hash-table) ; 値の代入 (setf (gethash 'hoge myhash) 1) (setf (gethash 'foo myhash) 2) ; 取得 (getf 'hoge …