如何快速将IOB格式文件转换为Conll U格式?
IOB转CoNLL-U快速方法
方法1:Python脚本批量转换
适用所有规模的文件,直接运行以下代码即可,默认IOB文件格式为每行词语 IOB标签,空行分隔不同句子:
# 配置输入输出路径 input_iob_path = "./input.iob" output_conllu_path = "./output.conllu" with open(input_iob_path, "r", encoding="utf-8") as f_iob, open(output_conllu_path, "w", encoding="utf-8") as f_conllu: word_index = 1 for line in f_iob: line = line.strip() # 空行代表句子结束,重置编号 if not line: f_conllu.write("\n") word_index = 1 continue word, iob_tag = line.split(maxsplit=1) # CoNLL-U标准10列格式,无值的字段用下划线占位,IOB标签放在MISC列 conllu_line = f"{word_index}\t{word}\t_\t_\t_\t_\t_\t_\t_\tNER={iob_tag}\n" f_conllu.write(conllu_line) word_index += 1
如果你的模型要求CoNLL-U包含词性、依存关系等字段,可以提前调用spaCy、LTP等NLP工具处理后填充到对应列即可。
方法2:编辑器批量处理(仅适合小文件)
如果文件内容很少不想跑代码,可以用支持正则替换和自动编号的文本编辑器操作:
- 逐行给每个词语加递增编号作为第一列
- 其余不需要的字段用
_占位,每行按照编号\t词语\t_\t_\t_\t_\t_\t_\t_\tNER=标签的格式调整 - 句子末尾补空行即可完成转换
内容的提问来源于stack exchange,提问作者darned7
相关产品推荐
相关产品推荐

