基本功能
1. 統計檔案的字元數
2. 統計檔案的單詞總數
3. 統計檔案的總行數
4. 統計檔案中各單詞的出現次數
5. 對給定資料夾及其遞迴子資料夾下的所有檔案進行統計
6. 統計兩個單詞(片語)在一起的頻率,輸出頻率最高的前10個。
7. 在linux系統下,進行效能分析,過程寫到blog中(附加題)
資料結構:
characternum 字元數 全域性變數
wordnum 單詞總數 全域性變數
linenum 總行數 全域性變數
採用結構體陣列(動態記憶體)儲存單詞及其出現次數
struct wordinfo ;
struct alphaarray ;
alphaarray dictionary[26];
實現方案:
初始化各變數
遍歷給定資料夾中的每個檔案
唯讀方式開啟符合要求的檔案
單詞統計
迴圈至所有檔案遍歷完成
關閉檔案
輸出統計結果
單詞統計函式:
遍歷字元並統計
判斷是否是換行符並統計
建立緩衝區域儲存乙個單詞中連續的字元
採集單詞字串
生成單詞的雜湊值(雜湊函式使用elfhash、衝突解決方案採用二次探測)
根據首字母和雜湊值確定單詞的儲存位置並儲存單詞資訊
將當前單詞的儲存位置對映到前乙個單詞的nextwordfrequency[26]矩陣當中,實現片語頻率統計
統計規則:
統計方法:
1.判斷是否是ascii碼字元,若是,字元計數加一;若是換行符,行數加一
2.將間隔符之間的內容讀入臨時陣列,用變數記錄最後乙個字母在陣列中的位置
3.提取單詞主體(除去最後的數字部分),產生雜湊值
4.根據雜湊值查詢對應單元是否已經存在該單詞,若存在,則該單詞頻率加一且按照詞典順序更新單詞;若不存在,根據雜湊函式繼續查詢,直到找到同樣的單詞或者空閒的空間,更新或者記錄單詞資訊
Hive實現詞頻統計
hive中提供了類似於sql語言的查詢語言 hiveql,可以通過 hiveql語句快速實現簡單的 mapreduce統計,hive 自身可以將 hiveql 語句快速轉換成 mapreduce 任務進行執行,而不必開發專門的 mapreduce 應用程式,因而十分適合資料倉儲的統計分析。通過乙個簡...
linux命令實現詞頻統計
給定示例檔案test.txt如下,對第一列做詞頻統計並排序 hello marry maxthread hello lihua max code nasa connection切割 分組 排序,cat test.txt cut d f1 sort uniq c sort k 1 1 nasa 2 h...
統計文章詞頻(python實現)
統計出文章重複詞語是進行文字分析的重要一步,從詞頻能夠概要的分析文章內容。2.建立用於詞頻計算的空字典 3.對文字的每一行計算詞頻 4.從字典中獲取資料對到列表中 5.對列表中的資料交換位置,並排序 6.輸出結果 2.網上下來的英文文章可能有一些不是utf 8編碼,並且文章中有一些字元包含一些格式符...