1

对于我们的一个项目,我们目前正在使用带有命令行的语法分析组件。我们想从这种方法转移到现在使用 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)时没有找到合适的选项。

例如,如何指定文本已经被标记?

我真的很感激任何帮助。

4

1 回答 1

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 标记器。
  • ssplit.eolonly = true将仅在换行符上拆分句子。

解析器注释器页面上记录了其他可能有用的选项。

于 2018-03-05T09:47:26.947 回答