python统计字频

"""
author:魏振东
data:2019.09.19
func:求一段文本中的字频
"""
import re # 正则表达式库
from collections import Counter

# 读取文件
fn = open('doc/text.txt','rt') # 打开文件
string_data = fn.read() # 读出整个文件
fn.close() # 关闭文件

# 文本预处理
pattern = re.compile(u'\t|\n|\.|-|:|;|\)|\(|\?|"') # 定义正则表达式匹配模式
string_data = re.sub(pattern, '', string_data) # 将符合模式的字符去除

#输出检查
#print(string_data)

# #统计单词
#
#p=string_data.split()
# print(p)
# result = {}
#
# for char in p:
#     if char not in result:
#         result[char] = 1
#     else:
#         result[char]+=1
#
# #输出检查
# print(result)
#
# #去除中文和数字只保留字母
# result={k:v for k,v in result.items() if k.isalpha() and u'\u4e00' > k or k > u'\u9fff'}
#
# #排序输出
# for k in sorted(result,key=result.__getitem__,reverse=True):
#     print(k,result[k])

#对每个字符进行统计
result=dict(Counter(string_data))

#去除中文和数字只保留字母
result={k:v for k,v in result.items() if k.isalpha() and u'\u4e00' > k or k > u'\u9fff'}

#输出检查
# print(result)

#排序输出
for k in sorted(result,key=result.__getitem__,reverse=True):
    print(k,result[k])
发布了39 篇原创文章 · 获赞 41 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/wei_zhen_dong/article/details/101533554