学习python的一个小结:中文词频统计分析

python 3.7学了一段时间,试着写个小程序检验,巩固一下。

准备

使用pip注意事项

  1. 必须以管理员身份运行cmd;
  2. pip命令大小写敏感;
  3. 最好指定国内源镜像加快下载速度

安装jieba

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
参考清华大学开源软件镜像站

读取文件,并使用jieba分词

with open("seg_test.txt", 'r', encoding='UTF-8') as f:
    novel_segm = jieba.lcut(f.read())

利用Counter来统计词频

counter_result = collections.Counter(novel_segm)     # 返回字典

从以上结果里删去对单个字的统计

for word in list(counter_result.keys()):
    if len(word) == 1:
        del counter_result[word]

读取&使用停用词文件txt

print()
with open('stop_words.txt', 'r', encoding='UTF-8') as f:
    stop_word_list = [x.rstrip('\n') for x in f.readlines()]

for word in stop_word_list:
    del counter_result[word]

打印结果(频率top50)

for i in counter_result.most_common(50):
    print(i)

完整代码

import collections
import jieba

# 读取文件并分词
with open("seg_test.txt", 'r', encoding='UTF-8') as f:
    novel_segm = jieba.lcut(f.read())
    print('分词完成')

# 统计词频
counter_result = collections.Counter(novel_segm)     # 返回字典

# 删去单字
for word in list(counter_result.keys()):
    if len(word) == 1:
        del counter_result[word]


# 读取停用词
print()
with open('stop_words.txt', 'r', encoding='UTF-8') as f:
    stop_word_list = [x.rstrip('\n') for x in f.readlines()]
    
for word in stop_word_list:
    del counter_result[word]

# print result:
for i in counter_result.most_common(50):
    print(i)

运行结果:
学习python的一个小结:中文词频统计分析_第1张图片

你可能感兴趣的:(学习python的一个小结:中文词频统计分析)