对于我们的一个项目,我们目前正在使用语法分析组件和命令行。我们希望从这种方法转向现在使用corenlp服务器(以获得更好的性能)。
我们的命令行选项如下:
java -mx4g -cp "$scriptdir/*:" edu.stanford.nlp.parser.lexparser.LexicalizedParser -tokenized -escaper edu.stanford.nlp.process.PTBEscapingProcessor -sentences newline -tokenized -tagSeparator / -tokenizerFactory edu.stanford.nlp.process.WhitespaceTokenizer -tokenizerMethod newCoreLabelTokenizerFactory -outputFormat "wordsAndTags,typedDependenciesCollapsed"
我尝试过一些事情,但在使用corenlp API(使用Python)时,我没有找到合适的选项。
例如,如何指定文本已经标记化了?
我真的很感激任何帮助。
答案 0 :(得分:0)
通常,服务器调用CoreNLP而不是单个NLP组件,因此CoreNLP上的文档可能很有用。被注释的文本正文作为POST主体发送到服务器;属性作为URL参数传递。例如,对于您的情况,我相信以下curl命令应该可以解决问题(并且应该很容易适应您选择的语言):
curl -X POST -d "it's split on whitespace" \
'http://localhost:9000/?annotators=tokenize,ssplit,pos,parse&tokenize.whitespace=true&ssplit.eolonly=true'
请注意,我们只是将以下属性传递到服务器:
annotators = tokenize,ssplit,pos,parse
(指定我们需要解析器及其所有先决条件)。tokenize.whitespace = true
将调用withespace tokenizer。ssplit.eolonly = true
会将句子分开,仅在换行符上。其他可能有用的选项记录在案on the parser annotator page。