2 つのリストがあります。1 つはユーザーの興味です。次に、本に関するキーワードです。与えられた関心リストに基づいて、ユーザーにその本をお勧めしたいと思います。SequenceMatcher
Python ライブラリのクラスを使用してdifflib
、「ゲーム」、「ゲーム」、「ゲーム」、「ゲーマー」などの類似した単語を照合しています。このratio
関数は、2 つの文字列がどの程度類似しているかを示す [0,1] の間の数値を返します。 . しかし、「ループ」と「シューティング」の類似性を計算した 1 つの例に行き詰まりました。であることがわかります0.6667
。
for interest in self.interests:
for keyword in keywords:
s = SequenceMatcher(None,interest,keyword)
match_freq = s.ratio()
if match_freq >= self.limit:
#print interest, keyword, match_freq
final_score += 1
break
Python でこの種のマッチングを実行する他の方法はありますか?