詞頻統計實現方法大致思路(軟工個人作業一)

2022-06-02 22:27:09 字數 1023 閱讀 5206

基本功能

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編碼,並且文章中有一些字元包含一些格式符...