Python 《Hamlet》哈姆雷特英文詞頻統計

2021-09-19 04:52:56 字數 1461 閱讀 7535

關鍵問題:

1、詞語 -- 鍵

2、相同詞語的累加 -- 值

討論:定義什麼資料型別 -- 字典型別

問題描述:

i:檔案的輸入

p:採用字典型別的結構統計詞語出現的頻率

o:每個單詞及單詞出現的次數(要求輸出前10個)

ipo細化:

第一步:

(1) txt檔案讀取 -- txt.read("filename","r")

(2) 檔案大小寫的轉換

(3) 特殊字元(各種標點符號)的替換

(4) 輸出處理後的檔案

——定義乙個函式 #將檔案進行格式化處理

第二步:對每個單詞進行計數

(1) 定義乙個字典型別的變數counts

(2) 單詞在counts 中,單詞定義的值 直接+1

(3) 單詞不在counts 中,首先要將單詞新增到字典中,然後並將其值賦值為1

第三步:

(1) 輸出所用的鍵值對

(2) 輸出排名前n的鍵值對

字典型別轉換為列表型別

對列表型別用sort函式排序

按要求輸出

第四步:

採用集合型別構建乙個排除詞彙庫excludes

在輸出結果中去掉冠詞、代詞、連線詞等語法型詞彙

# -*- coding:utf-8 -*-

excludes =

def txt_sort():

txt = open("hamlet.txt", "r").read()

txt = txt.lower()

for i in '!"#$%&()*+,-./:;<=>?@[\\]^_『~':

txt = txt.replace(i, " ")

return txt

hamlettxt = txt_sort()

words = hamlettxt.split()

counts = {} #新建乙個空字典

for word in words:

counts[word] = counts.get(word, 0) + 1 #對單詞出現的頻率進行統計

for word in excludes:

del(counts[word])

items = list(counts.items())

items.sort(key=lambda x: x[1], reverse=true)

for i in range(10):

word, count = items[i] #返回相對應的鍵值對

print ("".format(word, count))

英文詞頻統計

詞頻統計預處理 將所有,等分隔符全部替換為空格 將所有大寫轉換為小寫 生成單詞列表 生成詞頻統計 排序排除語法型詞彙,代詞 冠詞 連詞 輸出詞頻最大top10 word lately,i ve been,i ve been losing sleep dreaming about the things...

使用Python進行英文詞頻統計

1.讀取檔案,通過lower replace 函式將所有單詞統一為小寫,並用空格替換特殊字元。def gettext txt open piao.txt r errors ignore read txt txt.lower for ch in txt txt.replace ch,return tx...

用python實現英文詞頻統計

1.字串的內建函式的呼叫一般不改變原字串,而列表的內建函式的呼叫一般會改變列表。trystr mytry print trystr.upper mytry print trystr mytry 要想改變原字串應該使用如下 trystr trystr.upper trylist 2 6,7 1,0 p...