【发布时间】:2014-11-14 12:28:03
【问题描述】:
所以我终于弄清楚了如何使用“How to use malt parser in python nltk”的 NLTK 中提供的麦芽包装器,并且能够成功地对我的句子进行分块,但是我的句子以我不熟悉的格式出现。
例如解析“This is a sentence”返回:
>>> import nltk
>>> parser = nltk.parse.malt.MaltParser(working_dir="/path/to/dir",mco="engmalt.linear-1.7",additional_java_args=['-Xmx512m'])
>>> txt = "This is a test sentence"
>>> graph = parser.raw_parse(txt)
>>> graph.tree().pprint()
(This (sentence is a test))
解析更复杂的句子返回:
>>> import nltk
>>> parser = nltk.parse.malt.MaltParser(working_dir="/path/to/dir",mco="engmalt.linear-1.7",additional_java_args=['-Xmx512m'])
>>> txt = "A ceasefire for east Ukraine has been agreed during talks in Minsk."
>>> graph = parser.raw_parse(txt)
>>> graph.tree().pprint()
(agreed
(ceasefire A (for (Ukraine east)))
has
been
(during (talks (in Minsk)))
.)
有人可以解释一下这个输出格式是什么,或者我可以如何解析它,使它看起来像原始句子:
(This (is a test sentence))
A (ceasefire (for (east Ukraine))) has been (agreed (during (talks (in Minsk))).)
如果有帮助,graph 是一个 nltk DependencyGraph,graph.tree() 是一个 nltk 树。
提前致谢。
【问题讨论】: