、例えば)Pythonの検索技術:単語の類似度
abcd versus zzabcdzz == 50% similarity
は非常に正確である必要はありません。それを行う方法はありますか?私はPythonを使用していますが、他の言語を推薦することは自由です。
、例えば)Pythonの検索技術:単語の類似度
abcd versus zzabcdzz == 50% similarity
は非常に正確である必要はありません。それを行う方法はありますか?私はPythonを使用していますが、他の言語を推薦することは自由です。
python-Levenshtein
を使用してedit distanceを計算してみてください。
レーベンシュタインのPython C拡張モジュールは
- レーベンシュタイン(編集)距離、及び編集操作
- 文字列類似
- 近似中央値文字列、および一般
を平均文字列の高速計算のための機能を含んでいます- 文字列と類似度を設定
2つの文字列の編集距離を最も長い文字列の長さで割って計算することで、類似点の概要を知ることができます。あなたの例では、編集距離は4であり、編集距離の最大値は8であるので、類似度は50%です。
NLTKライブラリーからいくつかの類似性の指標:
http://www.opendocs.net/nltk/0.9.5/api/nltk.wordnet.similarity-module.html
あなたはpythonの作り付けのモジュールここdifflib
を使用することができますが、そのページからの例です
>>> s = SequenceMatcher(None, "abcd", "bcde")
>>> s.ratio()
0.75
コピーthat答えから:
Pythonでは、difflibがあります。
difflib
は、SequenceMatcherクラスを提供しています。このクラスを使用すると、類似性比を得ることができます。関数例:
def text_compare(text1, text2, isjunk=None):
return difflib.SequenceMatcher(isjunk, text1, text2).ratio()
[テキスト差分アルゴリズム](http://stackoverflow.com/questions/145607/text-difference-algorithm) – tzot