为了账号安全,请及时绑定邮箱和手机立即绑定

nltk 要解压缩的值太多(预期为 2)

nltk 要解压缩的值太多(预期为 2)

幕布斯6054654 2021-08-05 16:36:48
import nltkfrom nltk.corpus import brownbrown_tagged_sents = brown.tagged_sents(categories='news')((x[1],y[1],z[0],z[1])    for sent in brown_tagged_sents    for x,y,z in nltk.trigrams(sent))cfd = nltk.ConditionalFreqDist(    ((x[1],y[1],z[0],z[1])    for sent in brown_tagged_sents    for x,y,z in nltk.trigrams(sent)))会出现上面的代码:Traceback (most recent call last):    File "/Users/shike/Desktop/textprocess/nltktest.py", line 10, in <module>      for sent in brown_tagged_sents    File "/usr/local/lib/python3.6/site-packages/nltk/probability.py", line   1803, in __init__      for (cond, sample) in cond_samples:  ValueError: too many values to unpack (expected 2)  该列表理解((x[1],y[1],z[0],z[1])    for sent in brown_tagged_sents    for x,y,z in nltk.trigrams(sent))可以单独工作,但是当它用作参数时会出错。我仍然不知道为什么。所有代码均在 Python3 中测试。
查看完整描述

2 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

初始值设定项nltk.ConditionalFreqDist()需要两个参数,条件和样本。所以,(x[1],y[1],z[0],z[1])需要写成((x[1],y[1],z[0]),z[1]).


查看完整回答
反对 回复 2021-08-05
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

nltk.ConditionalFreqDist期望两个元素元组的可迭代对象,如(condition, sample). 但是您正在传递一个可迭代的 4 元素 tuples (x[1],y[1],z[0],z[1])

您可能需要查看该类的文档实现


查看完整回答
反对 回复 2021-08-05
  • 2 回答
  • 0 关注
  • 175 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信