У меня есть 'collections.defaultdict' (см. x ниже), который является многозначным словарем. Все значения, связанные с каждым уникальным ключом, хранятся в списке.
>>>x
defaultdict(<type 'list'>, {'a': ['aa', 'ab', 'ac'], 'b': ['ba', 'bc'], 'c': ['ca', 'cb', 'cc', 'cd']})
Я хочу использовать пакет Python fuzzywuzzy для поиска целевой строки по всем значениям, вложенным в многозначный словарь, и возвращать 5 лучших совпадений на основе встроенной формулы расстояния редактирования fuzzywuzzy.
from fuzzywuzzy import fuzz
from fuzzywuzzy import process
query = 'bc'
choices = x
result = process.extract(query, choices, limit=5)
Затем я запускаю процесс, который берет самое близкое совпадение (значение с наивысшим коэффициентом нечеткости) и определяет, с каким ключом связано это самое близкое соответствие. В этом примере ближайшим совпадающим значением, конечно же, является «bc», а связанным с ним ключом является «b».
Мой вопрос: как мне запустить fuzzywuzzy-запрос ко всем значениям во вложенных списках словаря? Когда я запускаю описанный выше процесс fuzzywuzzy, я получаю ошибку TypeError: ожидаемая строка или буфер.