Я пытаюсь использовать функцию кратчайшего пути, чтобы найти расстояние между строками на графике. Проблема в том, что иногда есть близкие совпадения, которые я хочу посчитать. Например, я хотел бы, чтобы «связь» считалась «коммуникацией», или «сетевое устройство» считалось «сетевым устройством». Есть ли способ сделать это в 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 ...
Есть мысли о простом или быстром способе сделать это? Или, возможно, другой способ думать о принятии сильных сторон близкого совпадения ... или, возможно, просто лучшая обработка ошибок, когда строки не совпадают?