什么是CoNLL数据格式?

swa*_*out 50 nlp text-parsing text-mining information-extraction

我是文本挖掘的新手.我正在使用一个开源jar(Mate Parser),它在依赖解析后以CoNLL 2009格式给出输出.我想使用依赖解析结果进行信息提取.但我能够理解一些输出但不能理解CoNLL数据格式.任何人都可以帮助我理解CoNLL数据格式吗?任何类型的指针将不胜感激.

dmc*_*mcc 58

由于CoNLL每年都是不同的共享任务,因此有许多不同的CoNLL格式.此处描述了CoNLL 2009的格式.每行代表一个单词,带有一系列制表符分隔的字段._s表示空值.Mate-Parser的手册说它使用了CoNLL 2009的前12列:

ID FORM LEMMA PLEMMA POS PPOS FEAT PFEAT HEAD PHEAD DEPREL PDEPREL
Run Code Online (Sandbox Code Playgroud)

其中一些列的定义来自早期的共享任务(2006年和2007年使用的CoNLL-X格式):

  • ID (句子中的索引,从1开始)
  • FORM (单词形式本身)
  • LEMMA (单词的引理或词干)
  • POS (部分演讲)
  • FEAT (由|分隔的形态特征列表)
  • HEAD(句法父母的索引,0表示ROOT)
  • DEPREL(HEAD和这个词之间的句法关系)

这些列的变体(例如,PPOS但不是POS)以开头P表示该值是自动预测而非金标准值.

更新:现在还有CoNLL-U数据格式,它扩展了CoNLL-X格式.


Chi*_*cos 5

作为@dmcc 答案的更新:

  • CoNLL 是 NLP 中 TSV 格式的常规名称(TSV - 制表符分隔值,即带有<TAB>分隔符的 CSV)
  • 它源于自然语言学习会议(因此得名)组织的一系列共享任务
  • 并非所有这些任务都使用“CoNLL”格式,某些任务具有 JSON 或 XML 格式
  • 有一些独立于 CoNLL 开发的“CoNLL”格式,最著名的是 CoNLL-U
  • CoNLL 格式的不同之处在于列的选择和顺序

在 CoNLL 格式中,

  • 每个单词(标记)都用一行表示。
  • 每个句子与下一个句子之间用空行分隔
  • 每列代表一个注释
  • 句子中的每个单词具有相同的列数(在某些格式中:语料库中的每个单词具有相同的列数)
  • 注释是关于特定单词的字符串值
  • 跨越多个单词的注释有时使用特殊符号,例如,圆括号(表示短语的开始和结束)或 IOBES 注释(例如,B-NP:NP 的开始,I-NP:NP 的中间, E-NP:NP 结尾,S-NP:NP 在当前单词开始和结束,O:无 NP 注释)
  • 某些 CoNLL 格式将一列或多列数字标识符作为第一列,这些列之后的下一列(如果没有 ID,则为第一列)通常包含 WORD
  • 句子中第一个单词的 ID 为 1。如果没有提供 ID 列,则 ID 为句子中前面单词的数量加 1。
  • 在依存语法中,单词之间存在语法关系,依存标记为 HEAD(= 父单词的 ID)和 EDGE/DEP[endency](= 语法关系),两者都在单独的列中
  • 如果依存语法中的单词没有父级(即它是语法根),则将其 HEAD 设置为 0

使用声称支持(某些)“CoNLL 格式”的工具或库时要小心。不同的 CoNLL 格式具有不同的列顺序,开发人员可能没有意识到这一点。因此,如果它们从其他(或未指定)CoNLL 格式获取数据,它们可能无法按预期工作。

为了在不同的 CoNLL 格式之间进行转换,您可以考虑使用 CoNLL-RDF ( https://github.com/acoli-repo/conll-rdf )、CoNLL-Transform ( https://github.com/acoli-repo ) /conll-transform)(免责声明:由我的实验室开发。)