在将输入提供给解析器之前处理输入

Processing input before giving input to parser

应该对提供给解析器的输入进行什么样的处理。

据我所知我正在使用 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 中使用解析,我可以只传递解析还是应该传递除 dcoref 之外的所有注释器

即)

java -cp "*" -Xmx2g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,parse -file input.txt
                                      or
java -cp "*" -Xmx2g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner,parse,dcoref -file input.txt

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).

但是,默认情况下,是的,CoreNLP 会为您标记和拆分您的句子。你可以只输入一堆文本,它会输出解析的句子。