如何做到这一点是目前(2013年发布)有点混乱,因为有两个不同的标志为两个不同的实现DocumentReaderAndWriter
实现。抱歉。
在CoNLLDocumentReaderAndWriter
中找到了对不同IOB样式最灵活的支持。你可以拥有它,而它是阅读与标志文件被喜欢你的例子复姓前缀(B-BRAND)做任何IOB/IOE/...注释映射到任何其他:
-entitySubclassification IOB2
产生的标签集然后用于训练和分类。这些选项记录在CoNLLDocumentReaderAndWriter
的entitySubclassify()
方法中: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编码。
Manning教授,我很好奇IOB编码与2016年的IO编码相比如何。我在2012年看到你在NLP课堂上说过:https://youtu.be/mbMrRT5Osbk?t = 6m27s –