这个实现起来不难,主要就是分词,然后统计词频,得出频率最高的词。我这里以爬取的B站弹幕数据为例,利用jieba分词包分词(一个中文分词包),大概介绍一下如何对爬下来的数据进行处理,筛选出频率最高的词,实验环境win7+pyhon2.7+pycharm5.0,主要步骤如下:

1.首先,需要安装jieba中文分词包,可以直接"pip install jieba"进行安装,如下图,我的已正确安装:

2.解析获取爬下来的弹幕数据,将其存储在一个列表中,并转化为一个字元串,为下一步分词做好准备,如图,xml文件地址https://comment.bilibili.com/28904449.xml:

解析数据代码如下:

3.为了更好的分词,统计词频,我们去掉了无价值的中文词(像「的,了」等词),即停用词,地址http://blog.csdn.net/shijiebei2009/article/details/39696571,将其存储到一个列表中,方便下一步处理时使用,这里注意一下编码方式,代码如下:

4.接著我们就可以进行分词,统计词频,然后按频率从高到低排序,这里我以jieba包的精确分词为例,在统计的过程中去掉常用停用词,构建代码如下:

5.最后,我们就可以输出频率较高的几个词了,输入参数num为频率较高的几个词,我这里以3为例,输出频率较高的3个高频词,代码如下:

运行结果如下,可以看得出来,已经成功列印出了频率较高的3个词:

至此,一个完整的爬取数据,统计词频,并筛选出词频较高的几个词的过程便完成。整个过程来看,其实不难,唯一的难点主要还是分词,统计词频,按词频排序那一部分,只要你有一定的python基础,理一下思路,实现起来其实不难。这里需要注意的是编码,系统默认编码是ascii编码,你需要在这里进行转化一下,我不在详细赘述这部分,网上有更详细的解释,这里还有一点可以进行改进,就是在中文分词的过程中可以加入自定义字典,这样识别词的概率更高也更准确,希望以上分享的内容能对你有所帮助吧。至于英文分词,统计词频,那就更简单了,直接按空格分开就行,我这里就不详细说明了,有一个nltk包,可以用用。


1、打开网页图悦http://www.picdata.cn/

2、把数据全部粘贴到网页上,待分析长文本或URL这里

3、生成词频图

点分析出图,出现类似上图

字型大小越大就是出现频率越高的词

4、导出表格,可以看到词出现的次数

点导出Excel就可以导出结果了

可以看到每个词出现的次数,权重是以词频最多的词作为1,其他词频按照1来调整。

你学会了吗

欢迎关注我的头条号,如果有excel方面的问题,可以私信交流,为你答疑解惑。


推荐阅读:
相关文章