詞頻統計(上機)

2021-08-02 20:08:20 字數 2426 閱讀 5828

#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...