2011-07-13 2 views
1

ツールを探しています(理想的には)か、多数のテキストファイル。私の場合、「単語」は実際にはファイル名ですが、スペースは含まれません。テキストを見つけるために必要なツールやAPIには、大規模な辞書からの単語が含まれています。

高速アルゴリズムでは、辞書を読み込んでDFA(確定的有限オートマトン)を構築し、任意の数のファイルで辞書単語のインスタンスを見つけるためにシングルパスを使用することができます。

:私はこのSO質問のように正確なテキストマッチングないファジーマッチングを希望しています: - Algorithm wanted: Find all words of a dictionary that are similar to words in a free text

+2

言語に対応したAPI ?? – run

答えて

1

あなたはluceneの時に見たことがありますか?私はその単語によってラインまたはワードでラインでファイルを読み込み、HashMapのか、「辞書」に単語の辞書をロードしたいJavaと.NETのバージョン

http://lucene.apache.org/java/docs/index.html

0

は、マップかどうかをチェックする、あります単語が含まれています。

+0

申し訳ありませんが、これははるかに遅くなります。私は、テキストストリームを読むことができ、検索コストが一定である(単語の数が増えるにつれて増加しない)アルゴリズムを探しています。私が探しているのはパーフェクトハッシュ関数だと思います。 http://en.wikipedia.org/wiki/Perfect_hash_function –

+0

これは、単純にテキストシーケンスをバイトシーケンスとして読み取り、マッチイベントを発行するDFAの手法ほどはよくありません。 –

+1

Ahhは[fgrep](http://ss64.com/bash/fgrep.html)のように見えます。 [AhoとCorasickの文字列一致アルゴリズム](http://ja.wikipedia.org/wiki/Aho%E2%80%93Corasick_string_matching_algorithm)を実装しています。 –

関連する問題