Python编程——词频统计(对指定的文档内容进行统计)

这个python的小案例代码量很少,功能是实现对指定的文章内容进行词频统计的功能,并实现次数的由大到小排列。

这个案例的思路如下:

  • 首先对指定的文档进行读取,采用的是with open读取指定的文档
  • 然后对读取的信息按照每个字符进行遍历,并将其存放在一个字典中
  • 如果某个字符在文档中出现过,则对这个字符加1;如果没有出现过,则赋值为1
  • 其次,将生成的字典转化为列表的形式,转化之后,对应的键值格式变为元祖的格式,{'总': 1, '结': 1}-------->[('总', 1), ('结', 1)]
  • 最后,对生成的类表进行排序,并打印出结果

词频统计

代码如下:

# 词频统计
#打开要统计的文档
with open("我的总结.txt", encoding="utf-8") as f:
    lines = f.read()
cptj = {}
#将词频统计的结果存放到一个字典中
for line in lines:
    if line in cptj:
        cptj[line] += 1
    else:
        cptj[line] = 1
#将字典转化为类表方便进行后续的处理
lcptj = list(cptj.items())
#对生成的结果进行排序,按照每个元祖下标为1的数进行排序
lcptj.sort(key=lambda x: x[1], reverse=True)
count=0
#将结果进行输出
for i in lcptj:
    print(i,"\t",end='')
    count+=1
    #对结果输出做出美化,使其每行打印出五个元素
    for j in range(int(len(lcptj)/5)+1):
        if count== 5*j:
            print()
        else:
            pass

结果如下:

('\n', 40) 	('e', 32) 	(' ', 31) 	('a', 22) 	('文', 18) 	
("'", 18) 	('件', 16) 	('d', 14) 	('f', 13) 	('i', 12) 	
('s', 12) 	('的', 12) 	('t', 12) 	('(', 11) 	(')', 11) 	
('h', 11) 	('l', 10) 	(',', 10) 	('、', 10) 	('o', 9) 	
('.', 9) 	('个', 8) 	('n', 7) 	('m', 7) 	('w', 7) 	
('b', 7) 	('读', 7) 	('出', 7) 	('写', 7) 	('r', 6) 	
('式', 5) 	('一', 5) 	('模', 5) 	('本', 4) 	('p', 4) 	
('数', 4) 	('c', 4) 	('用', 4) 	('5', 4) 	('2', 4) 	
('4', 4) 	('形', 3) 	('=', 3) 	('打', 3) 	('开', 3) 	
('对', 3) 	('象', 3) 	('内', 3) 	('如', 3) 	('字', 3) 	
('据', 3) 	('入', 3) 	('y', 3) 	('关', 3) 	('不', 3) 	
('会', 3) 	('。', 3) 	('块', 3) 	('v', 3) 	('法', 3) 	
('1', 3) 	('3', 3) 	('k', 3) 	('统', 3) 	('能', 3) 	
('作', 2) 	('基', 2) 	(',', 2) 	('果', 2) 	('z', 2) 	
('类', 2) 	('型', 2) 	('要', 2) 	('和', 2) 	('是', 2) 	
('符', 2) 	('闭', 2) 	('存', 2) 	(':', 2) 	(':', 2) 	
('6', 2) 	('进', 2) 	('制', 2) 	('[', 2) 	(']', 2) 	
('习', 2) 	('学', 2) 	('功', 2) 	('现', 2) 	('频', 2) 	
('计', 2) 	('总', 1) 	('结', 1) 	('7', 1) 	('操', 1) 	
('有', 1) 	('容', 1) 	('过', 1) 	('大', 1) 	('可', 1) 	
('以', 1) 	('循', 1) 	('环', 1) 	('分', 1) 	('段', 1) 	
('即', 1) 	('每', 1) 	('次', 1) 	('节', 1) 	('讲', 1) 	
('致', 1) 	('转', 1) 	('换', 1) 	('为', 1) 	('其', 1) 	
('他', 1) 	('情', 1) 	('况', 1) 	('串', 1) 	('报', 1) 	
('错', 1) 	('但', 1) 	('泄', 1) 	('露', 1) 	('最', 1) 	
('新', 1) 	('这', 1) 	('里', 1) 	('语', 1) 	('句', 1) 	
('自', 1) 	('动', 1) 	('两', 1) 	('x', 1) 	('g', 1) 	
('输', 1) 	('十', 1) 	('六', 1) 	('M', 1) 	('D', 1) 	
('值', 1) 	('将', 1) 	('练', 1) 	('二', 1) 	('(', 1) 	
('扩', 1) 	('展', 1) 	(')', 1) 	('业', 1) 	('把', 1) 	
('生', 1) 	('信', 1) 	('息', 1) 	('系', 1) 	('加', 1) 	
('账', 1) 	('户', 1) 	('管', 1) 	('理', 1) 	('保', 1) 	
('实', 1) 	('词', 1) 	('程', 1) 	('序', 1) 	('够', 1) 	
('给', 1) 	('中', 1) 	('各', 1) 	('率', 1) 	

 

你可能感兴趣的:(python编程)