문자열이 다른 문자열과 얼마나 비슷한지 확인하는 알고리즘을 작성 중입니다. 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에서 실행하면 동일한 점수를 인쇄합니다. 다른 단어가 하나뿐이기 때문에 결과는 두 경우 모두 동일합니다.
다른 단어 "okey vs okeu"에 다른 문자가 하나 있기 때문에 원하는 것은 example_1에 대해 더 높은 점수를 얻는 것입니다. 반면에 example_2와는 완전히 다른 단어 인 "okey vs crazy"가 있습니다.
어떤 경우에는 다른 단어가 완전히 다르지 않다는 것을 고려하여 내 코드를 어떻게 사용할 수 있습니까?
좋은 제안이지만 'leven import levenshtein'이 더 쉬울 것입니다. – FTP
내 문자열은 제품 제목입니다. 3 가지 측정 항목을 결합하려고합니다. Levenshtein, 코사인 및 jaro winkler, 나는이 3 가지 지표의 평균을 계산하고 있습니다. – nesi