Parsing 在向解析器提供输入之前处理输入

Parsing 在向解析器提供输入之前处理输入,parsing,stanford-nlp,Parsing,Stanford Nlp,应该对提供给解析器的输入进行何种处理 据我所知,我使用的是stanford parser.jar,但也有stanford coreNLP.jar,parser.jar和coreNLP.jar解析方法的区别是什么 根据coreNLP文档,您可以将要执行的操作作为输入传递到注释器中 命令: java -cp "*" -Xmx2g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner,pa

应该对提供给解析器的输入进行何种处理

据我所知,我使用的是stanford parser.jar,但也有stanford coreNLP.jar,parser.jar和coreNLP.jar解析方法的区别是什么

根据coreNLP文档,您可以将要执行的操作作为输入传递到注释器中

命令:

java -cp "*" -Xmx2g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner,parse,dcoref -file input.txt
要在coreNLP中使用解析,我可以只传递parse,还是应该传递除dcoref之外的所有注释器

即。)

parser.jar在它的jar中内置了句子分割吗

我可以把段落作为输入,把句子和它们的解析数据作为输出吗

或者我应该一次只说一句话

谢谢,

CoreNLP注释器可以看作是一个依赖关系图。解析器注释器仅依赖于标记化(
tokenize
)和句子拆分(
ssplit
)。因此,您可以使用第一个命令运行解析器:

java -cp "*" -Xmx2g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,parse -file input.txt
如果您知道文本已预先标记,最简单的方法是在属性文件中设置选项
tokenize.whitespace=“true”
(或将其作为标志传递:
-tokenize.whitespace
)。要仅在行尾拆分句子,可以设置选项(
ssplit.eolonly


但是,默认情况下,yes CoreNLP将为您标记并拆分您的句子。你只需输入一堆文本,它就会输出经过解析的句子。

这不是一个愚蠢的问题。斯坦福地区并没有进行过很多探索,所有与此相关的问题都是有效的。请删除第一句话,那么为什么CoreNLP和我应该使用的解析器输出之间存在差异。这将提供更好的结果CoreNLP
parse
annotator和Stanford解析器完全相同。输出之间应该没有区别,除了CoreNLP还做其他事情。但是根据这个链接,当CoreNLP中的POS与corenlpt一起使用时,它在CoreNLP和解析器之间给出了不同的结果。这只是在启用了
POS
注释器的情况下,即使这样,差异也可能很小。它不太可能在任何下游任务中产生很大的差异,因此,无论我使用解析器还是启用POS的coreNLP,两者几乎相同。没有什么比另一件事更好或更糟,对吗
java -cp "*" -Xmx2g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,parse -file input.txt