У меня есть следующий образец фрейма данных, показанный ниже. Он уже токенизирован.
No category problem_definition_stopwords
175 2521 ['coffee', 'maker', 'brewing', 'properly', '2', '420', '420', '420']
211 1438 ['galley', 'work', 'table', 'stuck']
912 2698 ['cloth', 'stuck']
572 2521 ['stuck', 'coffee']
Я хочу сделать часть тегов речи на этом фрейме данных. Ниже начало моего кода. Это ошибка:
from nltk.corpus import state_union
from nltk.tokenize import PunktSentenceTokenizer
train_text = state_union.raw(df['problem_definition_stopwords'])
Ошибка
TypeError: join() argument must be str or bytes, not 'list'
Мой желаемый результат ниже, где «XXX» - это токенизированное слово, а после него - часть речи (например, NNP):
[('XXX', 'NNP'), ('XXX', 'VBD'), ('XXX', 'POS')]
Я думаю, вы не понимаете, что такое state_union.raw()
. Это сборник (корпус) документов президентских государственных союзных адресов. Вы не можете "вызвать" это в своем фреймворке данных, потому что ваш фрейм данных не является документом в корпусе state_union
.
о, черт возьми, ты прав!
Преобразуйте task_definition_stopwords в строку и перейдите к nltk.sent_tokenize, если вы пытаетесь токенизировать и получить POS с pos_tag.
каков ваш ожидаемый результат