как преобразовать текстовый столбец pandas в текстовый объект nltk

#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. Да, это верно