あいまい一致に関する多くのリンクを見つけ、ある文字列を別の文字列と比較して、どれが最も高い類似度スコアを取得するかを確認しました。
ドキュメントである 1 つの非常に長い文字列と部分文字列があります。部分文字列は元のドキュメントから取得されたものですが、何度か変換されているため、スペースやダッシュなどの奇妙なアーティファクトが導入されている可能性があります。部分文字列は、元のドキュメントのテキストのセクションと 99% 以上一致します。この文字列がどのドキュメントからのものかを確認するために一致していません。文字列が始まるドキュメント内のインデックスを見つけようとしています。
ランダム エラーが発生しなかったために文字列が同一である場合は、 を使用document.index(substring)
しますが、文字の違いが 1 つでもあると失敗します。
文字列と部分文字列の両方で az を除くすべての文字を削除し、比較してから、文字列を圧縮したときに生成したインデックスを使用して、圧縮された文字列のインデックスを実際のドキュメントのインデックスに変換することで、違いが説明されると思いました. これは、違いが空白と句読点である場合はうまく機能しましたが、1文字が異なるとすぐに失敗しました.
ドキュメントは通常、数ページから 100 ページであり、部分文字列は数文から数ページです。