文本处理大作业

②查看数据集是否有缺失,缺失值的处理,很短的文本也可以删除

这里使用numpy和pandas

(4条消息) pandas检查行、列是否有缺失值_berry2q的博客-CSDN博客_pandas检查缺失值https://blog.csdn.net/gqyann/article/details/104919020由于在①中我们已经将csv全都读入了,因此其实不需要df = df.pd.DataFrame(links)

主要只用:

df.isnull().any()

df.isnull().sum()

df.isnull().any(axis=1)

df.isnull().sum(axis=1)

主要查看ratings文件中有多少comment是空值

pd_ratings[pd.isnull(pd_ratings.comment)].shape[0]

pd_ratings['comment'].isnull().sum()

这两条都是可以的

发现总共4107409条中有315064条是comment为空,可以删掉这些行

(4条消息) Python pandas 删除指定行/列数据_永远在减肥永远110的的小潘的博客-CSDN博客_pandas删除某一行https://blog.csdn.net/p1306252/article/details/114890550df = pd.DataFrame(pd_ratings)
ratings_1 =  df.dropna(subset=['comment'], axis = 0)
ratings_1.to_csv('ratings_1.csv', index = None)

新建一个ratings_1.csv来保存只去掉comment为空的数据

再新建一个只要有空值的行就都删除的ratings_clean.csv

ratings_clean = df.dropna()
ratings_clean.to_csv('ratings_clean.csv', index = None)
ratings_clean.shape[0]

然后再删除很短的文本

在这一部分中,直接drop不是很好用,这里需要的是将str_len输出到新的一列,再将过短的评论index保存一个indexName,然后再drop的时候输入这个index列表。

③5级评论,编码为好评(1)与差评(0)

初步想法是,将rating、rating_env、rating_flavor、rating_service这四个联合到一起,四个都是4-5分的算是all好评,四个都是1-2的算all差评,单独再输出一列好评为1差评为0


分割线

重新改了策略,计算的是加权平均值,给不同的评分不同的权重来置好评和差评标识

#3分以上为好评
def boolrating(score):
    if (score >=3.0):
        brating = 1
    else:
        brating = 0
    return brating
elements = [ratings_clean['rating'], ratings_clean['rating_env'], ratings_clean['rating_flavor'], ratings_clean['rating_service']]
w1 = [0.4, 0.2, 0.2, 0.2]
ratings_clean['rating_avg'] = np.average(elements, axis=0, weights=w1)
avgs=[]
for avg in ratings_clean['rating_avg']:
    avgs.append(boolrating(avg))
ratings_clean['rating_avg'] = pd.DataFrame(avgs)
ratings_clean.to_csv('ratings_clean.csv', mode = 'w',header=True, index=False)

这一部分就做好啦

分词去停用词直接调用jieba

接下来遇到了词云可视化的问题

直接pip install wordcloud出现一大片红色error,查了一下,

(5条消息) Python—wordcloud(pip安装失败问题解决)_鸽子董的博客-CSDN博客_wordcloud安装失败https://blog.csdn.net/DCclient/article/details/89818315要在   https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud

这个网站下载与自己的python版本相对应的编译后安装包,在这里要仔细看cp,如果不确定自己的版本python -V查看一下,我是3.9.12,所以选了这个进行下载,然后

 

这样就好啦,还有就是别忘了pip install matplotlib,如果之前没有安装的话。

-------------------------------------------

很多天来不及写博客了,到时候会把源码放上来

pandas dataframe真的很牛

有什么需求先看看loc可不可以,千万不要自己for

自己for完6小时,一条loc一眨眼

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值