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

如何从CSV文件生成以单词为键、对应全部同义词列表为值的字典

你现有代码的问题是:遍历每行数据时,始终直接对dict_syn[k]执行赋值操作,同一个单词的后续同义词会直接覆盖之前存储的内容,因此最终每个单词仅保留最后一个遍历到的同义词。

最小改动版本(基于你的原有逻辑修改)

import pandas as pd
import os

# read specific columns of csv file using Pandas
df = pd.read_csv("sparql.csv", usecols = ["w","syn"])
print(df)
liste_mot = df['w'].tolist()
liste_mot = set(liste_mot)
print(len(liste_mot))

dict_syn = {}

for index, row in df.iterrows():
    k, v = row
    sys = os.path.basename(v)
    # 等价于原split后join的逻辑,代码更简洁
    sys = sys.replace("_", " ")
    # 键不存在则先初始化空列表
    if k not in dict_syn:
        dict_syn[k] = []
    # 避免重复存储同一个同义词
    if sys not in dict_syn[k]:
        dict_syn[k].append(sys)

print(dict_syn)

更高效的Pandas原生实现(适合数据量较大的场景,无需手动遍历行)

import pandas as pd
import os

# 读取指定列
df = pd.read_csv("sparql.csv", usecols = ["w","syn"])
# 批量处理同义词字段
df["syn"] = df["syn"].apply(lambda x: os.path.basename(x).replace("_", " "))
# 按单词分组,同义词去重后聚合成列表,最终转字典
dict_syn = df.groupby("w")["syn"].apply(lambda x: x.drop_duplicates().tolist()).to_dict()

print(dict_syn)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:15:04