需求是:針對三篇英文文章進行分析,計算出現次數最多的 10 個單詞

邏輯很清晰簡單,不算難, 使用 python 讀取多個 txt 文件,將文件的內容寫入新的 txt 中,然后對新 txt 文件進行詞頻統計,得到最終結果。
代碼如下:(在Windows 10,Python 3.7.4環境下運行通過)
# coding=utf-8
import re
import os
# 獲取源文件夾的路徑下的所有文件
sourceFileDir = 'D:\\Python\\txt\\'
filenames = os.listdir(sourceFileDir)
# 打開當前目錄下的 result.txt 文件,如果沒有則創建
# 文件也可以是其他類型的格式,如 result.js
file = open('D:\\Python\\result.txt', 'w')
# 遍歷文件
for filename in filenames:
 filepath = sourceFileDir+'\\'+filename
 # 遍歷單個文件,讀取行數,寫入內容
 for line in open(filepath):
  file.writelines(line)
  file.write('\n')
# 關閉文件
file.close()
# 獲取單詞函數定義
def getTxt():
 txt = open('result.txt').read()
 txt = txt.lower()
 txt = txt.replace(''', '\'')
 # !"@#$%^&*()+,-./:;<=>?@[\\]_`~{|}
 for ch in '!"'@#$%^&*()+,-/:;<=>?@[\\]_`~{|}':
  txt.replace(ch, ' ')
  return txt
# 1.獲取單詞
hamletTxt = getTxt()
# 2.切割為列表格式,'' 兼容符號錯誤情況,只保留英文單詞
txtArr = re.findall('[a-z\''A-Z]+', hamletTxt)
# 3.去除所有遍歷統計
counts = {}
for word in txtArr:
 # 去掉一些常見無價值詞
 forbinArr = ['a.', 'the', 'a', 'i']
 if word not in forbinArr:
  counts[word] = counts.get(word, 0) + 1
# 4.轉換格式,方便打印,將字典轉換為列表,次數按從大到小排序
countsList = list(counts.items())
countsList.sort(key=lambda x: x[1], reverse=True)
# 5. 輸出結果
for i in range(10):
 word, count = countsList[i]
 print('{0:<10}{1:>5}'.format(word, count))
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
                文章名稱:Python合并多個TXT文件并統計詞頻的實現-創新互聯
                
                轉載注明:http://www.yijiale78.com/article4/cdpcie.html
            
成都網站建設公司_創新互聯,為您提供營銷型網站建設、品牌網站建設、網站排名、手機網站建設、響應式網站、外貿建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯
