erkennen Ich verwende derzeit OpenNLP mit UIMA, um Wörter in einem Satz zu kennzeichnen. Es ist wichtig, dass ein einzelnes Wort mehr als einmal beschriftet werden kann. Zum Beispiel sollte David Cronenberg
als director
und person
markiert werden.Mehrere benannte Entitätstypen für eine Nominalphrase mit NLP
Ich weiß, dass der Trainingsprozess korrekt implementiert ist, da ich eine benutzerdefinierte Modelldatei habe und wenn alle Sätze mit einem der Labels aus der Modelldatei entfernt werden, wird das andere Label erkannt.
Ich wäre vorzugsweise in der Lage, weiterhin OpenNLP zu verwenden, um Wörter zu verdoppeln. Gibt es eine Möglichkeit, dies zu tun? Wenn nicht, ist dies mit einer anderen Bibliothek wie Stanford CoreNLP möglich.
Der Code, der die Etiketten bekommt unter:
List<NamedEntity> entities = JCasUtil.selectCovered(NamedEntity.class, aConstituent);
if (!entities.isEmpty()) {
// is never more than 1
}
Und einige Beispieltrainingsdaten unter (es gibt Hunderte von Zeilen ähnlich wie diese.)
<START:person> David Cronenberg <END> directed <START:film> Crash <END> .
<START:director> David Cronenberg <END> directed <START:film> Scanners <END> .
Erreichen Sie die Entwickler von OpenNLP. Vielleicht finden Sie hier Hilfe, aber Sie werden dort wahrscheinlich mehr finden. Wenn es Open Source ist, dann schauen Sie in den Code - Sie können dort nicht nur Ihre Antwort finden, sondern auch eine Lösung. –