2009-01-01から1年間の記事一覧

前回マッチした部分の続きからマッチさせる

前回マッチした部分の続きからマッチさせる 正規表現オブジェクトmatchに対して(match 'after)とすると,マッチした部分の続きが文字列として得られます. したがって, (#/regexp-spec/ (match 'after)) とすると,続きからマッチさせることができます. 何…

単語にマッチさせる

単語を含むかどうか調べる 通常であればそのまま書けば終わりです.が,"\b"を使って境界を明示することで,より正確にマッチさせることができます. (#/\bspec\b/ "Scheme spec") =>#<<regmatch> 0x5330a0> (#/\bspec\b/ "Scheme specification") =>#f 正規表現\wにマ</regmatch>…

正規表現が文字列の先頭・末尾にマッチするか調べる

正規表現が文字列の先頭・末尾にマッチするか調べる 正直,正規表現ネタなので言語はあんまり関係ないのですが... 先頭にマッチするか調べる "^"で先頭を表します."\A"はまだサポートされていないようです. マッチした際,明示的に#tを得たい場合にはboole…

文字列を検索する

文字列を検索する いわゆる正規表現によるマッチングです. #/regexp-spec/ とすることで,正規表現を表現することができます.他の言語上で正規表現を使ったことがあれば,違和感ないでしょう. パターンが含まれるかどうか 空白文字もしくはタブを検索する…

文字列の長さを得る

文字列の長さを得る 文字列の長さには2種類あります.文字数と内部エンコーディングの大きさです. この2つは一致することもあれば異なる場合もあるので,用途によって使い分けを. ; 文字数 (string-length string) ; 内部エンコーディングの大きさ (string…

文字列を反復する

文字を反復する 文字列を反復するには,文字の場合と文字列の場合でやり方が異なる. 文字の場合はmake-stringで反復できる. (make-string k &optional char) 使用例. charを指定しないと空白文字が繰り返される. (make-string 5 #\c) =>"ccccc" (make-st…

文字列を複製する

文字列を複製する そのまんま,string-copyで複製できます. (string-copy string &optional start end) 使用例. (string-copy "複製元の文字列") =>"複製元の文字列" (let* ((str "複製元の文字列") (copy-str (string-copy str))) `(,(eq? str str) ,(eq?…

文字コードを推測する

文字コードを推測する gauche.charconv gauche.charconvモジュールを使うと,ces-guess-from-stringで推測できる. (ces-guess-from-string string scheme) 使用例. 書式のschemeを"*JP"とすると,JIS,EUC,ShiftJIS,UTF-8のいずれかであるとして推測して…

文字コードを変換する

文字コードを変換する gauche.charconv gauche.charconvモジュールを使うと,ces-convertで変換できる. (ces-convert string from-code &optional to-code) 使用例. #*"〜"で結果が返されているけど,これはバイト文字列(不完全な文字列)を表している. (u…

適切な文字列リテラルをえらぶ

Scheme再会 とあるレシピブックをそのままScheme(というかGauche)で書いたらどうなるか試してみる.まずは文字列から. 文字列リテラル "〜" 普通の文字列.説明不要. "通常の文字列リテラル." => "通常の文字列リテラル." 改行をそのまま含めることがで…

バイエルン放送交響楽団2009年日本公演

バイエルン放送交響楽団 先日のニューヨーク・フィルハーモニックを聴きにいった際に,この公演の広告を見てしまった. 気がついたらチケットを買っていた.なぜか1階13列のほぼ真ん中. 後悔はしていない. 曲目 ブラームス: 交響曲第2番 ニ長調 Op.73 チャ…

Shibuya.lisp TT #4

先日行われた,Shibuya.lisp TTに初めて行ってきました.楽しかった! 講演内容はよいエントリが既に沢山あるので,次回に向けて行こうか迷っている方のために,細々としたことをメモしておきます. マニアックすぎて理解できない? 「Schemeプログラマのレベ…

ニューヨーク・フィルハーモニック アジアン・ホライズン・ツアー

ニューヨーク・フィルハーモニック アメリカビッグ5の一角,ニューヨーク・フィルハーモニックが来日,ということで行ってきました. それにしても,今日は台風のおかげで風が強かった. どこ行ってもビュービューと風のうなり声がすごい. 曲目 リンドベル…

ウィーン・フィルハーモニー ウィーク イン ジャパン 2009

ウィーン・フィルハーモニー管弦楽団@サントリーホール ついに聴いてきました,ウィーン・フィル.世界最高峰の1つだけあって,とんでもないうまさだった. 「どこが上手いの?」 「いや,全部」 としか言えねー... 技術も楽曲の理解もすばらしい.チケット高…

読売日本交響楽団 第113回マチネーシリーズ

前回に引き続いて,また演奏会. プログラミングのBlogじゃなくなってきた... 読売日本交響楽団を聴く 在京オーケストラの1つ,読売日響がローマ三部作をやるということで,チケットをゲット.場所は東京芸術劇場. 曲の特性上,ステージに近すぎると音圧が…

第334回藝大フィルハーモニア定期

藝大フィルハーモニアを聴いてきた コード書くときはCD聴きながらモニタを直視ってのがいつものスタイルなんだけど,たまには気分変えようということで, 藝大フィルハーモニアを聴きに藝大奏楽堂に向かう. 今回のプログラムは以下のとおり. メンデルスゾ…

LennyにOpenVZをaptでさくっとインストールするメモ

はじめに Linuxで仮想化といえばXenですね.正直それ以外だとVMwareくらいしかきかないですが,OSはLinuxだけ動けばいい,とか,ノード間のマイグレーションなんてどーでもいい,なんて場合はOpenVZもいい選択です. OpenVZの特徴 VBD(仮想ブロックデバイス)…

PXEでDebianをインストールするメモ

はじめに 古いノートPCにLinuxをインストールするのは結構大変なことだったりする. 光学ドライブなんてものはついてない USBメモリにブートイメージを入れても起動できない(USB1.1時代のものとか) 今時のディストリはFloppyのブートイメージも作られてない …

Mecabはバインディングで3.1倍速くなる

はじめに こないだIO.popenによるMecabの呼び出しを書きましたが,バインディングを利用した方法を書きます. こっちの方が速いのでおすすめ. バインディングのインストール sudo port install rb-mecab +utf8only MacPortsではたったこれだけ. 文字コード…

ベイズ分類器による極性判定

はじめに 単語への分割にはじまり,分類器での推測までできたので,ベイズ分類器として組み込みます. 実行例 ベイズ分類器で'quick money'をgoodかbadか判定するよ. def sample_train(bayes) bayes.train('Nobody owns the water.','good') bayes.train('t…

分類器での学習と分類,そして推測

はじめに 単語ごとに区切ることができるようになったので,分類器で学習と分類をさせます. 学習させるデータは本に載っているのと同じものなので,結果も全く同じになるはず. 実行例 require 'pp' def sample_train(classifier) classifier.train('Nobody …

Mecabで単語の出現数を数えるには

はじめに 油断してるとあっという間に時間が経つ. 気がついたら5月ももう終わりです. 前々回まで集合知プログラミングの第3章をやってきた訳ですが, ベイズフィルタを勉強したくなった関係で,第6章にいきなり飛びます. 今回は,本の中で登場する単語の…

はてな匿名ダイアリーを抜粋するサイト「Masuda-digest」を開設しました

※とりあえず見てみたい方はこちらへどうぞ. はじめに 通称,増田. はてな匿名ダイアリーのことです. ラボサービスなのにブックマークを集めることも多く,定着している感があるのではないでしょうか. が,いかんせん流量がかなり多く,一日あたり数百エ…

多次元尺度構成法によるグラフの作成続き

はじめに 前回作成した座標データを使って,グラフを作成してみます. これにより,各Blog間の様子が目で見れるはずなのですが,どうなるでしょうか. グラフの作成 Gruffを使って描画させることにします. やってることは大したことないので,見れば分かる…

多次元尺度構成法によるグラフの作成

はじめに 階層型,K平均法でのクラスタリング手法では,デンドログラム等で結果表示がされてきました. が,決してビジュアル的には分かりやすいとは言えませんでした. 可視化してみようということで,多次元尺度構成法(以下,MDS)により図示してみることに…

はてなダイアリーとスイーツ

はじめに グラフばっかり並べていたエントリもこれで最後です. 今回調べる対象は「エンジニアがあんまり使ってなさそうな単語5選」です. はっきり言ってネタです. しかし,このテーマにした時点で自分自身がキーワードを思いつけないことに気づきました.…

はてなダイアリーとLL

はじめに 前エントリとはちょっと異なるキーワードでエントリ数を調べてみることにしました. 今回はLightweight Language(いわゆるLL)を見てみます. なぜに突然LLなのか. 例えばこんなことって疑問に感じませんか? LLではどの言語が流行ってるのか はてな…

はてなダイアリーとTwitter

はじめに 突然ですが,あなたは普段Blogを読まれますか? 多分,こんなところまで見にきてくれているということは,様々なところにリーチを延ばしておられるのでしょう. では,どこのBlogをよく読まれますか? ライブドア? アメブロ? やっぱりはてなダイアリ…

Gruff::Lineの使い方まとめ

はじめに Rubyでグラフを描くためのライブラリGruff::Lineを使う機会がありましたので,まとめをしておきます. インストール 環境はMac OS Xを想定しています. ハマりどころはImageMagickのインストール. X関連の(正直どうでもよさそうな)ライブラリまで…

テンパズルを解いてみました

はじめに これまでRubyでちょこちょこプログラムを書いてきましたが,今年はLispを学ぼうということで,Schemeの本を読んでいます. そんな訳で,基礎的な練習としてテンパズルをやってみることにしました. テンパズルとは wikipedia:テンパズルにずばり書…