当前位置:   article > 正文

中文词频统计(中央1号文件)_汉字字频统计表全集

汉字字频统计表全集
#从文件读取中文文本进行词频统计 排序后写入到文件
import zhon.hanzi
from jieba import *
# 函数功能:实现中文字符串的替换标点符号为空格并分词,将分词列表返回
def getlist(str):
    for c in zhon.hanzi.punctuation:#zhon.hanzi.punctuation为中文标点符号集
        str=str.replace(c,"")#将标点符号替换成空格,不能是空,如果是空则导致结巴分词不准确
    ls=lcut(str)
    return ls

#获取列表的第二个元素,以进行sort()高级排序
def takeSecond(elem):
     return elem[1]

#打开读取并关闭文件
file=open("2021中央一号文件.txt","rt",encoding="utf8") #此处大家根据自己文件的编码格式来给enconding赋值
s=file.read()
file.close()
#调用getlist自定义函数
ls=getlist(s)

#删除中文空格符号
#方法1:
n=ls.count("\n")#统计要删除的次数
for i in range(n):#循环删除ls列表中的每个\n
    ls.remove("\n")
print(ls)

#方法2:使用ls生成一个新列表,用来确定删除多少次,注意不能直接将ls赋值给一个列表
# newls=ls[::]
# for i in newls:
#     if i=="\n":
#         ls.remove(i)
# print(ls)

#将分词及词频存储到字典中
counts={}
for  word  in  ls:
   counts[word]  =  counts.get(word,0)  +  1

#将键值对转换为列表,每个列表元素为一个元组(单词,词频),并按照词频(元素第二个元素)进行排序
items=list(counts.items())
#items.sort(key=lambda x:x[1],reverse=True)
items.sort(key=takeSecond,reverse=True)

#将排序列表结果写入到文件
newfile=open("中文词频统计.txt","w+",encoding="utf8")
for item in items:
    s=item[0]+" "+str(item[1]) +"\n"  #将元组item转换为字符串,单词和次数之间用空格隔开
    newfile.write(s)
newfile.close()
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/109654
推荐阅读
相关标签
  

闽ICP备14008679号