Nei*_*gan 6 named-entity-recognition stanford-nlp
似乎有一些不同的设置:
iobtags
iobTags
entitySubclassification (IOB1 or IOB2?)
evaluateIOB
Run Code Online (Sandbox Code Playgroud)
我使用哪种设置,如何正确使用?
我试着像这样标记:
1997 B-DATE
volvo B-BRAND
wia64t B-MODEL
highway B-TYPE
tractor I-TYPE
Run Code Online (Sandbox Code Playgroud)
但是在训练输出上,似乎认为B-TYPE和I-TYPE是不同的类别.
我正在使用2013-11-12版本.
Chr*_*ing 13
如何做到这一点目前(2013年发布)有点混乱,因为两种不同的DocumentReaderAndWriter实现有两组不同的标志.抱歉.
对于不同IOB样式的最灵活支持可在以下位置找到CoNLLDocumentReaderAndWriter.您可以将任何IOB/IOE/...注释映射到您的示例(B-BRAND)之类的带连字符的前缀,以及在使用该标志读取文件时:
-entitySubclassification IOB2
Run Code Online (Sandbox Code Playgroud)
然后将得到的标签集用于训练和分类.这些选项记录在以下entitySubclassify()方法中CoNLLDocumentReaderAndWriter:IOB1,IOB2,IOE1,IOE2,SBIEO,IO.您可以在Tjong Kim Sang和Veenstra 1999中找到IOB1与IOB2的讨论.默认情况下,表示在输出时映射回IOB1,因为这是CoNLL conlleval程序中使用的默认值,但您可以将其保留为您使用该标志将其映射到的内容:
-retainEntitySubclassification
Run Code Online (Sandbox Code Playgroud)
要使用此功能DocumentReaderAndWriter,您可以提供以下培训命令:
java8 -mx6g edu.stanford.nlp.ie.crf.CRFClassifier -prop conll.crf.chris2009.prop -readerAndWriter edu.stanford.nlp.sequences.CoNLLDocumentReaderAndWriter -entitySubclassification iob2
Run Code Online (Sandbox Code Playgroud)
或者,ColumnDocumentReaderAndWriter是DocumentReaderAndWriter我们在分布式模型中使用的默认值.你得到的选项是不同的,略有限制.你有这两个标志:
-mergeTags 将采用普通("BRAND")或类似CoNLL("I-BRAND")标签,并将其映射到无前缀的IO标签("BRAND"),并将其用于训练和分类.-iobTags 可以采用普通("BRAND")或类似CoNLL("I-BRAND")标签,并将它们映射到IOB2.在序列模型中,对于任何标记方案(如IOB2),标签是不同的类.这就是这些标签计划的工作方式."I-","B-"等的特殊解释留给人类观察者和实体级评估软件.附带的评估软件仅适用于IOB1,IOB2或无前缀IO编码.