ここで実装されているように、「距離」が2つの文字列間の類似性スコアであるペアワイズ距離マトリックスを構築したいと思います。以前に他の計算に使用したことがあり、簡単な並列化が優れているため、これを行うためにsci-kit Learnのペアワイズ距離法を使用することを考えていました。
関連するコードは次のとおりです。
def hashdistance(str1, str2):
hash1 = simhash(str1)
hash2 = simhash(str2)
distance = 1 - hash1.similarity(hash2)
return distance
strings = [d['string'] for d in data]
distance_matrix = pairwise_distances(strings, metric = lambda u,v: hashdistance(u, v))
strings
のように見え['foo', 'bar', 'baz']
ます。
これを試すと、エラーがスローされますValueError: could not convert string to float
。これを言うのは本当にばかげているかもしれませんが、なぜここで変換を行う必要があるのか、なぜそのエラーをスローしているのかはわかりませんmetric
。入力が浮動小数点数である必要があるのはなぜですか? また、simhash の「距離」に基づいてこのペアごとの距離行列を作成するにはどうすればよいですか?