2
import pandas as pd
from nltk.stem import PorterStemmer, WordNetLemmatizer
porter_stemmer = PorterStemmer()

df = pd.read_csv("last1.csv",sep=',',header=0,encoding='utf-8')

df['rev'] = df['reviewContent'].apply(lambda x : filter(None,x.split(" ")))

数据集

我正在尝试阻止我的数据框。在进行标记时,我收到此错误

df['rev'] = df['reviewContent'].apply(lambda x : filter(None,x.split(" ")))

AttributeError: 'float' 对象没有属性 'split'

在使用 Stemming 时,我也遇到了浮动问题

df['reviewContent'] = df["reviewContent"].apply(lambda x: [stemmer.stem(y) for y in x])

TypeError:“浮动”对象不可迭代

我能做些什么?

4

2 回答 2

3

对数据进行标记时,您不需要apply调用。str.split应该做得很好。此外,您可以拆分多个空格,因此您不必寻找空字符串。

df['rev'] = df['reviewContent'].astype(str).str.split()

您现在可以像以前一样运行您的词干分析器:

df['rev'] = df['rev'].apply(lambda x: [stemmer.stem(y) for y in x])
于 2017-11-07T16:50:54.870 回答
0

我们也可以这样写

df['rev'] = df['rev'].astype(str).apply(lambda x: stemmer.stem(x))
于 2020-10-09T16:07:28.467 回答