请选择 进入手机版 | 继续访问电脑版

365cto

 找回密码
 立即注册
查看: 13302|回复: 1

Python实现词频分析器,查看文章各种词语的使用次数

[复制链接]

121

主题

142

帖子

984

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
984
发表于 2020-3-4 08:28:49 | 显示全部楼层 |阅读模式
功能

不多说,直接上图。
词频分析结果

输入文章,输出词频结果。
工具

Python、jieba
步骤

1、安装jieba库。
pip install jieba
2、 导入引用,并读取文件。
import jieba
txt_f = open('./七月与安生.txt')
s = txt_f.read()
txt_f.close()
3、用jieba库进行分词,并统计各个词的频率。
seg_list = jieba.cut(s)
dict_list = {}
for seg in seg_list:
if(dict_list.get(seg) != None):
dict_list[seg] += 1
else:
dict_list[seg] = 1
4、 对每个词进行频率大小排序。
sort_list = sorted(dict_list.items(), key=lambda item: item[1], reverse=True)
5、 以csv格式写入文件,输出结果保存在output文件夹内。
f = open("./output/StatisticsSorted.csv", mode='w')
for item in sort_list:
f.write(item[0] + "," + str(item[1]) + "\n")
f.close()
6、 (扩展)去除英文以及标点符号,并写入文件。
f = open("./output/StatisticsSortedChinese.csv", mode='w')
for item in sort_list:
flag = False
for i in item[0]:
if(i < u'\\u4e00' or i > u'\\u9fa5'):
flag = True
if flag == True:
continue
f.write(item[0] + "," + str(item[1]) + "\n")
f.close()
7、 (扩展)去除英文、标点符号、单字词,并写入文件。
f = open("./output/StatisticsSortedChineseTwo.csv", mode='w')
for item in sort_list:
flag = False
for i in item[0]:
if(i < u'\\u4e00' or i > u'\\u9fa5'):
flag = True
if flag == True:
continue
if len(item[0]) <= 1:
continue
f.write(item[0] + "," + str(item[1]) + "\n")
f.close()


如果对你有所帮助,别忘了关注收藏点赞。
如果想要具体代码,可以私信我。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

121

主题

142

帖子

984

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
984
 楼主| 发表于 2020-3-4 09:28:56 | 显示全部楼层
Python代码的缩进有些问题,可以自行调节一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|365cto

GMT+8, 2022-8-10 18:21 , Processed in 1.091264 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表