2014-01-30 186 views
5

似乎有是几个不同的设置:如何在斯坦福大学NER中使用IOB标签?

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发行版。

回答

7

如何做到这一点是目前(2013年发布)有点混乱,因为有两个不同的标志为两个不同的实现DocumentReaderAndWriter实现。抱歉。

CoNLLDocumentReaderAndWriter中找到了对不同IOB样式最灵活的支持。你可以拥有它,而它是阅读与标志文件被喜欢你的例子复姓前缀(B-BRAND)做任何IOB/IOE/...注释映射到任何其他:

-entitySubclassification IOB2 

产生的标签集然后用于训练和分类。这些选项记录在CoNLLDocumentReaderAndWriterentitySubclassify()方法中:IOB1,IOB2,IOE1,IOE2,SBIEO,IO。您可以在Tjong Kim Sang and Veenstra 1999中找到关于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可以采用普通(“BRAND”)或CoNLL-like(“I-BRAND”)标签并将它们映射到IOB2。

在序列模型中,对于任何标签计划等IOB2的,标签不同的类。这就是这些标签计划的工作原理。 “I-”,“B-”等的特殊解释留给人类观察者和实体级评估软件。所包含的评估软件只能使用IOB1,IOB2或前缀IO编码。

+0

Manning教授,我很好奇IOB编码与2016年的IO编码相比如何。我在2012年看到你在NLP课堂上说过:https://youtu.be/mbMrRT5Osbk?t = 6m27s –

相关问题