Ich verwende den StanfordCoreNLPServer einige Informationen aus Text (wie Oberflächen, Straßennamen)Haben sowohl NER und RegexNER Tags in StanfordCoreNLPServer Ausgabe?
die Straße von einem speziell ausgebildeten NER-Modell gegeben ist, und die Oberfläche über die RegexNER durch eine einfache regex zu extrahieren.
Jeder von ihnen funktioniert getrennt, aber wenn zusammen verwendet, ist nur das NER-Ergebnis in der Ausgabe unter dem ner
Tag. Warum gibt es kein regexner
Tag? Gibt es eine Möglichkeit, auch das RegexNER-Ergebnis zu erhalten?
Informationen:
StanfordCoreNLP v3.6.0
die URL verwendet:
'http://127.0.0.1:9000/' '?properties={"annotators":"tokenize,ssplit,pos,ner,regexner", ' '"pos.model":"edu/stanford/nlp/models/pos-tagger/french/french.tagger",' '"tokenize.language":"fr",' '"ner.model":"ner-model.ser.gz", ' # custom NER model with STREET labels '"regexner.mapping":"rules.tsv", ' # SURFACE label '"outputFormat": "json"}'
als here vorgeschlagen, die
regexner
annotator ist nach diener
, aber immer noch ...Der Stromausgang (Auszug):
{u'index': 4, u'word': u'dans', u'lemma': u'dans', u'pos': u'P', u'characterOffsetEnd': 12, u'characterOffsetBegin': 8, u'originalText': u'dans', u'ner': u'O'} {u'index': 5, u'word': u'la', u'lemma': u'la', u'pos': u'DET', u'characterOffsetEnd': 15, u'characterOffsetBegin': 13, u'originalText': u'la', u'ner': u'O'} {u'index': 6, u'word': u'rue', u'lemma': u'rue', u'pos': u'NC', u'characterOffsetEnd': 19, u'characterOffsetBegin': 16, u'originalText': u'rue', u'ner': u'STREET'} {u'index': 7, u'word': u'du', u'lemma': u'du', u'pos': u'P', u'characterOffsetEnd': 22, u'characterOffsetBegin': 20, u'originalText': u'du', u'ner': u'STREET'} [...] {u'index': 43, u'word': u'165', u'lemma': u'165', u'normalizedNER': u'165.0', u'pos': u'DET', u'characterOffsetEnd': 196, u'characterOffsetBegin': 193, u'originalText': u'165', u'ner': u'NUMBER'} {u'index': 44, u'word': u'm', u'lemma': u'm', u'pos': u'NC', u'characterOffsetEnd': 198, u'characterOffsetBegin': 197, u'originalText': u'm', u'ner': u'O'} {u'index': 45, u'word': u'2', u'lemma': u'2', u'normalizedNER': u'2.0', u'pos': u'ADJ', u'characterOffsetEnd': 199, u'characterOffsetBegin': 198, u'originalText': u'2', u'ner': u'NUMBER'}
Erwartete Ausgabe: Ich möchte die letzten drei Elemente mit
SURFACE
, dh dasRegexNER
Ergebnis gekennzeichnet werden.
Lassen Sie mich wissen, wenn weitere Details benötigt werden.
Sind Sie sicher, dass die obige Zeile ohne Fehler ausgeführt wird? –
Ja, tut es mit dem Setup in der Frage beschrieben. – stellasia
Wenn ich den Code mit der Annotator-Reihenfolge ausführen, die Sie in der Antwort erwähnen, gibt es "Annotator" Regexner "erfordert Annotator" tokenize "" –