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

时间:2015-05-14 05:07:03

标签: 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,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是否内置了句子分裂' s jar

我可以将段落作为输入并将句子和解析后的数据作为输出

或者我应该一次只给一个句子
谢谢,

1 个答案:

答案 0 :(得分:2)

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将为您标记和分割您的句子。你可以只输入一堆文本,然后输出解析的句子。