中文字符频率统计python_用Python实现小说中的汉字频率统计

环境:

Python 3的代码,亲测可用。

思路:

是先把每个字符提出来放在列表里;再过滤掉其中的标点符号;最后用字典对某个字出现的频率进行累加。

扩展:

用处很多,稍微改改,既可以用来统计小说或文章,也可以用来决定让孩子学哪些常用字,还可以用来分析微博或朋友圈中好友的语言特点,需要的就拿去浪吧,记得送我一个滑稽的回复。

1 #coding:utf-8

2

3 word_lst =[]4 word_dict ={}5

6 exclude_str = ",。!?、()【】<>《》=:+-*—“”…"

7

8 with open("芳华.txt","r") as fileIn ,open("芳华字频.txt",'w') as fileOut:9

10 #添加每一个字到列表中

11 for line infileIn:12 for char inline:13 word_lst.append(char)14

15 #用字典统计每个字出现的个数

16 for char inword_lst:17 if char not inexclude_str:18 if char.strip() not in word_dict: #strip去除各种空白

19 word_dict[char] = 1

20 else:21 word_dict[char] += 1

22

23 #排序

24 #x[1]是按字频排序,x[0]则是按字排序

25 lstWords = sorted(word_dict.items(), key=lambda x:x[1], reverse=True)26

27 #输出结果 (前100)

28 print ('字符\t字频')29 print ('=============')30 for e in lstWords[:100]:31 print ('%s\t%d' %e)32 fileOut.write('%s, %d\n' % e)

输出结果:

1 字符 字频2 =============

3 的 3641

4 一 1834

5 了 1748

6 是 1506

7 不 1267

8 我 1229

9 她 1156

10 他 985

11 小 962

12 个 921

13 人 866

14 在 853

15 刘 745

16 丁 728

17 那 723

18 上 705

19 来 698

20 峰 691

21 们 684

22 就 667

23 说 577

24 有 572

25 到 564

26 这 562

27 里 537

28 儿 520

29 嫚 499

30 子 494

31 都 492

32 着 491

33 大 482

34 么 462

35 出 460

36 看 441

37 也 415

38 得 404

39 下 383

40 时 367

41 还 366

42 女 349

43 地 340

44 头 331

45 好 327

46 没 326

47 去 321

48 过 320

49 老 317

50 跟 311

51 你 309

52 把 307

53 对 303

54 年 301

55 会 300

56 生 291

57 为 289

58 发 289

59 要 281

60 何 280

61 亲 273

62 后 272

63 给 267

64 和 266

65 天 265

66 家 259

67 手 251

68 长 251

69 想 249

70 多 242

71 自 241

72 开 240

73 当 236

74 兵 235

75 样 232

76 郝 230

77 可 228

78 起 225

79 被 224

80 成 216

81 十 215

82 什 215

83 以 209

84 事 209

85 从 209

86 点 208

87 能 203

88 两 203

89 回 202

90 门 201

91 所 195

92 淑 188

93 雯 188

94 只 188

95 心 184

96 身 184

97 让 179

98 道 179

99 母 174

100 做 173

101 话 173

102 最 172

103 >>>

主人公的名字排名靠前,嗯,合情合理。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值