You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何将含义相同的文本词汇识别为同一词?

你原来的写法效率很低,而且有逻辑错误:每加一个替换规则就要遍历一次列表,数据量大的时候耗时会线性增长,同时第二次列表推导是直接遍历原始list1生成,会直接覆盖第一次的替换结果,根本拿不到你要的输出。

最推荐的高效实现是用映射字典做单次遍历,时间复杂度只有O(n),n为列表长度:

# 原始列表
list1 = ['data mining', 'datamining', 'data science', 'graph model']
# 同义词映射规则:key是需要替换的词,value是统一后的标准词
synonym_map = {
    'datamining': 'data mining',
    'data science': 'data mining'
}
# 一次遍历完成所有替换
list2 = [synonym_map.get(item, item) for item in list1]

运行后得到的list2就是你要的['data mining', 'data mining', 'data mining', 'graph model']。后续新增同义词规则只需要往synonym_map里加键值对即可,不需要修改遍历逻辑,也不会额外增加耗时。

如果你的同义词存在大小写、空格、小拼写误差这类格式差异,没法做精确匹配,可以加一层标准化预处理再匹配:

def normalize_str(s):
    # 自定义标准化规则:转小写、去除所有空格、去除多余符号等
    return s.lower().replace(' ', '').strip()

# 映射的key换成标准化后的字符串
synonym_map = {
    normalize_str('datamining'): 'data mining',
    normalize_str('data science'): 'data mining'
}

list2 = [synonym_map.get(normalize_str(item), item) for item in list1]

如果是需要处理语义层面的同义词(完全不同的词但含义一致,没有格式规律,没法手动穷举),可以搭配预训练词向量模型计算语义相似度做匹配,适合词库量极大的场景。

内容的提问来源于stack exchange,提问作者user12217822

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 05:57:04