2014-01-30 125 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 –

相關問題