#pandas #nltk
Вопрос:
У меня есть следующий фрейм данных в панд
publish_date headline_text
20030219 aba decides against community broadcasting
20030219 act fire witnesses must be aware of defamation
20030219 a g calls for infrastructure protection summit
20030219 air nz staff in aust strike for pay rise
20030219 air nz strike to affect australian travellers
Я хочу преобразовать headline_text
столбец в текстовый объект nltk, чтобы применить к нему все методы nltk.
Я делаю следующее, но, похоже, это не работает
headline_text = nlp_df['headline_text'].apply(lambda x: ''.join(x))
Ответ №1:
Вы можете сделать:
nltk_col = df.headline_text.apply(lambda row: nltk.Text(row.split(' ')))
Чтобы назначить этот столбец фрейму данных, вы можете сделать:
df=df.assign(nltk_texts=nltk_col)
Затем мы можем проверить тип первой строки в новом nltk_texts
столбце:
print(type(df.nltk_texts.loc[0])) # outputs: nltk.text.Text
Чтобы объединить все строки в один текстовый объект NLTK, вы можете сделать:
single = nltk.Text([word for row in df.headline_text for word in row.split(' ')])
Затем print(type(single))
будет вывод nltk.text.Text
.
Комментарии:
1. Вместо столбца фрейма данных мы можем назначить это в одной переменной?
2. Отредактировал мой ответ, теперь новый столбец сначала сохраняется как nltk_col, серия pandas.core. Объект серии. Ты это имел в виду?
3. Что я хочу, так это вместо создания нового столбца, я хочу поместить его в одну переменную, которая является текстовым объектом NLTK, чтобы я мог выполнять все методы NLTK в этом корпусе.
4. О, хорошо, так объедините все строки в headline_text в один текстовый объект NLTK, да? Минутку…
5. Да, это верно