今天繼續(xù)給大家介紹Python相關(guān)知識(shí),本文主要內(nèi)容是Python英文詞頻統(tǒng)計(jì)程序示例,主要是對(duì)英文文本——《哈姆雷特》進(jìn)行分詞。
一、英文文本詞頻統(tǒng)計(jì)思路
想要對(duì)《哈姆雷特》進(jìn)行英文單詞詞頻統(tǒng)計(jì),那么我們首先需要拿到《哈姆雷特》的原文,將之存儲(chǔ)為本地的txt文檔,然后使用Python打開(kāi)該文件,讀取里面的信息。
在讀取《哈姆雷特》內(nèi)容后,我們首先需要將文件內(nèi)容進(jìn)行預(yù)處理,比如刪除文件中的特殊符號(hào),以及對(duì)文件內(nèi)容進(jìn)行全部小寫的歸一化操作等等。除此之外,我們還需要?jiǎng)h除文檔中所有的標(biāo)點(diǎn)符號(hào)。之后,我們可以將文檔使用split()函數(shù),根據(jù)空格進(jìn)行分隔,形成一個(gè)列表。
之后,我們逐個(gè)取出列表中的元素,然后統(tǒng)計(jì)列表中單詞的個(gè)數(shù)。為了進(jìn)行詞頻統(tǒng)計(jì),我們需要?jiǎng)?chuàng)建一個(gè)字典變量,以單詞為鍵,以統(tǒng)計(jì)出的單詞個(gè)數(shù)為值,在遍歷列表時(shí)不斷更新該字典,就可以最終得到一個(gè)含有所有《哈姆雷特》內(nèi)容單詞詞頻的字典了。
最后,我們按照該字典轉(zhuǎn)化為一個(gè)新的列表,就可以對(duì)值的大小對(duì)該字典進(jìn)行排序,得到《哈姆雷特》詞頻從大到小的順序了。
二、英文文本詞頻統(tǒng)計(jì)程序編寫
根據(jù)上述思路,我們可以來(lái)編寫英文文本詞頻統(tǒng)計(jì)程序了。
打開(kāi)文件及讀取文件內(nèi)容程序代碼如下所示:
f=open("C:\\Users\\Administrator\\Desktop\\哈姆雷特原文.txt","rt",encoding="utf-8")
Hamlet=f.read()
f.close()
對(duì)文件內(nèi)容進(jìn)行預(yù)處理代碼如下所示:
Hamlet=Hamlet.lower()
for char in "!@#$%^&*()_+~`,./;'[]\<>?:\"{}|":
Hamlet=Hamlet.replace(char,"")
對(duì)文件單詞進(jìn)行統(tǒng)計(jì)代碼如下所示:
counts=dict()
for word in words:
counts[word]=counts.get(word,0)+1
對(duì)字典生成新的列表,并進(jìn)行排序,代碼如下所示:
sequence=list(counts.items())
sequence.sort(key=lambda x:x[1],reverse=True)
篩選出單詞出現(xiàn)頻率最高的10個(gè)單詞,并進(jìn)行輸出,代碼如下所示:
for i in range(10):
word,count=sequence[i]
print("單詞{}在Hamlet中出現(xiàn)次數(shù)為第{},出現(xiàn)了{(lán)}次".format(word,i+1,count))
最終代碼如下所示:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-441660.html
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中出現(xiàn)次數(shù)為第{},出現(xiàn)了{(lán)}次".format(word,i+1,count))
三、程序執(zhí)行結(jié)果展示
運(yùn)行上述程序,我們最終得到結(jié)果如下所示:
從上圖可以看出,我們成功統(tǒng)計(jì)出了在《哈姆雷特》中出現(xiàn)次數(shù)最多的10個(gè)單詞。
原創(chuàng)不易,轉(zhuǎn)載請(qǐng)說(shuō)明出處:https://blog.csdn.net/weixin_40228200文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-441660.html
到了這里,關(guān)于Python英文詞頻統(tǒng)計(jì)(哈姆雷特)程序示例的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!