如何在Stanford解析器中使用NNDEP解析器来处理中文数据

时间:2015-10-23 02:55:41

标签: java nlp stanford-nlp

我们目前正在使用Stanford解析器中的NNDEP解析器来处理中文数据,期望获得有用的语法树。以下是我们用于设置参数的内容:

java -cp "./*" edu.stanford.nlp.parser.nndep.DependencyParser -language chinese -model edu/stanford/nlp/models/parser/nndep/CTB_CoNLL_params.txt.gz -tagger.model edu/stanford/nlp/models/pos-tagger/chinese-distsim/chinese-distsim.tagger -escaper edu.stanford.nlp.trees.international.pennchinese.ChineseEscaper -textFile INPUT_FILE

但是,输出与文章 Discriminative reordering with Chinese grammatical relations features 中描述的语法关系不同。如果我们有两句话:1。我把他打了,2。我打了他,我们得到的结果如下:

   SUB(把-2, 我-1)
   root(ROOT-0, 把-2)
   SUB(打了。-4, 他-3)
   VMOD(把-2, 打了。-4)


   SUB(打了-2, 我-1)
   root(ROOT-0, 打了-2)
   OBJ(打了-2, 他。-3)

,类似于默认英语解析器输出的结果。

我们参考了手册并阅读source code,但我们找不到任何线索。因此,有谁能告诉我们如何设置正确的参数来正确处理中文数据?非常感谢!

1 个答案:

答案 0 :(得分:0)

此命令将生成该论文中引用的依赖项:

java -Xmx6g -cp "*:." -Xmx2g edu.stanford.nlp.pipeline.StanfordCoreNLP -file sample_chinese_text.txt -props StanfordCoreNLP-chinese.properties -outputFormat text -parse.originalDependencies

关键是使用"解析"注释器代替" depparse"。

注意:StanfordCoreNLP-chinese.properties可以在stanford-corenlp-3.5.2-models-chinese.jar或stanford-chinese-corenlp-2015-04-20-models.jar中找到,如果你想要考试的话设置

注意:我们分发了一些使用"解析"注释器,它们可以在Maven上的stanford-parser-3.5.2-models.jar或使用标准解析器分发的模型jar中找到:

http://nlp.stanford.edu/software/lex-parser.shtml

这里的问题是NN依赖解析器不输出你所引用的论文中引用的中文的Stanford Dependencies,NN依赖解析器使用不同类型的依赖

以下是一些讨论NN依赖解析器创建内容的相关论文:

http://cs.stanford.edu/~danqi/papers/emnlp2014.pdf

http://stp.lingfil.uu.se/nodalida/2007/pdf/NODALIDA16.pdf