雑記

期日

もう七月だけど、五月の頭に掲げた目標に関しては、結局何もしなかった。 近々でやりたいことが他に結構溜まっているので、取り合えずこの目標は打ち切りとしておく。 作りたいとは思ってるんだけど、やっぱり優先順位が低いのかな...。

DoubleArrayのBASEとCHECK表現方法

BASEとCHECKの表現として、(すぐ思いつくものとしては)以下の二つがあると思う。 // 方法1: BASEとCHECK用にそれぞれ配列を用意する int base[ノード数]; int chck[ノード数]; // 方法2: ノード用に一つの配列を用意し、その各要素がBASEとCHECKフィールドを…

common lispで文字列処理用の関数を書くときの難点

Javaは文字列(String型)がimmutable。 この仕様は、汎用的な文字列処理関数を書く場合の負担を軽減してくれていると思う。 対してcommon lispの文字列はmutable。 そのため(そのためか?)、common lispの文字列処理関数*1は、Javaに比べてインターフェース(?)…

目標

最近は仕事が忙しいこともあり、だらけぎみなので、気を引きしめるために目標を設定しておく。 目標 5月・6月で、common lispの全文検索エンジンを実装する。 これ自体は一年以上前からいつか作りたいと考えていたので、この機会に実装してみることにする。 …

本当に終了

Igoの開発がドキュメント書きも含めてようやく一段落。 なんだかんだで終了まで一ヶ月近く掛ってしまったが、ようやくこれで別のことに(気持ち的に)本腰を入れて取りかかれる。

終了

先週の日曜から取り組んでいたJavaでの形態素解析器の実装がひとまず終了。 完成物: Igoまだ、例外処理周りの整備とか、ドキュメント作成とかは残っているが、実装が大幅に修正されることはもうなさそう。 特徴 思いつく特徴を列挙。 Java ほぼMeCab互換 MeC…

結果

前回の予告の結果。 一応、それらしいものは出来た。 igoという名前をつけてプロジェクトも作成*1。 ただ、何とか動作はするが、ソースコードやクラスの構成はメチャクチャ。 あと、若干MeCabと出力(形態素解析結果)が異なることがある。※ 要調査 その他、諸…

予告

予告 明日・明後日は仕事が休みなので、それを利用してJavaの形態素解析器を作ることにする。 作るもの ・完全にJavaで書かれた形態素解析器(+ その中で使われるDoubleArray) ・MeCabと辞書互換が目標 ・ただし、サポートするのは単純な形態素解析のみ ・既…

llvm : GC, bitcode

llvmのGC*1およびビットコード*2に関するドキュメントに、ごく簡単に目を通す。 GC llvmはすぐに使えるようなGCを提供してはいなかった。 ただ、GCを組み込むことはあらかじめ想定されており、そのためのフレームは用意されているようなので、GCを実装・利用…

読了x2

『LLVM Language Reference Manual — LLVM 3.4 documentation』を一通り読み終わる。 仕事の行き帰りに読んでいた『Java 並行処理プログラミング』*1も同時に終了。llvmは、そろそろ本格的にコード(or コードジェネレータ)が書きたくなってきたが、まだ最低G…

Qi

Qiという型安全なlispがあるらしい。 僕がcommon lispで物足りないと思うことの一つが、静的型の欠如*1 *2なので、結構興味がある。 公式サイトドキュメントが面白そうなので、後で読む。 ### 最近はやりたいことが多すぎて、毎日寝不足。 仕事が...。 追記:…

符号化に最低限必要なビット長

長さ制限付きハフマン符号の整理中。 気づいたことメモ。 N個のコードを符号化するには、ビット長が最低(log N 2)*1は必要。 一番(最大の)ビット長が短くて済むのは、全てのコードを同じビット長でエンコードした場合。 いわゆる普通の文字表現(256文字を、8…

clojure

先週のShibuya.lisp TT#4への参加をきっかけ*1に読み始めた『Programming Clojure』を一通り読み終えた。 今までは、JVM上の言語ということで何となく敬遠していたが、結構いろいろ面白そうな特徴があった。 とりあえず個人に良さそうだと思った点は以下の通…

Visual C++2005のstd::setとstdext::hash_setの速度

今日試しに使ってみたら、VC++2005のstd::setとstdext::hash_setがやけに遅かった。doarのWindows対応も一通り終ったので、VC++の上記クラスと検索速度を比較してみたのだが、結果は以下のようになった。 doar# 1.875 sec ※ 数値は、32587100要素(325871*100…

common-prefix searchと形態素解析

doar実装関連雑記。 今日は、(形態素解析には必須の?)common-prefix-search関数の実装に取り組んでいた。 ;; common-prefix-searchの動作を示すための例 (defvar *data* '("自転車" "自動車" "自動" "自" "時刻" "自動車免許" "免許" "車")) (defun common-p…