あなたがやろうとしているのは、2 つの文字列の類似性のパーセンテージを見つけることです。
一部のアルゴリズムは、このまったく同じ問題をすでに解決しています。私は主に使用しています:
コードソースをデルファイですばやく検索しました。DelphiでLenvenshteinのソースコードを見つけました
Lenvenshtein アルゴリズムは、元の文字列にロールバックできる「変更の数」を見つけようとしています。
NGramDistance は単語を分割して比較しています。
したがって、Lenvenshtein では、文字列 "abc def | klm mno" は"klm mn | abc def"とは非常に異なる
ものとして
認識されますが、NGramDistance では 100% 類似していると見なされます。
したがって、文字列の順序を考慮するかどうかによって異なります。
NGramDistance のソース コードが見つかりませんでした。ただし、Java から Delpi に変換することはできます。
Java のソース コードは、オープン ソースの検索ソフトウェアである Lucene から取得されます。このパッケージには、より多くの文字列メトリックアルゴリズム チェックアウトが実装されています。