tt = {
'key1': ['value1', 'value2', 'value3'],
'key2': ['value2', 'value4'],
...
}
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
# Пример данных
tt = {
'key1': ['value1', 'value2', 'value3'],
'key2': ['value2', 'value4'],
}
data = input("Введите строку: ")
# Преобразование значений в строки
tt_values = [" ".join(values) for values in tt.values()]
# Добавление пользовательского ввода в список значений
tt_values.append(data)
# Преобразование текста в векторы
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(tt_values)
# Вычисление косинусного сходства
cosine_sim = cosine_similarity(X[-1], X[:-1])
# Порог сходства
threshold = 0.6
# Поиск наиболее подходящего ключа
best_key = None
best_similarity = 0
for i, key in enumerate(tt.keys()):
similarity = cosine_sim[0][i]
if similarity >= threshold and similarity > best_similarity:
best_similarity = similarity
best_key = key
if best_key:
print(f"Наиболее подходящий ключ: {best_key} с сходством {best_similarity}")
else:
print("Нет подходящего ключа.")