Python应用篇——词频统计

项目描述:读一个txt文档,统计文档中中文、英文、数字、标点符号、空格的个数。利用可视化界面查看统计图表,并保存图片到指定路径
这个项目主要分为3部分:对文件的操作(读,写),统计字符的个数,将数据显示在图表中。
(1)读文件,统计个数

#1.文件操作
#   打开文件
#   读文件
#   关闭文件
#2.确定统计类型,中文、英文、数字、符号、空格
import matplotlib.pyplot as plt
MyList = []
MyDict = {}

fd = open("帝婿.txt","r",encoding="utf-8")
MyList = fd.readlines()
fd.close()

for line in MyList:
    for w in line:
        if w >= '\u4e00' and w <= '\u9fa5':
            MyDict["中文"] = MyDict.get("中文",0) +1
        elif w >= '\u0030' and w <= '\u0039':
            MyDict["数字"] = MyDict.get("数字", 0) + 1
        elif w == " ":
            MyDict["空格"] = MyDict.get("空格",0) + 1
        elif (w >= '\u0041' and w <= '\u005a') or (w >= '\u0061' and w <= '\u007a'):
            MyDict["英文"] = MyDict.get("英文", 0) + 1
        else:
            MyDict["符号"] = MyDict.get("符号", 0) +1

print(MyDict)

将统计的类型和次数存放在字典中,打印如下
在这里插入图片描述(2)接下来用Python自带的库matplotlib,使其生成柱状图

CHList = []#存放字符的种类
NumList = []#对应的数字个数
MyDict_len = len(MyDict)
print(MyDict_len)
MyDictSorted = sorted(MyDict.items(),key=lambda item:item[1])
print(MyDictSorted)
for i in range(MyDict_len):
    ch, num = MyDictSorted[i]
    CHList.append(ch)
    NumList.append(num)
plt.rcParams['font.family'] = ['Arial Unicode MS', 'Microsoft Yahei', 'SimHei', 'sans-serif']
plt.rcParams['font.size'] = 12
plt.figure(figsize=(18,8),dpi=80,facecolor='#B0C4DE')
plt.xlabel = "字符种类"
plt.ylabel = "出现次数"

plt.barh(CHList,NumList,height=0.8)
plt.title = "字符出现次数统计表"
plt.show()

生成的柱状图如下,因为英文和中文的比例太大了,这个图上基本看不到英文的数字,具体出现次数可以在(1)的打印信息中查看。
Python应用篇——词频统计_第1张图片那么这个小项目到这里就结束了,代码中用到了字典,列表的相关知识,文件的操作,matplotlib库的使用,当然也可以用Python写一个可视化界面,打包生成小程序,便于以后的使用。

你可能感兴趣的:(Python,python,matplotlib,开发语言)