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

如何让Python识别CSV中的同义词汇?适配搜索引擎匹配需求

实现同义词双向匹配方案

1. 读取CSV构建双向同义词映射

先把CSV中的同义词对转换成双向映射,让每个词都能快速找到它的所有同义词(包括自身):

import csv

def build_synonym_map(csv_file_path):
    synonym_map = {}
    with open(csv_file_path, 'r', encoding='utf-8') as file:
        csv_reader = csv.reader(file)
        # 遍历每一行同义词对
        for row in csv_reader:
            if len(row) >= 2:
                # 保留词汇中间的空格,只去除前后多余空格
                term1 = row[0].strip()
                term2 = row[1].strip()
                
                # 给term1添加同义词
                if term1 not in synonym_map:
                    synonym_map[term1] = {term1}
                synonym_map[term1].add(term2)
                
                # 给term2添加同义词(双向)
                if term2 not in synonym_map:
                    synonym_map[term2] = {term2}
                synonym_map[term2].add(term1)
    return synonym_map

2. 实现搜索同义词匹配逻辑

有了映射表后,就能轻松判断结果列表中的元素是否和查询词属于同一同义词组:

# 初始化同义词映射
synonym_map = build_synonym_map("你的同义词文件.csv")

# 示例参数
query = "AA"
result_list = ["A", "B", "CC", "D D"]

# 筛选匹配的元素:元素在查询词的同义词集合中就算匹配
matched_elements = [elem for elem in result_list if elem in synonym_map.get(query, {query})]

print(matched_elements)  # 输出:['A']

额外说明

  • 如果CSV中存在一行多个同义词的情况(比如三个及以上),可以修改代码把该行所有词汇加入同一同义词集合
  • 若查询词不在同义词表中,默认只匹配自身,避免出现KeyError
  • 支持带空格的词汇,因为代码只去除了词汇前后的空格,保留了中间的空格

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 20:45:57