タグ

ブックマーク / s-yata.hatenadiary.org (5)

  • Perl, Python, Ruby バインディングの追加(marisa-0.2.0-beta5) - やた@はてな日記

    概要 marisa-trie に Perl, Python, Ruby バインディングを追加したものを marisa-0.2.0-beta5 としました.使い方は C++ とほぼ同じです. プロジェクト http://code.google.com/p/marisa-trie/ ドキュメント http://marisa-trie.googlecode.com/svn/trunk/docs/readme.ja.html 動作確認をしたのは Ubuntu だけなので,他の環境では動かないかもしれません. (追記 2011-05-05)C++ と同じようなインタフェースではメソッドの呼び出しにかかるコストがかなり大きくなるようなので,専用のインタフェースを追加することを検討しています. SWIG について バインディングの作成には SWIG を使っています.年単位で触っていなかった Perl,さ

    Perl, Python, Ruby バインディングの追加(marisa-0.2.0-beta5) - やた@はてな日記
  • 世の中には二種類の文字列がある… - やた@はてな日記

    今回の内容は,0 を終端とする文字列と,長さを別に持つ文字列の扱いに関する小ネタです. 検索用のインタフェースを用意するとき,どちらか一方を選択するのであれば,後者にすると思います.しかし,できれば前者も提供したいと思うのが人情というものでしょう. という理由から,marisa-trie では,どちらも使えるようになっています.とはいえ,別々に実装するのは甚だ面倒です.検索用の関数は lookup(), find() 系列, predict() 系列と大量にあり,ほとんど同じになるものを別々に実装するなんて正気の沙汰ではありません.以降の修正でどちらか一方だけ直し忘れたなんてのも,実にありそうな話です. シンプルな対策は,0 を終端とする文字列を受け取ったとき,まず長さを求めてやるというものです.しかし,長い文字列が与えられる可能性がある場合,この手は危険です.100MB くらいのテキスト

    世の中には二種類の文字列がある… - やた@はてな日記
    tyru
    tyru 2011/01/29
  • std::string の正体(gcc-4.4.3)と細かい話 - やた@はてな日記

    # 環境依存な内容な上,無駄に細かい話なので,「そういうこともあるかもねー」くらいに流しちゃってください. (追記 2011-01-11)新しい規格では std::string の Copy on Write(CoW: 書き込み時に複製)が実質禁止になるとのことです.後,gcc 4.5 の時点で CoW はやめてしまうみたいですし,「そんな時代もあった」くらいに軽く流しちゃってください.id:gintenlabo さん,コメントありがとうございます. (追記の続き)個人的には,std::string の CoW 動作は挙動が分かりにくくなるので止める方に賛成です.でも,std::vector なんかを拡張するときはどうするのかな…?コピーしてしまうのか,swap() を使うようにするのか…. (さらに追記 2011-01-11)おおっと,ムーブコンストラクタにムーブ代入演算子なんてものが…

    std::string の正体(gcc-4.4.3)と細かい話 - やた@はてな日記
  • 新しいトライのライブラリを公開しました - やた@はてな日記

    概要 トライのライブラリを公開しました.ドキュメントはまったく用意できていませんが,とりあえず使えます.(追記 2011-01-09)ドキュメントを追加しました. http://code.google.com/p/marisa-trie/ ドキュメント ベンチマーク 使い方 インタフェース ツール インストール ビルド・インストールの方法は configure と make です.以下のようにすればインストールできます. ./configure make make check sudo make install インストールせずに試したいという方は,make install を省略して,tools/ 内部のツールを使うなり,lib/marisa/trie.h を見て使い方を確認するなりしてください.インストールせずにライブラリを利用するには,lib/ 以下のヘッダすべてと lib/libm

    新しいトライのライブラリを公開しました - やた@はてな日記
  • ウェブコーパスの一部から形態素 N-gram コーパスを作成しました - やた@はてな日記

    追記(2010-09-22):完成版がこちら(N-gram コーパス - 日語ウェブコーパス 2010)にあります. 追記(2010-08-06):文末記号(</S>)を追加したものを作成しました(形態素 N-gram コーパスの修正版 - やた@はてな日記). ダウンロード 頻度が 100 以上の N-gram を収録したもの(over99)と,頻度が 10 以上の N-gram を収録したもの(over9)を用意しました.少しでも圧縮できるように,形態素数によるファイルの分割はおこなっていません. ファイル名 サイズ 展開時のサイズ over99-0000.xz 84,443,192 bytes 459,278,821 bytes ファイル名 サイズ 展開時のサイズ over9-0000.xz 329,101,340 bytes 2,147,483,623 bytes over9-0

    ウェブコーパスの一部から形態素 N-gram コーパスを作成しました - やた@はてな日記
  • 1