Python英文词频统计(哈姆雷特)程序示例代码
作者:永远是少年啊
今天继续给大家介绍Python相关知识,本文主要内容是Python英文词频统计程序示例,主要是对英文文本——《哈姆雷特》进行分词。
一、英文文本词频统计思路
想要对《哈姆雷特》进行英文单词词频统计,那么我们首先需要拿到《哈姆雷特》的原文,将之存储为本地的txt文档,然后使用Python打开该文件,读取里面的信息。
在读取《哈姆雷特》内容后,我们首先需要将文件内容进行预处理,比如删除文件中的特殊符号,以及对文件内容进行全部小写的归一化操作等等。除此之外,我们还需要删除文档中所有的标点符号。之后,我们可以将文档使用split()函数,根据空格进行分隔,形成一个列表。
之后,我们逐个取出列表中的元素,然后统计列表中单词的个数。为了进行词频统计,我们需要创建一个字典变量,以单词为键,以统计出的单词个数为值,在遍历列表时不断更新该字典,就可以最终得到一个含有所有《哈姆雷特》内容单词词频的字典了。
最后,我们按照该字典转化为一个新的列表,就可以对值的大小对该字典进行排序,得到《哈姆雷特》词频从大到小的顺序了。
二、英文文本词频统计程序编写
根据上述思路,我们可以来编写英文文本词频统计程序了。
打开文件及读取文件内容程序代码如下所示:
f=open("C:\\Users\\Administrator\\Desktop\\哈姆雷特原文.txt","rt",encoding="utf-8") Hamlet=f.read() f.close()
对文件内容进行预处理代码如下所示:
Hamlet=Hamlet.lower() for char in "!@#$%^&*()_+~`,./;'[]\<>?:\"{}|": Hamlet=Hamlet.replace(char,"")
对文件单词进行统计代码如下所示:
counts=dict() for word in words: counts[word]=counts.get(word,0)+1
对字典生成新的列表,并进行排序,代码如下所示:
sequence=list(counts.items()) sequence.sort(key=lambda x:x[1],reverse=True)
筛选出单词出现频率最高的10个单词,并进行输出,代码如下所示:
for i in range(10): word,count=sequence[i] print("单词{}在Hamlet中出现次数为第{},出现了{}次".format(word,i+1,count))
最终代码如下所示:
f=open("C:\\Users\\Administrator\\Desktop\\哈姆雷特原文.txt","rt",encoding="utf-8") Hamlet=f.read() f.close() Hamlet=Hamlet.lower() for char in "!@#$%^&*()_+~`,./;'[]\<>?:\"{}|": Hamlet=Hamlet.replace(char,"") words=Hamlet.split() counts=dict() for word in words: counts[word]=counts.get(word,0)+1 sequence=list(counts.items()) sequence.sort(key=lambda x:x[1],reverse=True) for i in range(10): word,count=sequence[i] print("单词{}在Hamlet中出现次数为第{},出现了{}次".format(word,i+1,count))
三、程序执行结果展示
运行上述程序,我们最终得到结果如下所示:
从上图可以看出,我们成功统计出了在《哈姆雷特》中出现次数最多的10个单词。
总结
到此这篇关于Python英文词频统计(哈姆雷特)程序的文章就介绍到这了,更多相关Python英文词频统计内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!