Сам же и отвечу. Подсказали в тг чате по питону.
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
import numpy as np
tt = {
'key1': ['value1', 'value2', 'value3'],
'key2': ['value2', 'value4'],
}
def compare_strings(user_input):
vectorizer = TfidfVectorizer()
all_values = [item for sublist in tt.values() for item in sublist]
all_values.append(user_input) # Добавляем входную строку
vectors = vectorizer.fit_transform(all_values)
user_vector = vectors[-1] # Вектор входной строки
results = []
for key, values in tt.items():
for value in values:
value_vector = vectors[all_values.index(value)]
similarity = cosine_similarity(user_vector, value_vector)[0][0]
results.append({'key': key, 'value': value, 'similarity': similarity * 100})
return results
user_input = input("Введите строку: ")
results = compare_strings(user_input)
for result in results:
print(f"Ключ: {result['key']}, Значение: {result['value']}, Процент совпадения: {result['similarity']:.2f}%")