Принимать "близкие совпадения" при использовании строк в функциях Python? - PullRequest
1 голос
/ 01 ноября 2019

Я пытаюсь использовать функцию кратчайшего пути, чтобы найти расстояние между строками на графике. Проблема в том, что иногда есть близкие совпадения, которые я хочу посчитать. Например, я хотел бы, чтобы «связь» считалась «коммуникацией», или «сетевое устройство» считалось «сетевым устройством». Есть ли способ сделать это в Python? (например, извлечь корень слов, или вычислить расстояние строки, или, возможно, библиотеку Python, которая уже имеет отношения в форме слова, такие как множественное число / gerund / misspelled / и т.д.). Моя проблема сейчас заключается в том, что мой процесс работает только при наличииточное соответствие для каждого элемента в моей базе данных, который трудно содержать в чистоте.

Например:

List_of_tags_in_graph = ['A', 'list', 'of', 'tags', 'in', 'graph']

given_tag = 'lists'

if min_fuzzy_string_distance_measure(given_tag, List_of_tags_in_graph) < threshold :
     index_of_min = index_of_min_fuzzy_match(given_tag, List_of_tags_in_graph)
     given_tag = List_of_tags_in_graph[index_of_min]

#... then use given_tag in the graph calculation because now I know it matches ...

Есть мысли о простом или быстром способе сделать это? Или, возможно, другой способ думать о принятии сильных сторон близкого совпадения ... или, возможно, просто лучшая обработка ошибок, когда строки не совпадают?

1 Ответ

0 голосов
/ 01 ноября 2019

Попробуйте использовать nltk WorldNetLemmatizer, он предназначен для извлечения корня слов. https://www.nltk.org/_modules/nltk/stem/wordnet.html

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