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:'float'对象不可迭代
我该怎么办?
答案 0 :(得分:2)
在对数据进行标记时,您不需要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])
答案 1 :(得分:0)
我们也可以这样写
df['rev'] = df['rev'].astype(str).apply(lambda x: stemmer.stem(x))