Python fuzzywuzzy поиск по словарю
подскажите как реализовать поиск по ключам в словаре но выдавать в результате значение словаря, использя fuzzywuzzy. У библиотеки есть метод process, ищущий совпадения в списке. Но он не работает со словарем. Есть код выводящий самый подходящий результат, но мне нужны все возможные результаты чтобы выбрать самые подходящие по score. Любая подсказка будет полезна, благодарю!
from fuzzywuzzy import fuzz
information_code = {
'ярлык приложение смарт теминал': 'После установки приложения в личном кабинете ярлык отобразится на экране в зависимости от функционала.\
Подробную информацию вы можете посмотреть в описании приложения.',
'выгрузка данных приложение': 'Выгрузка данных из приложения обычно происходит автоматически раз в час.',
'терминал ккт регистрация': 'Чтобы зарегестрировать ККТ необходимо нажать на терминал....'
}
user_input_information = 'терминал'
close_match = max(information_code, key=lambda x: fuzz.token_ratio(x, user_input_information))
#print(close_match)
print(information_code[close_match])
Ответы (1 шт):
Автор решения: Easton
→ Ссылка
from fuzzywuzzy import fuzz
from functools import partial
data_dict = {
'ярлык приложение смарт теминал': 'После установки приложения в личном кабинете ярлык отобразится на экране в '
'зависимости от функционала. Подробную информацию вы можете посмотреть в '
'описании приложения.',
'выгрузка данных приложение': 'Выгрузка данных из приложения обычно происходит автоматически раз в час.',
'терминал ккт регистрация': 'Чтобы зарегестрировать ККТ необходимо нажать на терминал....'
}
input_str = 'терминал'
f = partial(fuzz.partial_ratio, input_str)
for k in data_dict:
print(data_dict[k], f(k))
Если я правильно понял, что вы хотите получить в результате, то вывод в данном случае выглядит так:
После установки приложения в личном кабинете ярлык отобразится на экране в зависимости от функционала. Подробную информацию вы можете посмотреть в описании приложения. 93
Выгрузка данных из приложения обычно происходит автоматически раз в час. 31
Чтобы зарегестрировать ККТ необходимо нажать на терминал.... 100