python怎么统计文本中的字频


本文摘自php中文网,作者爱喝马黛茶的安东尼,侵删。

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

思路:

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

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

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

相关推荐:《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

>>>

以上就是python怎么统计文本中的字频的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

怎么获得一个字符串的子串

Python 如何运行文件

Python数据结构:一个被低估的namedtuple(二)

Python并发之poolexecutor的介绍(附示例)

Python基本语句有哪些

Python函数之complex()函数

Python中的继承是什么

Python实现的质因式分解算法示例

Python的numpy中常用函数的详细介绍

Python如何提高运行速度

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...