Python语言程序设计
实例10: 文本词频统计
嵩 天
北京理工大学
"文本词频统计"问题分析
CC BY-NC-SA 4.0 嵩天
问题分析
文本词频统计
- 需求 :一篇文章,出现了哪些词?哪些词出现得最多?
- 该怎么做呢?
英文文本 中文文本
问题分析
文本词频统计
- 英文文本:Hamet 分析词频
https://python123.io/resources/pye/hamlet.txt
- 中文文本: 《三国演义》 分析人物
https://python123.io/resources/pye/threekingdoms.txt
"Hamlet英文词频统计"实例讲解
CC BY-NC-SA 4.0 嵩天
CC BY-NC-SA 4.0 嵩天
#CalHamletV1.py
def getText():
txt = open("hamlet.txt", "r").read()
txt = txt.lower()
for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~':
txt = txt.replace(ch, " ")
return txt
hamletTxt = getText()
words = hamletTxt.split()
counts = {} - 文本去噪及归一化
for word in words:
counts[word] = counts.get(word,0) + 1 - 使用字典表达词频
items = list(counts.items())
items.sort(key=lambda x:x[1], reverse=True)
for i in range(10):
word, count = items[i]
print("{0:<10}{1:>5}".format(word, count))
>>>
the 1138
and 965
to 754
of 669
you 550
i 542
a 542 - 运行结果由大到小排序
my 514
- 观察单词出现次数
hamlet 462
in 436
准备好电脑,与老师一起编码吧!
" 《三国演义》人物出场统计"实例讲解(上)
CC BY-NC-SA 4.0 嵩天
CC BY-NC-SA 4.0 嵩天
#CalThreeKingdoms