python关键词统计_Python3 利用openpyxl 以及jieba 对帖子进行关键词抽取 ——对抽取的关键词进行词频统计...

Python3 利用openpyxl 以及jieba 对帖子进行关键词抽取 ——对抽取的关键词进行词频统计

20180413学习笔记

一、工作

前天在对帖子的关键词抽取存储后,发现一个问题。我似乎将每个关键词都存到分离的cell中,这样在最后统计总词频的时候,比较不好处理。于是,上回的那种样式:

是不行的,应该把它们放到同一列(行)中,组装成一个list或tuple再进行词频统计。

1.读取输出文件“t1.xlsx”

wr2=load_workbook('t1.xlsx')

cursheet=wr2.active #当前表单

2.将表格中的所有数据读到L[]中

已将前面的只有十个数据的"biao.xlsx"换成有300多条帖子的"biao2.xlsx"

L=[]

for row in cursheet.rows:

for cell in row:

L.append(cell.value)

输出看看:

未完

这样看整体效果不错。

3.词频统计

利用Counter函数对L进行词频统计。

需要导入Counter from collections import Counter

#新开一个xlsx文件,将词频统计结果写入

ww2=Workbook()

sheet3 =ww2.active

sheet3.title="statis"

#Counter返回的的是一个dict

LC=Counter(L)

输出看看:

#但是这样存储起来无法使用,所以需要排一下序,sorted返回的是一个二维list

LC2=sorted(LC.items(),key=lambda d:d[1],reverse=True)

输出看看:

为了将二维数组中的每个元素,分别存储在excel表格中的两列,需要将的元素拆开。于是我找到了Python3的相关文档:

将其一层层分离:

#用n来计数,奇数存储(str,num)中的前面字符串,偶数存储后面的出现次数,感觉这样做很蠢。。。但是暂时还不能像c那样熟练地使用

c1=1

for k in LC2:

n=1

for v in k:

if n%2==1:

sheet3["A%d" % c1].value=v

n=n+1

else:

sheet3["B%d" % c1].value=v

c1=c1+1

ww2.save('sta.xlsx')

我们来看看效果吧:

那么总体是完成了。

二、总结反思

很明显,虽然统计词频是完成了,但是感觉效果一般。尤其是在记录词汇的时候,将一些无干的词一起统计进来了。比如莫名其妙的“http”,还有其他英文,可能是爬下来的网友的名字之类的,在标注的时候过多的引用与其相关的帖子,导致出现频率过高。另外还有一些空白的符号,jieba为什么会把这种空白符当成词,奇怪。。。

三、接下来的任务

接下来的工作是对统计的词,进行处理分析。利用正则表达式,过滤出我们所需要的中文词汇,再统计一次,应该就可以了。

剩下的就是机器学习的内容了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值