#include
#include
#include
#define error 1
#define ok 0
const int word_length = 250;//定義單個單詞最大長度
typedef int status;
/*定義儲存單詞及其出現次數的結構體*/
typedef struct nodewordnode;
wordnode *headnode = null;//定義煉表頭指標
/* 函式宣告 */
wordnode *wordsearch(char *word,int *num);
status wordcount(char *word,int *num);
void printcountlist(int *num);
void printfirsttentimes();
void mergesort(wordnode **head);
void frontbacksplit(wordnode *head,wordnode **pre,wordnode **next);
void wordjob(char word);
wordnode *sortedmerge(wordnode *pre,wordnode *next);
void release();
status main(int argc,char *argv)
while((fscanf(file,"%s",temp))!= eof)
fclose(file);//關閉檔案
printcountlist(num);
printf("***********請選擇***********\n");
printf("*****1. 輸出詞頻最高的10個詞**\n");
printf("*****2. 退出****************\n");
scanf("%d",&choose);
if(choose == 1)else
release();
return 0;
} /* 查詢單詞所在結點 */
wordnode *wordsearch(char *word,int *num)
wordnode *nextnode = headnode;
wordnode *prenode = null;
while(nextnode != null && strcmp(nextnode->word, word) != 0)
//若該單詞不存在,則在鍊錶中生成新結點
if(nextnode == null)else
return nextnode;
} /* 詞頻統計 */
status wordcount(char *word,int *num)
tmpnode->time++;
return 0;
} /* 列印所有詞頻 */
void printcountlist(int *num)else
} }
/* 列印詞頻最高的10個詞 */
void printfirsttentimes()else
} }
/* 對詞頻統計結果進行歸併排序 */
void mergesort(wordnode **headnode)
frontbacksplit(head,&pre,&next);
mergesort(&pre);
mergesort(&next);
*headnode = sortedmerge(pre,next);
} /* 將鍊錶進行分組 */
void frontbacksplit(wordnode *source,wordnode **pre,wordnode **next)else
} *pre = source;
*next = slow->next;
slow->next = null;
} }
/* 根據排序結果更換頭結點 */
wordnode *sortedmerge(wordnode *pre,wordnode *next)else
return result;
} /* 處理大寫字母及特殊字元 */
void wordjob(char word)
//篩選並去除字串中的特殊字元
for(k = 0;knext;
free(pre);
pre = headnode;
} }
PTA 詞頻統計
請編寫程式,對一段英文文字,統計其中所有不同單詞的個數,以及詞頻最大的前10 的單詞。所謂 單詞 是指由不超過80個單詞字元組成的連續字串,但長度超過15的單詞將只擷取保留前15個單詞字元。而合法的 單詞字元 為大小寫字母 數字和下劃線,其它字元均認為是單詞分隔符。輸入給出一段非空文字,最後以符號 ...
hamlet詞頻統計
part2 code 10.1calhamlet.py def gettext txt open hamlet.txt r read 將文字中的英文本母全部轉為小寫字母 txt txt.lower return txt hamlettxt gettext words hamlettxt.split ...
Python 統計詞頻
calhamletv1.py def gettext txt open hamlet.txt r read txt txt.lower for ch in txt txt.replace ch,將文字中特殊字元替換為空格 return txt hamlettxt gettext words haml...