Складнощі з вивченням розділу "Learning to Classify Text"
При вивчення розділу "Learning to Classify Text" студенти зіткнулися із значними труднощами. В наступних дописах будуть розглядатися задачі з цього розділу.
В мене виникла проблема з 9 завданням. Можливо щось не так роблю. Але я зрозуміла, що потрібно побудувати для даного корпусу класифікатор, який може спрогнозувати, який прийменник використовується для обєднання даної пари іменників. Я почала так:
>>> from nltk.corpus import ppattach >>> ppattach.attachments('training')
>>> nattach = [inst for inst in ppattach.attachments('training') if inst.attachment == 'N'] >>> size = int(len(nattach) * 0.1) >>> train_set, test_set = nattach[size:], nattach[:size] >>> classifier = nltk.NaiveBayesClassifier.train(train_set)
Traceback (most recent call last): File "", line 1, in classifier = nltk.NaiveBayesClassifier.train(train_set) File "C:\Python26\lib\site-packages\nltk\classify\naivebayes.py", line 192, in train for featureset, label in labeled_featuresets: TypeError: iteration over non-sequence
... і ось помилка. Прошу пояснити суть цієї помилки і, якщо можна, невеличку підказку для подальшої роботи з програмкою.
Якщо матимете час і можливість поясніть будь-ласка задачу № 6))))
ВідповістиВидалитиВ мене виникла проблема з 9 завданням. Можливо щось не так роблю. Але я зрозуміла, що потрібно побудувати для даного корпусу класифікатор, який може спрогнозувати, який прийменник використовується для обєднання даної пари іменників. Я почала так:
ВідповістиВидалити>>> from nltk.corpus import ppattach
>>> ppattach.attachments('training')
[PPAttachment(sent='0', verb='join', noun1='board',
prep='as', noun2='director', attachment='V'),
PPAttachment(sent='1', verb='is', noun1='chairman',
prep='of', noun2='N.V.', attachment='N'),
...]
>>> inst = ppattach.attachments('training')[1]
>>> (inst.noun1, inst.prep, inst.noun2)
('chairman', 'of', 'N.V.')
>>> nattach = [inst for inst in ppattach.attachments('training')
if inst.attachment == 'N']
>>> size = int(len(nattach) * 0.1)
>>> train_set, test_set = nattach[size:], nattach[:size]
>>> classifier = nltk.NaiveBayesClassifier.train(train_set)
Traceback (most recent call last):
File "", line 1, in
classifier = nltk.NaiveBayesClassifier.train(train_set)
File "C:\Python26\lib\site-packages\nltk\classify\naivebayes.py", line 192, in train
for featureset, label in labeled_featuresets:
TypeError: iteration over non-sequence
... і ось помилка. Прошу пояснити суть цієї помилки і, якщо можна, невеличку підказку для подальшої роботи з програмкою.