Python の set 関数が実際に文字列を個々の文字に分離していることに気づきませんでした。Jaccard の Python 関数を作成し、Python Intersection メソッドを使用しました。このメソッドに 2 つのセットを渡し、2 つのセットを jaccard 関数に渡す前に、set リングで set 関数を使用します。
例:文字列を文字に分割するためNEW Fujifilm 16MP 5x Optical Zoom Point and Shoot CAMERA 2 7 screen.jpg
に呼び出す文字列があるとします。set(NEW Fujifilm 16MP 5x Optical Zoom Point and Shoot CAMERA 2 7 screen.jpg)
そのため、ジャカード機能の交差点に送信すると、実際には単語間の交差点ではなく文字の交差点が見えます。単語間の交差を行うにはどうすればよいですか。
#implementing jaccard
def jaccard(a, b):
c = a.intersection(b)
return float(len(c)) / (len(a) + len(b) - len(c))
set
文字列に対して関数を呼び出さないとNEW Fujifilm 16MP 5x Optical Zoom Point and Shoot CAMERA 2 7 screen.jpg
、次のエラーが発生します。
c = a.intersection(b)
AttributeError: 'str' object has no attribute 'intersection'
文字から文字への交差の代わりに、単語から単語への交差を行い、ジャカードの類似性を取得したいと考えています。