我有一个问题,关于将类似的单词及其缩写组合成一个组,例如,我有下面列出的单词列表:
我想把这些词归类为人工智能,机器学习,数据分析
我使用了difflib.get_close_matches(),但这并没有给我想要的结果--例如,下面这个词是这样的:信息技术:‘信息技术’,‘移动技术’,‘新技术’
我也使用了fuzz.token_set_ratio(),但这也没有提供我想要的结果。两个人都没有。
如果有机器学习算法或python库,请告诉我。
谢谢
发布于 2018-08-02 08:32:54
您有两种类型的问题:
1)您有由子字符串相等的字符串,例如数据分析和数据分析。要解决这个问题,你有一个快速的解决方案。
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)你有首字母的问题。匹配ML与机器学习。这就更棘手了。您需要检测某些字符串是缩写(可能是因为它们几乎没有超过4个字符),并将它们与非缩写字符串的首字母匹配。使用动态规划对齐它们
https://stackoverflow.com/questions/51648330
复制相似问题