201671010413葛進花 詞頻統計軟件項目報告

一.需求分析

用戶需求:git

1.程序可讀入任意英文文本文件,該文件中英文詞數大於等於1個。github

2.程序須要很壯健,能讀取容納英文原版《哈利波特》10萬詞以上的文章。框架

3.指定單詞詞頻統計功能:用戶可輸入從該文本中想要查找詞頻的一個或任意多個英文單詞,運行程序的統計功能可顯示對應單詞在文本中出現的次數和柱狀圖。學習

4.高頻詞統計功能:用戶從鍵盤輸入高頻詞輸出的個數k,運行程序統計功能,可按文本中詞頻數降序顯示前k個單詞的詞頻及單詞。測試

5.統計該文本全部單詞數量及詞頻數,並能將單詞及詞頻數按字典順序輸出到文件result.txt。
編碼


二.功能設計

基本功能:spa

1.讀入讀出文件功能(將文件進行讀取,存放)
2.用戶輸入功能(用戶輸入想要查詢的單詞,以及查詢高頻單詞的個數)
3.詞頻統計功能
4.排序功能(降序排序和按字典順序排序)
5.顯示功能(顯示柱狀圖,顯示前k個高頻單詞的詞頻,顯示指定單詞出現的次數)
備註:由於編碼能力有限,因此只能實現部分功能,沒有按照老師的要求將功能所有實現。
設計


三.設計實現

用findall 抽取出[a-z,A-Z]的英文單詞 而後用for循環遍歷統計單詞出現的次數代碼規範


四.測試運行


五.部分代碼

import re #應用re模塊

lines_count = 0
chars_count = 0
words_dict= {}

f=open('cyy.txt','r')

for line in f:
    lines_count = lines_count + 1
    chars_count  = chars_count + len(line)
    match = re.findall(r'[^a-zA-Z]+', line)#匹配英文單詞
    for i in match:
        line = line.replace(i, ' ')
        lines_list = line.split()
    for i in lines_list:
        if i not in words_dict:
            words_dict[i] = 1
        else:
            words_dict[i] = words_dict[i] + 1
f.close()

for w,n in words_dict.items():
    print(w,n)

六.PSP展現

任務內容 計劃共完成須要的時間(min) 實際完成須要的時間(min)
計劃 10 10
估計這個任務須要多少時間,並規劃大體工做步驟 30 20
開發 200 200
需求分析 (包括學習新技術) 10 10
生成設計文檔 20 15
設計複審 (和同事審覈設計文檔) 20 15
代碼規範 (爲目前的開發制定合適的規範) 20 20
具體設計 30 30
具體編碼 100 100
代碼複審 25 25
測試(自我測試,修改代碼,提交修改) 20 20
報告 30 30
測試報告 10 10
計算工做量 5 3
過後總結 ,並提出過程改進計劃 6 4

        從 PSP表中能夠看出,我全部的階段付出的時間都比別人多好多多是由於第一次,缺少經驗,在每個階段我都在搜索,概括,總結,因此付出的時間相對來講就比別人多好多,不過經過作此次表格,讓我瞭解了作一個項目所要經歷的階段,都要作什麼,雖然細節仍是不懂,可是大概框架仍是知道了,因此在從此的學習中,我會加倍努力,彌補本身的不足。code

點擊查看源碼

相關文章
相關標籤/搜索