首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AllenNLP BERT SRL输入格式("OntoNotes诉5.0格式化“)

AllenNLP BERT SRL输入格式("OntoNotes诉5.0格式化“)
EN

Stack Overflow用户
提问于 2021-09-14 13:37:00
回答 1查看 254关注 0票数 1

目标是在另一个数据集上对BERT SRL进行培训。根据配置的说法,它需要conll-formatted-ontonotes-5.0

本机,我的数据以CoNLL格式出现,并将其转换为GitHub版的OntoNotes v.5.0的conll格式-ontonotes-5.0格式。读取数据和培训似乎有效,只是精度保持在0。我怀疑SRL参数的编码(BOI还是短语?)或者列结构(其他OntoNotes版本的CoNLL格式在这里不同)与预期的输入不同。或者,可能会出现错误,因为如果角色标签是硬连接在代码中的.我在使用long form (ARGM-TMP)时遵循了引用数据,但在其他数据中经常会看到短表单(AM-TMP)。

问题是这里需要哪种数据集和格式。我想这是OntoNotes 5.0的CoNLL/Skel格式之一,它有一个恢复的WORD列,但是

  • CoNLL版似乎没有随OntoNotes最不发达国家版一起发布
  • 它似乎不是由OntoNotes创建者提供的GitHub上的“conll格式化- OntoNotes -5.0”版本的格式。
  • 至少还有一个OntoNotes 5.0数据的其他CoNLL/Skel版本作为PropBank的一部分。这与另一列的不同之处在于省略了3列和谓词的编码。(对于我的部分数据,这是本机格式。)
  • SrlReader文档提到了BIO (IOBES)编码。事实上,这在其他CoNLL版本的PropBank数据中已经使用过,但在上面提到的OntoNotes语料库中却没有使用。其他类似的格式有CoNLL-2008和CoNLL-2009格式,以及不同的变体。

在我开始反向工程SrlReader之前,是否有人手头有一个数据片段,以便我能够相应地准备我的数据?

我的数据的conll-formatted-ontonotes-5.0版本(来自EWT语料库的示例):

代码语言:javascript
复制
google/ewt/answers/00/20070404104007AAY1Chs_ans.xml 0   0   where   WRB (TOP(S(SBARQ(WHADVP*)   -   -   -   -   *   (ARGM-LOC*) *   *   -
google/ewt/answers/00/20070404104007AAY1Chs_ans.xml 0   1   can MD  (SQ*    -   -   -   -   *   (ARGM-MOD*) *   *   -
google/ewt/answers/00/20070404104007AAY1Chs_ans.xml 0   2   I   PRP (NP*)   -   -   -   -   *   (ARG0*) *   *   -
google/ewt/answers/00/20070404104007AAY1Chs_ans.xml 0   3   get VB  (VP*    get 01  -   -   *   (V*)    *   *   -
google/ewt/answers/00/20070404104007AAY1Chs_ans.xml 0   4   morcillas   NNS (NP*)   -   -   -   -   *   (ARG1*) *   *   -
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-15 16:27:04

“原生”格式是CoNLL-2012版本的格式,参见cemantix.org/conll/2012/data.html如何创建它。

但是,读取它的Ontonotes类在解析“本机”CoNLL-2012数据时可能遇到困难,因为CoNLL-2012预处理脚本可能导致无效的解析树。使用NLTK进行解析自然会导致ValueError,如

代码语言:javascript
复制
ValueError: Tree.read(): expected ')' but got 'end-of-string'
            at index 1427.
                "...LT#.#.) ))"

在数据级别上没有解决这一问题的直接方法,因为解析的字符串是中间表示,而不是原始数据。如果要处理CoNLL-2012数据,则必须捕获ValueError,cf。https://github.com/allenai/allennlp/issues/5410

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69178847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档