将 pandas 数据框列传递给 NLTK 分词器

Passing a pandas dataframe column to an NLTK tokenizer

我有一个 pandas 数据框 raw_df,其中包含 2 列、ID 和句子。我需要将每个句子转换为字符串。下面的代码没有产生任何错误,并表示规则的数据类型是 "object."

raw_df['sentences'] = raw_df.sentences.astype(str)
raw.df.sentences.dtypes

输出:dtype('O')

然后,我尝试标记句子并得到一个 TypeError,表明该方法需要一个字符串或类似字节的对象。我做错了什么?

raw_sentences=tokenizer.tokenize(raw_df)

的相同类型错误
raw_sentences = nltk.word_tokenize(raw_df)

我假设这是一个 NLTK 分词器。我相信这些工作是通过将句子作为输入并返回标记化的单词作为输出来实现的。

您传递的是 raw_df - pd.DataFrame 对象,不是 str。你不能期望它在不告诉你自己的情况下按行应用函数。为此,有一个名为 apply 的函数。

raw_df['tokenized_sentences'] = raw_df['sentences'].apply(tokenizer.tokenize)

假设这一切顺利,tokenized_sentences 将是一列列表。

由于您在 DataFrames 上执行文本处理,我建议您在这里查看我的另一个答案: