タグ

ブックマーク / takeda25.hatenablog.jp (5)

  • N-gram かな漢字・漢字かな変換(C++版) - アスペ日記

    作った。 リポジトリはこちら。 https://github.com/hiroshi-manabe/ngram-converter-cpp 以前、N-gram 漢字-かな変換という記事で、N-gram を使ったかな漢字・漢字かな変換を公開した。 内部で使用しているアルゴリズムについては、可変次数 N-gram デコードのアルゴリズムの記事や、N-gram かな漢字変換 (スライド)で紹介した通り。 精度は、http://d.hatena.ne.jp/nokuno/20111103/1320317225で検証していただいた通り、それなりに出ていたと思うが、いかんせん速度が遅いのが問題だった。ちょっと長い文章を変換すると数秒間も時間がかかってしまう。これでは実用にならない。 それで、仕事を辞めて時間があるので、それを C++ で書き直してみた。N-gram の保存には、Faster and S

    N-gram かな漢字・漢字かな変換(C++版) - アスペ日記
    KinjouJ
    KinjouJ 2012/06/11
  • 情報系修士にもわかるLOUDS - アスペ日記

    一回でわかりやすく書くのは難しいので、簡潔データ構造 LOUDS の解説(全12回、練習問題付き)というシリーズにまとめました。 (2014/01/26) 古い内容を削除しました。

    情報系修士にもわかるLOUDS - アスペ日記
  • 情報系修士にもわかるダブル配列 - アスペ日記

    最近話題の「日本語入力を支える技術」を途中まで読んだ。 3章がものすごく気合いが入っている。 trie(トライ)というデータ構造の2つの実装、「ダブル配列」と「LOUDS」について詳しく説明がされている。 ダブル配列については、ぼくは以前論文を読んで勉強しようとしたのだが、その時は難しくてあきらめた覚えがある。しかし、このの説明を読むことで理解ができた。 ありがたい。 感銘を受けたので、このを教材に友達と2人勉強会をした。 この2人勉強会というのは、ぼくが復習を兼ねて友達に教えるというのがだいたいのスタイル。 しかし、いざやってみるといろいろと難しい。 次のようなところでひっかかるようだ。 例のサイズが小さく、イメージを喚起するのが難しい。 最初の図のノード番号と、最終的なダブル配列上の位置が異なるため、混乱する。 単語終端について言及がないので、どのノードが単語を表しているかがわから

    情報系修士にもわかるダブル配列 - アスペ日記
  • 日本語の自然言語処理には Perl も便利 - アスペ日記

    小ネタ。Perl で日語の簡単な処理をするやり方(こういうことが簡単にできるという例で、具体的なオプションの意味等は解説していない)。 コマンドラインでちゃちゃっと日語の処理をしたい時、Perl はけっこう役に立つ。日語の一文字を一文字として扱えるから。特に、コマンドラインやファイルのエンコーディングを UTF-8 で統一しておくといい。 例えば、ひらがなの単語リストを読み込んでカタカナにするには、次のようにすればいい(「ヴ」は扱い方によって変わるので省略)。 perl -CS -Mutf8 -ple 'tr/ぁ-ん/ァ-ン/' < in.txt > out.txt カタカナの単語リストの最初の一文字を濁音から清音にしたいということがあるかもしれない。そういう時はこうする(「ヴ」については同上、半濁音の処理も略)。 perl -CS -Mutf8 -ple 's{^(.)}{my $

    日本語の自然言語処理には Perl も便利 - アスペ日記
    KinjouJ
    KinjouJ 2011/08/23
  • 可変次数 N-gram デコードのアルゴリズム - アスペ日記

    前に書いた N-gram 漢字-かな変換 - アスペ日記 のアルゴリズムについて。 かなり縦に長いエントリになると思う。途中までは一般的な日語自然言語処理にかかわること。 例として、「かれがくるまでまつ」というひらがなの文をデコードして、対応する漢字かな混じり文にすることを考える。 こういう時に使われるのが「ラティス構造」。こういうやつ↓ (この図は一回しか出てきません。ちなみにこのために Keynote 買ったようなもの) それぞれのノードで、そこに入ってくるエッジの中で一番確率が高いものとその確率を覚えていくことで、動的計画法によって最適なパスを導くことができる。 これをプログラム上でどう実現するか。 まず、共通接頭辞検索というものを使う。 これは、あるキーを渡すと、そのキーに前から一致するようなキーを持つ候補を列挙してくれるというもの。 例えば、「くるまで」をキーとして使うと、「く

    可変次数 N-gram デコードのアルゴリズム - アスペ日記
  • 1