1. 程式人生 > 程式設計 >Python英文文章詞頻統計(14份劍橋真題詞頻統計)

Python英文文章詞頻統計(14份劍橋真題詞頻統計)

Python劍橋真題詞頻統計

最好還是要學以致用,自主蒐集了19年最近的14份劍橋真題之後,通過Python提供的jieba第三方庫,對所有的文章資訊進行了詞頻統計,並選擇性地剔除了部分簡易詞彙,比如數字,普通冠詞等,博主較懶,未清楚乾淨。

Python程式碼如下:

import jieba
# 以只讀方式開啟text(即真題庫)
text = open('text.txt','r',encoding = 'utf-8').read()
# len(text)

#統一為小寫 
text = text.lower()

# 需要剔除的詞彙列表,也可以用記事本的形式,新增一個開啟記事本的語句即可
# 即 stwlist = [line.strip() for line in open 'stopwords.txt',encoding='utf-8').readlines()]
# 這裡使用列表
stwlist = ['the','a','of','to','end','in','you','is','that','for','on','it','as','your','...','14','this','or','20','40','27','30','13','21','26','10','15','22','32','31','1','2','4','5','6','7','8','9','0','11','12','16','17','25','33','35','36','18','23','19','24','38','29','34','37','000','...............................']

# 先進行分詞
words = jieba.cut(text,cut_all = False,HMM = True)
#cut_all:是否採用全模式
#HMM:是否採用HMM模型

word_ = {}
for word in words:
  if (word.strip() not in stwlist):
    if len(word) > 1:
      if word != '\t':
        if word != '\r\n':
 # 計算詞頻
          if word in word_:
            word_[word] += 1
          else:
            word_[word] = 1

# 將結果儲存為元組
word_freq = []
for word,freq in word_.items():
  word_freq.append((word,freq))

# 降序排列
word_freq.sort(key = lambda x:x[1],reverse = True)

#輸出前3500個詞彙
for i in range(3500):
  word,freq = word_freq[i]
  print('{0:10}{1:5}'.format(word,freq))

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。