2016-04-13 9 views
0

Ich habe versucht, NER und POS-Tag aus Texten mit Stanford Named Entity Recognizer (NER) und Stanford Log-linear Part-Of-Speech Tagger geben.Kann NER Stanford in Java-Datei aufgerufen?

Lassen Sie mich Ihnen ein Beispiel POStag

import edu.stanford.nlp.tagger.maxent.MaxentTagger; 

public class POSTag { 
    static MaxentTagger tagger = new MaxentTagger("english_language_pos.tagger"); 

    public static void main(String[] args) throws IOException{ 
     String text = "Sarah and I go to Samsung office in Korea." 
     String tagged = tagger.tagString(text); 

     System.out.println(tagged); 
    } 
} 

Der Ausgang:

Sarah_NNP and_CC I_PRP go_VBP to_TO Samsung_NNP office_NN in_IN Korea_NNP ._. 

Und für NER Stanford, ich habe in der Befehlszeile auszuführen:

java -mx500m -cp stanford-ner-3.5.2.jar edu.stanford.nlp.ie.crf.CRFClassifier -loadClassifier indonesian_language_ner.gz -textFile E:/file.txt > E:/file_ner.txt 

Meine Frage ist, wie kann ich Stanford NER in Datei mit Java-Erweiterung (file.java) aufrufen? Gibt es eine Möglichkeit, Stanford NER außer von der Befehlszeile zu nennen? Oder ein anderes Tool oder eine Bibliothek, die ich verwenden kann, um NER, die von Java-Datei aufgerufen?

***** edit:
Ich brauche die Ausgabe von NER so geworden:

Sarah_PERSON and_O I_O go_O to_O Samsung_ORGANIZATION office_O in_O Korea_PLACE ._O 

***** bearbeiten

** FYI: Ich benutze Windows-8.1

Antwort

1

Man könnte so etwas tun:

String model = "english.all.3class.distsim.crf.ser.gz"; 
    String text = "file.txt"; 

    AbstractSequenceClassifier<CoreLabel> classifier = CRFClassifier.getClassifier(model); 
    classifier.classifyAndWriteAnswers(text); 

ich es hilft hoffen.

+0

Ich brauche den Ausgang ist Text mit Tag NER. Ich habe meinen Beitrag für Details bearbeiten. –

+0

Dies sollte funktionieren. Das Tagging erfolgt standardmäßig mit '/'. Sie können sich leicht an ein anderes Zeichen anpassen. – joel314

+0

Wie kann ich die Ausgabe in die Datei schreiben anstatt auf die Konsole zu drucken? Es gibt andere Methoden classifyAndWriteAnswers mit anderen Parametern, aber ich weiß nicht, welche zum Schreiben in die Datei verwendet werden können. Danke –