在Python中将相似但完全相同的单词及其缩写分组

问题描述 投票:0回答:1

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

  1. 人工智能
  2. 人工智能
  3. 人工智能
  4. 机器学习
  5. ML
  6. 数据分析
  7. 数据与分析

我想将这些词归入[人工智能、机器学习、数据分析]

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

我还使用了 fuzz.token_set_ratio() 但这也没有为我提供所需的结果。 Levenshtein 也没有。

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

python-3.x machine-learning grouping
1个回答
1
投票

您有两种类型的问题:

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

© www.soinside.com 2019 - 2024. All rights reserved.