雑文

プログラムの断片

必要に迫られて作った物のうち、人の役に立つ可能性が少しはありそうなもの。 無保証、無サポート。

Emacs 用のキリル文字モンゴル語入力メソッド

quail のキリル文字モンゴル語入力メソッド。 キリル文字モンゴル語を転写モードで入力します。 元はキリル文字キーボード用だったのもの、転写モードに改造しました。 キリル文字キーボードのキーボードの配列を日本語キーボードでエミュレートする気力がないからです。 mongolian.el は Unicode の本物のキリル文字です。 他にもモンゴル文語と満洲語のラテン文字転写の入力システムなんかも入っています。 mongolian-jis.el は JIS のキリル文字と代用文字を使用します。

元ファイルの著作者は Anton Zinoviev 氏です (出典)。 GPL でライセンスされます。 厳密には GPL の文書を付けたりいろいろしなければならないのだろうけど、とりあえずは勘弁してください。

Text::Trie::Tx

コンパクトな trie、Tx を Perl から呼び出すためのインターフェース。 既に小飼弾氏が Text::Tx を作っていますが、gsub というキーワード置換に特化したメソッドしかありません。 そこで、これを参考に、普通に trie として使うためのインターフェースを作りました。 XS を書くのははじめてで、見よう見真似でやってます。 バグっていたら教えてください。

search 用のメソッドしか用意していません。 辞書の構築は tx 付属の txbuild で行ってください。

tx-python

コンパクトな trie、Tx を Python から呼び出すためのインターフェース。 Perl 版とだいたい同じ。 修正 BSD による配布。

DoubleArrayTrie.java

double array による trie の実装。 C++ で実装された Darts を Java に移植したものです。 古い MeCab を Java に移植した Sen にも同名の DoubleArrayTrie がありますが、そもそも古いことや、ライセンスが LGPL のみの状態からフォークしたことから使い勝手が悪かったので、自分で書き直してみました。 LGPL と修正 BSD のデュアルライセンスです。

この実装には微妙な部分があります。 double array の名前の元になっている、base と check の配列の表現です。 元のコードでは構造体の配列ですが、内部クラスの配列としています。 C/C++ の構造体と Java のクラス・インスタンスを比較すると、後者は自分が属すクラスの情報を持っている分、メモリ上のサイズが大きくなります。 気になるばあいは、倍のサイズの int 配列にするか、base と check の二つの配列に分割すれば解決します。

戻る