我有一个关于将相似单词及其缩写分组为一组的问题,例如我有下面给出的单词列表:
我想将这些词归入[人工智能、机器学习、数据分析]
我使用了 difflib.get_close_matches() 但这并没有给我想要的结果例如这就是 difflib 组:信息技术': ['信息技术','移动技术','新技术']
我还使用了 fuzz.token_set_ratio() 但这也没有为我提供所需的结果。 Levenshtein 也没有。
如果有任何机器学习算法或任何Python库,请告诉我。
您有两种类型的问题:
1) 您有一些子字符串相等的字符串,例如 Data Analytics 和 Data & Analytics。要解决这个问题,您有一个快速的解决方案。
def check_if_substring( str1 = "Data Analytics" , str2 = "Data & Analytics" ):
str1 = str1.lower()
str2 = str2.lower()
split_str_1 = str1.split()
split_str_2 = str2.split()
is_same = True
for s in split_str_1:
if( not s in split_str_2 ):
is_same = False
if is_same: return True
is_same = True
for s in split_str_2:
if( not s in split_str_1 ):
is_same = False
return is_same
2) 你有缩写的问题。将机器学习与机器学习相结合。这更棘手。您需要检测某些字符串是缩写(可能是因为它们几乎不会超过 4 个字符)并将它们与非缩写字符串的首字母进行匹配。使用动态规划来对齐它们