AttributeError: ‘str‘ object has no attribute ‘leaves‘.python提取三元组报错

报错原因分析:

这个错误是因为在一个字符串对象上调用一个名为"leaves"的方法,但是字符串对象并没有这个方法。

"leaves"方法通常是在树形数据结构中使用的,比如在NLTK(自然语言处理工具包)中,报错原因是我们没有正确地将数据结构加载到程序中因此需要使用函数将字符串转换为树形对象。

解决方案:

import nltk
from nltk.tree import Tree 
#导入相关库
string_tree = "[ [ [IP [S [NP [KP [NP [ng ལྒང་ལི]] [K [kg འི་]]] [N [ng སྦྱོང་བརྡར་]]] [VP [NP [KP [NP [N [ng དུས་ཚོད་]] [M [m གསུམ་]]] [K [kg གྱི་]]] [N [ng \སྟེང་]]] [V [vt འགོ་རྩོམ་]]]] [I [T [h རྒྱུ་]] [E [vl རེད]]]] [PU [xp །]]] ]".replace("[", "(").replace("]", ")")
#先将句法分析树括号更换为nltk库认可的小括号"("和")"
tree = Tree.fromstring(string_tree)
leaves = tree.leaves()
#改变其数据结构,关键步骤

问题解决。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Magneto_万磁王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值