如何将文本数据转换为 CoNLL 格式?

数据挖掘 机器学习 深度学习 nlp 数据集
2022-03-14 00:12:50

与我在 stackoverflow 上发布的问题相同,但我想知道 stackexchange 是否适合这个问题。

我想将文本数据转换为 CoNLL 格式。

单词.txt

I was born in 1981.
From 12 to 24.

标签.txt

O O O O B-DateTime O
O B-DateTime I-DateTime B-DateTime O

CoNLL(.conll 文件)

I    O
was  O
born O
in   O
1981 B-DateTime
.    O

但是,我只找到了一个适用于 CoNLL-U 格式(conllu)的库,一个看起来像适用于 CoNLL(pyconll)的库,但没有示例代码,所以我不知道将其申请到 text-CoNLL 转换。

我对如何将数据转换为 CoNLL 以及如何编写 Python3 脚本来做这件事感到很困惑。

1个回答

我认为这里有些混乱:您展示的示例不是完整的“conll”格式,至少不是最近的格式。它只是 NER 的 BIO 格式。

据我所知,conllu 可能至少 10 年来一直是标准的“conll”格式,所以如果您使用一些旧数据,它可能会使用“conll”这个名称来表示不同的东西。或者也许有人只是使用名称“conll”,因为数据与 conll 相关,即使格式不是标准的 conll 格式。顺便说一句,您链接的库是用于解析 conllu 格式,而不是用于生成它。

通常,conllu 格式为每个标记包含几列:至少是标记、引理、POS 以及通常一些依赖树信息(依赖项头部的索引)。它特别被Universal Dependencies 项目使用。

据我所知,这种格式没有特定的 conll 标准。但这是一个可以手动实现的非常简单的转换:您可以简单地并行迭代单词和标签并将令牌和 BIO 标签打印为列。唯一可能的问题是单词是否已经被标记化。