打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python怎么统计文本中的字频
https://www.php.cn/python-tutorials-423532.html
当我们在看一篇文章甚至是一本小说的时候,想知道文本中哪个字出现的最多,出现了多少次,该怎么办?Python可以用简单的代码就可以实现这份工作。你也可以拓展一下,可以通过小说中谁的名字或者哪一句话出现的次数最多来推断主角是谁?口头禅是什么?是不是十分有趣,快来试试吧。

思路:

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

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

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

#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)

输出结果

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

字符    字频

=============

的    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

>>>

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
使用python对中文文档进行词频统计
计算2篇文本的文本相似度(python实现)
【Python 数据分析】jieba文本挖掘
Python入门很难?别担心,找对方法!函数基础知识送给你们
跟老齐学Python之集合(set)
《源码探秘 CPython》32. 初识哈希表
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服