【发布时间】:2020-11-11 05:39:41
【问题描述】:
我正在尝试使用 sklearn 模块中的朴素贝叶斯分类器来分类电影评论是否是正面的。我使用一袋词作为每条评论的特征,并使用一个带有评论附加情感分数的大型数据集。
df_bows = pd.DataFrame.from_records(bag_of_words)
df_bows = df_bows.fillna(0).astype(int)
这段代码创建了一个如下所示的 pandas 数据框:
The Rock is destined to ... Staggeringly ’ ve muttering dissing
0 1 1 1 1 2 ... 0 0 0 0 0
1 2 0 1 0 0 ... 0 0 0 0 0
2 0 0 0 0 0 ... 0 0 0 0 0
3 0 0 1 0 4 ... 0 0 0 0 0
4 0 0 0 0 0 ... 0 0 0 0 0
然后我尝试使用此代码将这个数据框与每条评论的情绪相匹配
nb = MultinomialNB()
nb = nb.fit(df_bows, movies.sentiment > 0)
但是我收到一个错误提示
AttributeError: 'Series' object has no attribute 'to_coo'
这就是 df 电影的样子。
sentiment text
id
1 2.266667 The Rock is destined to be the 21st Century's ...
2 3.533333 The gorgeously elaborate continuation of ''The...
3 -0.600000 Effective but too tepid biopic
4 1.466667 If you sometimes like to go to the movies to h...
5 1.733333 Emerges as something rare, an issue movie that...
你能帮忙吗?
【问题讨论】:
-
假设电影是一个带有情感列的数据框,这应该可以工作,你能展示movies.sentiment的样子吗?
-
@EzerK 我已编辑问题以包含电影数据框
-
似乎
MultinomialNB对df有问题,您是否尝试改为传递值?例如nb.fit(df_bows.values, movies.sentiment > 0) -
另一个想法是只在前几行运行以查看错误发生的位置
标签: python pandas dataframe sklearn-pandas naivebayes