Я только начал работать с nltk и python, и у меня возникла небольшая проблема, итерация по списку биграмм, возвращаемых nltk ,Итерация по биграмм (tuple), заданная nltk: TypeError: объект «NoneType» не является итерируемым, Python
Пример того, что я хочу:
это список биграмм: [('больше', 'есть'), ('есть', сказал '), ('сказал', «чем «), (» чем»,„сделано“)]
То, что я хочу, чтобы иметь возможность получить каждый Биграммные: (более, есть) и каждый член каждого биграммы: более, есть и т.д. отдельно
Вот что я пробовал до сих пор, основываясь на некоторых ответах в stackoverflow:
bigrams = nltk.bigrams(doclist)
#method 1
for (a, b) in bigrams: #I get this error: TypeError: 'NoneType' object is not iterable
print a
print b
#method 2
#convert to a list first
bigrams = list(bigrams)# I get the same error
for (a, b) in bigrams:
print a
print b
#method 3
#convert to a dict first
dct = dict(tuples)# I get the same error
Я предполагаю, что это bigrams - список кортежей, так что я делаю неправильно?
Не могли бы вы указать мне какой-либо рабочий код или учебник. Я также буду рад принять любой правильный ответ.
Спасибо заранее
Примечания: Я работаю с питона 2,7
Ваша первая попытка работает для меня: 'for (a, b) в битрамах:' Если в этот момент 'bigrams' был None, это объясняло бы вашу ошибку. – Celeo
Да, как это глупо! Я забыл оператор return в той функции, которую я использовал, поэтому для биграмм были None. Спасибо за ваше наблюдение – sel