統計檔案裡出現次數前10的單詞

2021-10-20 01:21:43 字數 1807 閱讀 3871

統計

」 the_holy_bible_res.txt 「

中字元的個數,行數,單詞的個數,統計單詞的詞頻並列印輸出詞頻最高的前

10 個單詞及其詞頻

#define _crt_secure_no_warnings

#include #include #include #define maxkey 10000

#define swap(a,b)

int hash(char *key)

return h % maxkey;

}typedef struct info

info_t , *pinfo_t;

int isletterofalphabet(char c)//判斷小寫字母

else }

//陣列下標從0開始

//left是堆頂的下標,編號是left+1

//左孩子編號2*left+2,下標是2*left+1

//右孩子編號2*left+3,下標是2*left+2

void adjustminheap(pinfo_t *p , int left , int right)//調整為小頂堆

if (p[father]->num > p[son]->num)

else

}}void buildminheap(pinfo_t *p , int left , int right)//建立小頂堆}/*

沒有用到這個函式,只是提供了一種找出檔案裡的單詞的思路

缺點:如果指標所指向的是檔案裡面第乙個字元,那麼p[-1]就錯了

*/int isword(char *p)

else }

//2int main(int argc , char *ar**)

pinfo_t hashtable[maxkey] = ;

char c;

int n1=0 , n2=1 , n3=0;//字元的個數,行數,單詞的個數

while ((c = fgetc(fp)) != eof)

q->next = p;}*/

if (isletterofalphabet(c))//小寫字母

; char *word = (char*) calloc(1 , 100);

word[i++] = c;

while ((c = fgetc(fp)) != eof && isletterofalphabet(c))

if (hashtable[hash(word)] != null)

if (strcmp(q->address , word) == 0)

else

}else

if (c == eof)//到達檔案尾

}if(c=='\n')//遇到'\n'

}fclose(fp);

printf("字元數%d,行數%d,單詞數%d\n" , n1 , n2 , n3);

pinfo_t a[10] = ;//存放前10大詞頻的結點指標

int flag = 0;//標識是否建立了初始的前10個結點指標的小頂堆

//掃瞄雜湊鍊錶

linux 統計檔案中單詞出現次數

請教 統計檔案a.txt中 每個單詞 的重複出現次數?若該檔案大到幾個g又該如何處理?方案一 bin sh 定義原始檔和臨時檔案 srcfile word.txt tempfile words tempfile words tempfile words uniq tempfile words uni...

python統計單詞出現次數

統計英文兒歌 twinkle twinkle little star 中,使用到的單詞及其出現次數。要求去除單詞大小寫的影響,不統計標點符號的個數,並按降序輸出。twinkle,twinkle,little star,how i wonder what you are up above the wo...

統計文章單詞出現次數

英文文章中的標點符號的處理,單詞大小寫的處理,再將單詞通過字典的統計出現次數,最後用sorted 排序 利用maketrans函式將標點符號對映為空格 table str.maketrans 開啟需要統計的檔案 f open r c python 1.txt file1 f.read f.close...