私は使用していますtre-agrep
(マンページ)の実装agrep
(マンページ)を近似パターンマッチングを実行します。このユーティリティは、レーベンシュタイン距離に基づいて一致を検索し、ユーザーは置換、挿入、または削除の編集に適用されるペナルティを構成できます。
ただし、クエリの長さ全体に差をつけて重みを適用します。つまり、クエリの先頭(左端)での削除の重みを右側よりも低くします。man
このユーティリティのページには、そのようなレベルの制御が可能であることが示されていません。
ミスマッチペナルティをより細かく制御して近似一致が可能な他のコマンドラインツールはありますか?
5
私の知る限り、agrepは唯一のものです。UNIXの世界ではあまり知られていない(これはあまりにも悪い)ことを考えると、このことを知っていて驚いています。理論的には、ソースコードでこれらの重みを調整できますが、それが実際的かどうかはわかりません。ツールの作成者、またはツールの元になっている元の論文に問い合わせてみましたか?気をつけて、彼らはおそらく今では古いオナラです:)
—
オテウス
@Otheus古いオナラはまだコードを書くことができます;-)
—
クサラナンダ
PythonまたはAwkの式として定義された挿入/削除/置換のコストで、レーベンシュタインマッチングユーティリティを記述することは難しくありません。退屈な部分は、実際には、可能なすべてのコマンドラインオプションです。OPが典型的なコマンドラインを表示し、どのオプションが
—
公称動物
agrep
実際に必要かを教えてくれるなら、おそらく何かを立てることができるでしょう。二つの弦のレーベンシュタイン距離を計算するのは本当に簡単です。GNU awk呼び出しをラップしたシェルスクリプトをお勧めします。