英文單詞詞頻統計

2021-07-29 22:40:36 字數 2101 閱讀 4847

英文單詞詞頻統計

問題描述:做乙個詞頻統計程式,該程式具有以下功能

(1)可匯入任意英文文字檔案

(2)統計該英文檔案中單詞數和各單詞出現的頻率(次數),並能將單詞按字典順序輸出。

(3)將單詞及頻率寫入檔案。

本次英文單詞的詞頻統計程式的設計過程中,使用了檔案的相關操作(檔案的讀與寫),在檔案中錄入資料,程式以乙個字串為乙個單位讀取單詞,並將結果輸出到result.txt中,而且也在程式中顯示。

基本演算法設計:在data.txt中輸入要統計的英文文章,按逐個字元進行讀取,並將連續的字元儲存為乙個字串。當讀取到的字元不是26個英文本母以內時,則開始新的字串的讀取。直到將整片文章讀取為乙個乙個的字串。並將這些字串按照氣泡排序的方法進行排序,以使單詞可以按照字典的順序輸出。

1.malloc函式的用法

malloc 向系統申請分配指定size個位元組的記憶體空間。返回型別是 void* 型別。void* 表示未確定型別的指標。c,c++規定,void* 型別可以通過型別轉換強制轉換為任何其它型別的指標。

2.c語言中,字元的差為它們對應的ascii碼值之差。

程式源**:

//檔名:英文單詞詞頻統計.cpp

//學號:1508010333

//版本:1.3

//完成日期:2017.3.31

#include #include #include #define max 27 //26個字母和其他字元

typedef struct word //字典樹的結構體定義

;typedef struct tlist //結構體定義:單詞和對應頻率

;struct tlist list[3000000]; //定義結構體陣列

word *root;

char str[200]=""; //字元資料初始化為空

char tempword[1000];

int size=0; //size為一篇文章中字串的個數

void output();

void display();

int main();

void createword(char *str) //新建單詞的函式(形參為字串指標)

p->next[id] = q;

p = p->next[id];

} else //若未到達鍊錶結尾,指標指向下乙個

}p->num++; //重複單詞數加1

}void readword(word *p,int len) //讀單詞的函式

else

readword((word*)p->next[i],len);

len--;}}

if(p->num!=0)

}void output() //輸出函式

while((x=fgetc(fp))!=eof) //從txt文件中讀入 讀入失敗時,函式值為eof(-1) fgetc為從檔案中讀取乙個字元 else } tempword[len]='\0'; createword(tempword);

//建立對文字最後乙個英文本串的讀取 len=0; fclose(fp); readword(root,0); struct tlist temp; for(i=0;ilist[j].time||(list[i].time==list[j].time&&strcmp(list[i].word,list[j].word)>0)) printf("英文單詞及詞頻統計結果如下:\n"); output();}int main() //主函式

python 統計 英文 單詞

import sys,os,re def count words text num char text re.sub w text number text re.sub 0 9 text shrink whitespace text re.sub s text return text.count d...

統計英文單詞個數

給出一篇英文文章,現在需要統計文章 現英文單詞的數量。輸入格式 第一行乙個t,代表資料組數 對於每組資料,第一行乙個n,代表文章中單詞的個數,其後n行每行乙個只包含小寫字母的長度為1到10的字串 輸出格式 每組資料輸出若干行,每行輸出單詞以及它出現的次數 中間空格隔開 不同單詞按單詞字典序從小到大輸...

語料中篩選出英文單詞並統計詞頻,正則切割匹配

1.正則的使用匹配2.dic.setdefault 的使用3 內建函式enumerate sequence,start 0 的使用4 內建函式sorted key,reversed引數設定5 str.lower string大小寫轉換 coding utf 8 import re import os...