Я хочу сопоставить вхождения сущностей в SeqString
. Например:
dict_data = ['johnson', 'apple platform']
SeqString = 'Johnson buys a new phone which is based on Apppple Platform. Johnson very likes the Apple Platform.'
Ожидаемые результаты:
Совпадение 1: Джонсон ‹=> johnson, start_char:0, end_char:7, оценка сходства
Совпадение 2: Платформа Apple ‹=> платформа Apple, start_char: 43, end_char: 59, показатель сходства
Совпадение 3: Джонсон ‹=> johnson, start_char:61, end_char:68, оценка сходства
Совпадение 4: платформа Apple ‹=> платформа Apple, start_char:84, end_char:98, оценка сходства
Короче говоря, dict_data
очень большой. Я хочу сопоставить объекты в dict_data
с порогом.
Я попытался:
библиотека SpaCy. Однако он основан на точном совпадении. Он не может обрабатывать
Apppple Platform
.fuzzywuzzy, в которой есть метод
SequenceMatcher.get_matching_blocks()
, однако "тройки монотонно возрастают по i и по j". Это означает, что он не может соответствовать второму вхождениюjohnson
.
Любое решение для моего случая?