for subtree3 in tree.subtrees():
if subtree3.label() == 'CLAUSE':
print(subtree3)
print subtree3.leaves()
使用这个代码我可以提取出树的叶子。它们是:
[('talking', 'VBG'), ('constantly', 'RB')]
对于某个例子。这是完全正确的。现在我希望这个树元素转换成字符串或列表中的元素,以便进行进一步的处理。我怎么能做到呢?在
我尝试了什么
^{pr2}$但它抛出了一个错误:
Traceback (most recent call last):
File "C:\Python27\Association_verb_adverb.py", line 35, in <module>
fo.write(subtree3.leaves())
TypeError: expected a character buffer object
我只想把叶子保存在一个文本文件中。在
问题可能更多的是试图将元组列表写入文件,而不是遍历NLTK
Tree
对象。{和}见^要输出包含两个字符串的元组列表,我发现使用以下习惯用法很有用:
但是如果子树中有多个级别,
zip(*list)
代码可能无法工作。在这取决于您的NLTK和Python版本。我想您引用的是
nltk.tree
模块中的Tree类。如果是这样,请继续读下去。在在您的代码中,确实:
subtree3.leaves()
返回“元组列表”对象fo
是PythonFile IO object,fo.write
只接收str
类型作为参数您只需使用
fo.write(str(subtree3.leaves()))
打印树叶,因此:别忘了
flush()
缓冲区。在相关问题 更多 >
编程相关推荐