Странное поведение в экстракте FuzzyWuzzy - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь использовать FuzzyWuzzy, чтобы исправить неправильно написанные имена в тексте.Однако я не могу заставить process.extract и process.extractOne вести себя так, как я ожидал.

from fuzzywuzzy import process

the_text = 'VICTOR HUGO e MARIANA VEIGA'
search_term = 'VEYGA'

the_text = the_text.split()
found_word = process.extract(search_term, the_text)

print(found_word)

Это приводит к:

[('e', 90), ('VEIGA', 80), ('HUGO', 22), ('VICTOR', 18), ('MARIANA', 17)]

Как мне получить FuzzyWuzzy дляправильно определить «VEIGA» как правильный ответ?

1 Ответ

0 голосов
/ 22 мая 2018

вы можете попробовать использовать: fuzz.token_set_ratio или fuzz.token_sort_ratio Ответы здесь: Когда использовать какую функцию fuzz для сравнения 2 строк дает отличное объяснение.

для завершения здесьэто бит кода:

from fuzzywuzzy import process
from fuzzywuzzy import fuzz

the_text = 'VICTOR HUGO e MARIANA VEIGA'
search_term = 'VEYGA'

the_text = the_text.split()
found_word = process.extract(search_term, the_text, scorer=fuzz.token_sort_ratio)

print(found_word)

вывод:

[('VEIGA', 80), ('e', 33), ('HUGO', 22), ('ВИКТОР ', 18), (' МАРИАНА ', 17)]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...