Stanford nlp 如何在Stanford NER中使用IOB标签?

Stanford nlp 如何在Stanford NER中使用IOB标签?,stanford-nlp,named-entity-recognition,Stanford Nlp,Named Entity Recognition,似乎有一些不同的设置: iobtags iobTags entitySubclassification (IOB1 or IOB2?) evaluateIOB 我应该使用哪种设置,以及如何正确使用它 我试着这样贴标签: 1997 B-DATE volvo B-BRAND wia64t B-MODEL highway B-TYPE tractor I-TYPE 但在培训输出上,似乎认为B型和I型是不同的课程 我使用的是2013-11-12版本 如何做到这一点目前(2013版)有点混

似乎有一些不同的设置:

iobtags
iobTags
entitySubclassification (IOB1 or IOB2?)
evaluateIOB
我应该使用哪种设置,以及如何正确使用它

我试着这样贴标签:

1997    B-DATE
volvo   B-BRAND
wia64t  B-MODEL
highway B-TYPE
tractor I-TYPE
但在培训输出上,似乎认为B型和I型是不同的课程


我使用的是2013-11-12版本

如何做到这一点目前(2013版)有点混乱,因为两个不同的
DocumentReaderAndWriter
实现有两组不同的标志。对不起

对不同IOB样式最灵活的支持可以在
CoNLLDocumentReaderAndWriter
中找到。你可以让它映射任何IOB/IOE/。。。在读取带有以下标志的文件时,通过连字符前缀(如示例(B品牌))对任何其他文件进行注释:

-entitySubclassification IOB2
然后将生成的标签集用于训练和分类。这些选项记录在
CoNLLDocumentReaderAndWriter
entitysubclass()
方法中:IOB1、IOB2、IOE1、IOE2、SBIEO、IO。您可以在中找到关于IOB1与IOB2的讨论。默认情况下,表示在输出时映射回IOB1,因为这是CoNLL
conlleval
程序中使用的默认值,但您可以使用以下标志将其保留为映射到的值:

-retainEntitySubclassification
要使用此
DocumentReaderAndWriter
,您可以发出如下训练命令:

java8 -mx6g edu.stanford.nlp.ie.crf.CRFClassifier -prop conll.crf.chris2009.prop -readerAndWriter edu.stanford.nlp.sequences.CoNLLDocumentReaderAndWriter -entitySubclassification iob2
或者,
ColumnDocumentReaderAndWriter
是我们在分布式模型中使用的默认
DocumentReaderAndWriter
。你可以从中得到不同的选择,而且有点有限。您有以下两个标志:

  • -mergeTags
    将使用普通(“品牌”)或类似CoNLL(“I-BRAND”)的标签,并将其向下映射到一个无前缀IO标签(“品牌”),并将其用于培训和分类
  • -iobTags
    可以使用普通(“品牌”)或类似CoNLL(“I品牌”)的标签,并将它们映射到IOB2

在序列模型中,对于像IOB2这样的任何标签方案,标签都是不同的类。这就是这些标签方案的工作原理。“I-”和“B-”等的特殊解释留给人类观察者和实体级评估软件。随附的评估软件仅适用于IOB1、IOB2或无前缀IO编码

曼宁教授,我很好奇IOB编码与2016年的IO编码相比如何。我看到2012年你在NLP课上说过: