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

Python中合并词性标注列表与NER标注列表为指定格式字符串

解决两个标注列表的合并需求

嘿,这事儿不难!我来给你一步步拆解怎么实现:

核心思路

首先,我们需要把第二个NER标注列表转换成字典——这样查找每个词对应的NER标签会快很多。然后遍历第一个词性标注列表的每一个词,把词、词性,还有从字典里查到的NER标签(如果没有就用默认值)组合成你要的格式。

代码实现

这里直接给你可运行的代码,还包含了边界处理(比如有些词没有NER标注的情况):

# 你的两个输入列表
pos_list = [['The', 'DT'], ['Kawasaki', 'NNP'], ['Ki-100', 'NNP'], ['fighter', 'NN']]
ner_list = [['Kawasaki', 'ORGANIZATION'], ['Imperial', 'ORGANIZATION'], ['Army Air Service', 'ORGANIZATION'], ['Japanese', 'GPE']]

# 把NER列表转成字典,方便快速查找
ner_dict = {word: tag for word, tag in ner_list}

# 生成目标格式的字符串列表
result_lines = []
for word, pos_tag in pos_list:
    # 如果词不在NER字典里,就用'NONE'作为默认标签,你也可以改成空字符串或者其他
    ner_tag = ner_dict.get(word, 'NONE')
    result_lines.append(f"{word} {pos_tag} {ner_tag}")

# 把所有行合并成一个大字符串(每行一个词的标注)
final_result = '\n'.join(result_lines)

# 打印看看结果
print(final_result)

运行结果

上面的代码运行后会输出:

The DT NONE
Kawasaki NNP ORGANIZATION
Ki-100 NNP NONE
fighter NN NONE

自定义调整

  • 如果不想用'NONE'当默认值,比如想留空,把ner_dict.get(word, 'NONE')改成ner_dict.get(word, '')就行。
  • 如果你的列表里有重复的词,字典会自动保留最后一次出现的NER标签,要是需要处理重复词的特殊情况,可以再告诉我细节~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:25:09