2

最近、私はbitapアルゴリズムのいくつかの実装を調べましたが、それらすべてが行うことは、あいまい一致の開始点を見つけることです。私が必要としているのは、一致するものを見つけることです。例があります:

次のテキストがあるとします:abcdefg

とパターン:bzde

そして、最大で1つのエラー(編集距離が考慮されます)でテキスト内のパターンのすべての出現を見つけたいと思います。

したがって、アルゴリズムがbcdeを返す必要があります。

それを行うための簡単な(または単純ではない=))方法はありますか?このアルゴリズムに関する元のアーティカルは、質問に答えません。

ご協力ありがとうございました。

4

1 に答える 1

1

簡単なスタートとして、一連の正規表現を使用してアプローチできます。すべての式で、1文字を.ワイルドカードに置き換えます。コンストラクトを使用してこれらの式を1つに結合し、( | )1つの大きな正規表現を作成します。

もう1つの方法は、エラーカウントを保持し、エラーが多すぎる場合に一致するオフセットをインクリメントして文字列をスキャンすることです。

于 2009-11-29T12:59:38.217 に答える