如何正确标记 pandas 中的列?

How to properly tokenize column in pandas?

我正在尝试使用来自社交媒体的评论来解决我的数据集中的标记化问题。我想从 pandas 列中标记化、词形还原、删除标点符号和停用词。我正在努力如何为每条评论做这件事。我在尝试获取令牌时收到以下错误:

import pandas as pd
import nltk
...
merged['message_tokens'] = merged.apply(lambda x: nltk.tokenize.word_tokenize(x['Clean_message']), axis=1)

TypeError: expected string or bytes-like object

当我试图告诉 pandas 我正在向它传递一个字符串对象时,它给我以下错误消息:

merged['message_tokens'] = merged.apply(lambda x: nltk.tokenize.word_tokenize(x['Clean_message'].str), axis=1)

AttributeError: 'str' object has no attribute 'str'

我做错了什么?

您可以使用astype强制列类型为字符串

merged['Clean_message'] = merged['Clean_message'].astype(str)

如果你想看看原来的专栏有什么问题,你可以使用

m = merged['Clean_message'].apply(type).ne(str)
out = merged[m]

out 数据框包含 Clean_message 列类型不是字符串的行。