2014-01-30 8 views
5

Es scheint ein paar verschiedene Einstellungen zu sein:Wie verwende ich IOB-Tags mit Stanford NER?

iobtags 
iobTags 
entitySubclassification (IOB1 or IOB2?) 
evaluateIOB 

Welche Einstellung verwende ich, und wie kann ich es richtig benutzen?

Ich habe versucht, die Kennzeichnung wie folgt aus:

1997 B-DATE 
volvo B-BRAND 
wia64t B-MODEL 
highway B-TYPE 
tractor I-TYPE 

Aber auf dem Trainings Ausgang schien es zu glauben, dass B-TYPE und I-TYPE verschiedenen Klassen waren.

Ich verwende die Version 2013-11-12.

Antwort

7

Wie dies getan werden kann, ist derzeit (2013 veröffentlicht) ein bisschen ein Durcheinander, da es zwei verschiedene Sätze von Flags für zwei verschiedene DocumentReaderAndWriter Implementierungen gibt. Es tut uns leid.

Die flexibelste Unterstützung für verschiedene IOB-Stile finden Sie in CoNLLDocumentReaderAndWriter. Sie können es jede IOB/IOE/... Anmerkung von Bindestrichen Präfixen wie Ihre Beispiele (B-BRAND) auf andere getan Karte haben, während es Dateien mit der Flagge liest:

-entitySubclassification IOB2 

Die resultierende Kennsatzfamilie ist dann für Training und Klassifizierung verwendet. Die Optionen sind in der entitySubclassify()-Methode von CoNLLDocumentReaderAndWriter dokumentiert: IOB1, IOB2, IOE1, IOE2, SBIEO, IO. Sie können eine Diskussion von IOB1 vs. IOB2 in Tjong Kim Sang and Veenstra 1999 finden. Standardmäßig wird die Darstellung auf IOB1 auf Ausgabe abgebildet zurück, denn das ist die standardmäßig im CoNLL conlleval Programm verwendet wird, aber Sie können es halten, wie, was Sie es mit der Flagge abgebildet:

-retainEntitySubclassification 

Zur Verwendung dieser DocumentReaderAndWriter können Sie eine Ausbildung Befehl wie geben:

java8 -mx6g edu.stanford.nlp.ie.crf.CRFClassifier -prop conll.crf.chris2009.prop -readerAndWriter edu.stanford.nlp.sequences.CoNLLDocumentReaderAndWriter -entitySubclassification iob2 

Alternativ ColumnDocumentReaderAndWriter ist der Standard DocumentReaderAndWriter, die wir in den verteilten Modellen verwenden. Die Optionen, die Sie damit erhalten, sind anders und etwas begrenzter. Sie haben diese beiden Fahnen:

  • -mergeTags wird entweder Ebene ("MARKE") oder CoNLL-like ("I-BRAND") Etiketten und ordnet sie nach unten auf ein Präfix-less IO-Label ("MARKE") und das zum Trainieren und Klassifizieren verwenden.
  • -iobTags können entweder unbedruckte ("BRAND") oder CoNLL-ähnliche ("I-BRAND") Labels aufnehmen und diese auf IOB2 abbilden.

In einem Sequenzmodell, für jede der Kennzeichnungssysteme wie IOB2, die Etiketten sind verschiedene Klassen. So funktionieren diese Kennzeichnungsschemata. Die spezielle Interpretation von "I-", "B-" usw. wird der menschlichen Beobachter- und Entitätsevaluierungssoftware überlassen. Die mitgelieferte Evaluierungssoftware funktioniert nur mit IOB1, IOB2 oder ohne Präfix-losen E/A-Kodierung.

+0

Prof. Manning, Ich bin gespannt, wie die IOB-Codierung mit IO-Codierung ab 2016 vergleicht. Ich sehe im Jahr 2012 hatten Sie in der NLP-Klasse gesagt: https://youtu.be/mbMrRT5Osbk?t=6m27s –