0
私の結果を追加してjaro distance関数を使ってベストマッチを得るための辞書を作成しようとしています。Pythonのjellyfishモジュールを使ってベストマッチを得る(部分文字列マッチング)
これは、2つのリストを照合して、両方で最もよく一致する名前を取得しようとした私の試みの一部です。
例:私が何をしようとしています何
import jellyfish
jellyfish.jaro_distance(u'jellyfish', u'sellyfish')
output:
0.9259259259259259
がある。この場合、
listA = ['grellofish','mellofush','jellyfihs','sellyfish','salmonfish']
listB = ['jellyfish','salmonfish']
#convert to unicode
listA = [unicode(i) for i in listA]
listB = [unicode(i) for i in listB]
for nickB in listB:
for nickA in listA:
results = jellyfish.jaro_distance(nickA, nickB)
print nickB,nickA,results
output:
jellyfish grellofish 0.825925925926
jellyfish mellofush 0.777777777778
jellyfish jellyfihs 0.962962962963
jellyfish sellyfish 0.925925925926
jellyfish salmonfish 0.685185185185
salmonfish grellofish 0.733333333333
salmonfish mellofush 0.7
salmonfish jellyfihs 0.618518518519
salmonfish sellyfish 0.755555555556
salmonfish salmonfish 1.0
私はそれが最高得点で2を返すようにしたい:
jellyfish jellyfihs 0.962962962963
salmonfish salmonfish 1.0
FuzzyWuzzyユーザーの場合、私はprocess.extractOne
関数をエミュレートしようとしています。ここでは、リストをに渡すことができますあなたは最高のマッチを得るでしょう。
FuzzyWuzzyを使用していない理由は、処理が遅すぎて何が起こっているのか不明です。別の5000文字列のリストと比較して5000文字列の一致が最大40分かかります。
でした!とにかくお返事いただきありがとうございます。 – BernardL