在python中对相似但准确的单词及其缩写进行分组



我有一个关于将类似单词及其缩写分组为一组的问题,例如,我有下面的单词列表:

人工智能
  • 人工智能
  • AI
  • 机器学习
  • ML
  • 数据分析
  • 数据&分析
  • 我想把这些单词分成[人工智能、机器学习、数据分析]

    我使用了difflib.get_close_matches((,但这并没有给我想要的结果。例如,difflib组是这样的:信息技术:[信息技术,移动技术,新技术]

    我还使用了fuzz.token_set_ratio((,但这也没有为我提供所需的结果。莱文斯坦也没有。

    如果有任何机器学习算法或任何python库,请告诉我。

    谢谢

    您有两种类型的问题:

    1( 您有等子字符串的字符串,如Data Analytics和Data&分析。要解决这个问题,你有一个快速的解决方案。

    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个字符(,并将它们与非缩写字符串的首字母进行匹配。使用动态编程将它们对齐

    最新更新