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))
)
Код выше будет происходить:
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.