Dynamic Programming による類似文字列マッチの実装例 2007-01-22-4 [Programming][Algorithm] 「Modern Information Retrieval」(8.6.1 p.216) での Dynamic Programming (DP) の解説のところのアルゴリズムを 素直に Perl で実装したみた。 さらにマッチ箇所取り出しロジックも実装してみた。 # DP はいわゆる「類似文字列検索(あいまい検索)」に使うと 便利なalgorithm。 実は、大学院でも前の会社でも、PerlやらC++やらで実装して使ってた。 単純ながら使い勝手もよく、まさに現場向きかと。 grep 式に頭から見ていくので計算量的にはイマイチなのだが、 転置インデックス検索などで範囲を絞ってから適用すれば実用上問題ない。 ■定義みたいなの Q1. 二つの文字列 "
前回の圧縮に関する記事では、Pythonを用いた実行時エンコードの実現方法をお見せした。本稿では、もう一つの種類の圧縮方式「Huffman符号化」の実装方法をお見せする。Huffman符号化は、文字列のような小さなアイテム集合を扱う際に便利な圧縮方式だ。 Huffman符号化では多種多様なデータ構造を同時に使用するため、大学のアルゴリズムの講義ではHuffman符号化が非常に好まれている。本稿では、Pythonのheapqライブラリを用いて優先順位付きキューを実装するので、もしheapqライブラリになじみがなければ以前の記事を読んで欲しい。 Huffman符号化は、次のような2つのステップで主に構成されている。 元データに含まれているアイテムをすべて含む二分木を作成する。二分木は、リストに含まれているアイテムの中で、もっとも出現回数の少ないアイテム2つを何度も繰り返し組み合わせることによっ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く