Python nltk值太多,无法解压缩(预期为2个)

Python nltk值太多,无法解压缩(预期为2个),python,nltk,Python,Nltk,将出现上述代码: import nltk from nltk.corpus import brown brown_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],

将出现上述代码:

import nltk
from nltk.corpus import brown

brown_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))
)

可以单独工作,但当它用作参数时会发生错误。我还是不知道为什么。所有代码都在Python3中进行了测试。

nltk。ConditionalFreqDist
需要一个由两个元素元组组成的可数,如
(condition,sample)
。但是您传递的是一个4元素元组的iterable
(x[1],y[1],z[0],z[1])

您可能需要调查
该类。

初始值设定项
nltk.ConditionalFreqDist()
除了两个参数,条件和示例。因此,
(x[1],y[1],z[0],z[1])
需要写成
((x[1],y[1],z[0]),z[1])

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))