温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python统计文本中字频的方法

发布时间:2020-09-22 15:07:51 阅读:446 作者:小新 栏目:编程语言
Python开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

python统计文本中字频的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!

思路:

是先把每个字符提出来放在列表里;

再过滤掉其中的标点符号;

最后用字典对某个字出现的频率进行累加。

下面以芳华这本小说为例:

#coding:utf-8
word_lst = []
word_dict = {}
exclude_str = ",。!?、()<>《》=:+-*—“”…" 
with open("芳华.txt","r") as fileIn ,open("芳华字频.txt",'w') as fileOut:
    # 添加每一个字到列表中
    for line in fileIn:
        for char in line:
            word_lst.append(char)
    # 用字典统计每个字出现的个数       
    for char in word_lst:
        if char not in exclude_str:
            if char.strip() not in word_dict: # strip去除各种空白
                word_dict[char] = 1
            else :
                word_dict[char] += 1
    # 排序
    #   x[1]是按字频排序,x[0]则是按字排序
    lstWords = sorted(word_dict.items(), key=lambda x:x[1],  reverse=True) 
   
    # 输出结果 (前100)
    print ('字符\t字频')
    print ('=============')
    for e in lstWords[:100]:
        print ('%s\t%d' % e)
        fileOut.write('%s, %d\n' % e)

输出结果

字符    字频
=============
    3641
    1834
    1748
    1506
    1267
    1229
    1156
    985
    962
    921
    866
    853
    745
    728
    723
    705
    698
    691
    684
    667
    577
    572
    564
    562
    537
    520
    499
    494
    492
    491
    482
    462
    460
    441
    415
    404
    383
    367
    366
    349
    340
    331
    327
    326
    321
    320
    317
    311
    309
    307
    303
    301
    300
    291
    289
    289
    281
    280
    273
    272
    267
    266
    265
    259
    251
    251
    249
    242
    241
    240
    236
    235
    232
    230
    228
    225
    224
    216
    215
    215
    209
    209
    209
    208
    203
    203
    202
    201
    195
    188
    188
    188
    184
    184
    179
    179
    174
    173
    173
    172
>>>

感谢各位的阅读!看完上述内容,你们对python统计文本中字频的方法大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注亿速云行业资讯频道。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×