Python二級備考筆記6 《從清華到MIT》詞頻統計
1 《從清華到MIT》詞頻統計
型別:Python 組合資料型別
從data.txt檔案讀入一篇文章《從清華到MIT》,用 jieba 庫的函式 lcut 的全模式做分詞,統計詞彙長度為 2 的詞出現的次數,輸出出現次數最多的前 10 個詞彙及其出現次數。
示例1:
輸入:從data.txt檔案讀入 輸出:" 大學:21 設計:20 美國:16 清華:15 學生:14 教授:12 課程:11 一個:10 國大:8 計算:8 "
本題所用到的文章 參考http://www.qianmu.org/article/3865.htm儲存在記事本里即可
#在_____處填寫一行程式碼
#在…處填寫多行程式碼
#不允許修改其他程式碼
import jieba
dk = {}
with open('data.txt','r') as f:
…
dp = list(dk.items())
dp.sort(key= lambda x:int(x[1]), reverse = True)
…
1.1 程式碼
#在_____處填寫一行程式碼 #在…處填寫多行程式碼 #不允許修改其他程式碼 import jieba dk = {} with open('data.txt','r') as f: lf = f.readlines() for i in lf: ls = jieba.lcut(i,cut_all=True) for j in ls: if len(j)==2: if j in dk: dk[j] += 1 else: dk[j] = 1 dp = list(dk.items()) dp.sort(key= lambda x:int(x[1]), reverse = True) for i in range(10): print("{}:{}".format(dp[i][0],dp[i][1]))
2 檔案的開啟
with open('data.txt', 'r', encoding='utf-8') as f:
print(f.read())
# ...more code
3 jieba
3.1 簡介
jieba分詞的三種模式:精確模式、全模式、搜尋引擎模式
精確模式:把文字精確的切分開,不存在冗餘單詞
全模式:把文字中所有可能的詞語都掃描出來,有冗餘
搜尋引擎模式:在精確模式基礎上,對長詞再次切分
3.2 常用函式
函式 | 描述 |
jieba.lcut(s) | 精確模式,返回一個列表型別的分詞結果 |
jieba.lcut(s,cut_all=True) | 全模式,返回一個列表型別的分詞結果,存在冗餘 |
jieba.lcut_for_search(s) | 搜尋引擎模式,返回一個列表型別的分詞結果,存在冗餘 |
jieba.add_word(w) | 向分詞詞典增加新詞w |
3.3 例子
from jieba import *
str1 = "智慧財產權是由人類智力勞動成果依法產生的專有權利。"
print(lcut(str1))
print(lcut_for_search(str1))
print(lcut(str1,cut_all=True))
輸出
['智慧財產權', '是', '由', '人類', '智力', '勞動成果', '依法', '產生', '的', '專有', '權利', '。']
['知識', '產權', '智慧財產權', '是', '由', '人類', '智力', '勞動', '成果', '勞動成果', '依法', '產生', '的', '專有', '權利', '。']
['知識', '智慧財產權', '產權', '是', '由', '人類', '智力', '勞動', '勞動成果', '成果', '依法', '產生', '的', '專有', '專有權', '有權', '權利', '。']
4 練習
4.1 問題1
用 jieba 分詞,計算字串 s 中的中文詞彙個數,不包括中文標點符號。顯示輸分詞後的結果,用”/ ”分隔,以及中文詞彙個數。
輸入
工業網際網路”實施的方式是通過通訊、控制和計算技術的交叉應用,建造一個資訊物理系統,促進物理系統和數字系統的融合。
輸出
工業/ 網際網路/實施/ 的/ 方式/是/ 通過/ 通訊/控制/ 和/ 計算技術/的/ 交叉/ 應用/建造/ 一個/ 資訊/物理/ 系統/ 促進/物理/ 系統/ 和/數字/ 系統/ 的/融合/
中文詞語數是:27
4.2 問題2
在問題1的基礎上,統計分詞後的詞彙出現的次數,用字典結構儲存。顯示輸出每個詞彙出現的次數,以及出現次數最多的詞彙。如果有多個詞彙出現次數一樣多,都要顯示出來。
輸入
工業網際網路”實施的方式是通過通訊、控制和計算技術的交叉應用,建造一個資訊物理系統,促進物理系統和數字系統的融合。
輸出
控制: 1
物理: 2
通訊: 1
交叉: 1
網際網路: 1
和: 2
是: 1
計算技術: 1
一個: 1
的: 3
數字: 1
促進: 1
資訊: 1
方式: 1
建造: 1
應用: 1
系統: 3
通過: 1
實施: 1
融合: 1
工業: 1
出現最多的詞是(的 系統):3 次