英文單詞詞頻統計
問題描述:做乙個詞頻統計程式,該程式具有以下功能
(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...