我想用NLTK分析句子并将它们的块显示为树。 NLTK提供方法tree.draw()
来绘制树。以下代码为句子&#34绘制了一棵树;这只小黄狗在猫身上咆哮" :
import nltk
sentence = [("the", "DT"), ("little", "JJ"), ("yellow", "JJ"), ("dog", "NN"), ("barked","VBD"), ("at", "IN"), ("the", "DT"), ("cat", "NN")]
pattern = "NP: {<DT>?<JJ>*<NN>}"
NPChunker = nltk.RegexpParser(pattern)
result = NPChunker.parse(sentence)
result.draw()
结果是这棵树:
如何获得这样一个更高级别的树?
答案 0 :(得分:3)
答案 1 :(得分:0)
我知道答案为时已晚。但这就是我如何做到的。 这个想法是你需要将你的句子转换成树。
import nltk
sentence = list(map(lambda sent: Tree(sent[1], children=[sent[0]]), sentence))
然后你可以在之后进行分块。
NPChunker = nltk.RegexpParser(pattern)
result = NPChunker.parse(sentence)
result.draw()
这是我的结果Tree