python 詞頻統計 中英文

2021-08-19 21:05:10 字數 2444 閱讀 8768

#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()#split預設用空格分割字串,返回列表,後是無空格的單詞列表

counts = {}#建立字典

for word in words:

counts[word] = counts.get(word,0) + 1#遍歷字典的鍵並對相應值+1,達到統計目的

items = list(counts.items())#items函式返回所有鍵值對元組,再用list返回列表型別,其中每個元素都是乙個鍵值對

items.sort(key=lambda x:x[1], reverse=true) #按照鍵值對中的就是第二個元素排序,逆序==從大到小(預設從小到大)

for i in range(10):

word, count = items[i]#鍵值對賦值給word,count

print ("".format(word, count)

#calthreekingdomsv1.py

import jieba

txt = open("threekingdoms.txt", "r", encoding='utf-8').read()

words = jieba.lcut(txt)

counts = {}

for word in words:

if len(word) == 1:

continue

else:

counts[word] = counts.get(word,0) + 1

items = list(counts.items())

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

for i in range(15):

word, count = items[i]

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

#calthreekingdomsv2.py

import jieba    #匯入jieba第三方庫(需要提前用在cmd中用pip install jieba命令安裝)

excludes =     #排除非人名但是排名靠前的詞

txt = open("threekingdoms.txt", "r", encoding='utf-8').read()    #開啟檔案

words = jieba.lcut(txt)    #自動轉換成單詞列表,自動處理空格和標點符號

counts = {}     #建立字典

for word in words:

if len(word) == 1: #單個字不能作為人名,跳過繼續下乙個

continue

elif word == "諸葛亮" or word == "孔明曰": #把含義是同乙個人的詞統一成乙個詞

rword = "孔明"

elif word == "關公" or word == "雲長":

rword = "關羽"

elif word == "玄德" or word == "玄德曰":

rword = "劉備"

elif word == "孟德" or word == "丞相":

rword = "曹操"

else:

rword = word

counts[rword] = counts.get(rword,0) + 1    #按鍵查詢並對值累加計數,其中dict.get()方法,第二個引數是預設值,

for word in excludes:

del counts[word]    #遍歷exludes集合 刪除對應字典中的鍵及值對

items = list(counts.items()) #python 字典(dictionary) items() 函式以列表返回可遍歷的(鍵, 值) 元組陣列似乎不用再用list建立函式轉換

items.sort(key=lambda x:x[1], reverse=true) #lambuda匿名函式,key引數,按照元組x中第二個元素,從大到小排序

for i in range(10):

word, count = items[i]

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

Python 文字詞頻統計中英文

統計一段英文中 出現次數最多的幾個單詞 def get text text open eng.txt r read text text.lower 所有單詞都替換成小寫 for ch in 去噪,歸一化處理,把所有特殊符號替換為空格 text text.replace ch,return text ...

python 中英文 分離 中英文分離

由於沒有安裝 numpy 根據部落格提示,成功安裝了numpy 執行之後沒有錯誤,可是嘛,我看不到結果。也就隨它去了。主要有兩個問題,乙個是執行的時候出現的 valueerror need more than 0 values to unpack 對於空行就會報錯。不機智。於是加了個判斷。讓它一直走...

python中的中英文本元統計

英語字元和中文字元的區別在於 大小寫字元和字元個數 中文中是乙個詞語 統計英語字元 def gettext txt open halmet.txt r read txt txt.lower 文中所有英語小寫 for ch in txt txt.replace ch,return txt halmet...