2016-04-21 2 views
1

Ich arbeite mit einem Stanford CoreNLP Server:Verhindern von Stanford-Core NLP Server von dem Text ausgeben erhält es

java -mx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9001 -timeout 50000 

Jedes Mal, wenn es einen Text empfängt, gibt er es in der Schale sie es ausgeführt wird. Wie kann dies verhindert werden?


es, dass es hier ankommt, ist der Code-I-Daten an die Stanford-Core NLP Server passieren verwenden:

''' 
From https://github.com/smilli/py-corenlp/blob/master/example.py 
''' 
from pycorenlp import StanfordCoreNLP 
import pprint 

if __name__ == '__main__': 
    nlp = StanfordCoreNLP('http://localhost:9000') 
    fp = open("long_text.txt") 
    text = fp.read() 
    output = nlp.annotate(text, properties={ 
     'annotators': 'tokenize,ssplit,pos,depparse,parse', 
     'outputFormat': 'json' 
    }) 
    pp = pprint.PrettyPrinter(indent=4) 
    pp.pprint(output) 

Antwort

5

Es gibt derzeit keine Möglichkeit, dies zu tun, aber du bist die zweite Person, die ist fragte. Also, es ist jetzt im Github-Code und wird es in die nächste Version schaffen. Für die Zukunft sollten Sie in der Lage sein, das Flag -quiet zu setzen, und der Server schreibt nicht in den Standardausgang.

1

Ich fragte die same question und kann eine Art Workaround anbieten. Ich betreibe den Server im Moment in einer virtuellen Maschine. Um nun die Protokollausgabe zu verhindern, für die ich führen Sie es mit 2&>1 >/dev/null Rohr Argumente:

java -mx6g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -prettyPrint false 2&>1 >/dev/null 

Daraus ergibt sich eine erhebliche Leistungssteigerung, bis wir für 3.6.1 warten.

Verwandte Themen