1

最短パス関数を使用して、グラフ内の文字列間の距離を見つけようとしています。問題は、カウントしたい近似一致が時々あることです。たとえば、「通信」を「通信」としてカウントしたり、「ネットワーク デバイス」を「ネットワーク デバイス」としてカウントしたりします。Pythonでこれを行う方法はありますか? (たとえば、単語の語根を抽出する、文字列の距離を計算する、またはおそらく複数形/動名詞/スペルミスなどの単語形式の関係が既にある Python ライブラリ)。データベース内のすべてのアイテムと完全に一致しますが、これをきれいに保つのは困難です。

例えば:

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 ...

これを行う簡単または迅速な方法について何か考えはありますか? または、おそらく近似一致の強さを受け入れることについて考える別の方法...または、文字列が一致しない場合のエラー処理の改善でしょうか?

4

1 に答える 1

0

nltk WorldNetLemmatizer を使用してみてください。語根を抽出するように設計されています。https://www.nltk.org/_modules/nltk/stem/wordnet.html

于 2019-11-01T13:15:36.153 に答える