0
文字列が他の文字列とどれだけ等しいかを調べるアルゴリズムを書いています。私はSklearnコサインの類似性を使用しています。文字列のSklearnコサイン類似度
私のコードは次のとおりです。
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
example_1 = ("I am okey", "I am okeu")
example_2 = ("I am okey", "I am crazy")
tfidf_vectorizer = TfidfVectorizer()
tfidf_matrix = tfidf_vectorizer.fit_transform(example_1)
result_cos = cosine_similarity(tfidf_matrix[0:1], tfidf_matrix)
print(result_cos[0][1])
はプリント0.336096927276、example_1ためにこのコードを実行します。 example_2に対して実行すると、同じスコアが印刷されます。異なる単語が1つしかないので、結果は同じです。
私が欲しいのは、異なる単語 "okey vs okeu"には1つの異なる文字しかないため、example_1のスコアを上げることです。これとは対照的に、例2では、全く別の2つの単語 "okey vs crazy"があります。
いくつかのケースで異なる単語が完全に異なるわけではないことを私のコードがどのように考慮することができますか?
良い提案ですが、 'leven import levenshtein'より簡単です。 – FTP
私の文字列は商品タイトルです。私は3つの異なる指標を組み合わせようとしています。 Levenshtein、cosine、jaro winkler、これらの3つの指標の平均を計算しています。 – nesi