英文詞頻統計很簡單,只需借助split斷句,再統計即可。
完整matlab**:
中文詞頻統計相對複雜一些。關鍵在於:function wordcount
%思路:中文詞頻統計涉及到對「詞語」的判斷,需要匯入詞典或編寫判斷規則,很複雜。
%最簡單的辦法是直接統計英文詞頻,並由空格直接劃分詞語。然後再翻譯即可得到中文詞頻。
clc;
clear;
report=fileread('reportfulltext.txt'); %讀入全文
report=regexprep(report,'\w',' '); %不是字元的,都轉換為空格。主要是去除標點符號
report=lower(report); %變成小寫
words=regexp(report,' ','split')'; %根據空格分隔為單詞cell
%至此每個單詞都拿出來了
rank = tabulate(words); %rank是三列向量,包括名稱,出現次數和百分比
ans=sortrows(rank,-2); %只根據第二列進行排序 -2表示降序
xlswrite('results',ans);%輸出為excel檔案
end
十九大中文版報告統計結果:function wordcountchinese
clc;
clear;
report=fileread('reportchinese.txt'); %讀入中文報告,事先已放在工作區
%% dictionary.mat是乙個我事先準備好的列向量
load dictionary.mat;
maxlen=max(cellfun(@length,dict)); %最大詞長,結果是10
%% 按標點初步分詞
cut='[\,\。\、\;\:\!\?\「\」\『\』\(\)\《\》\\……\·]'; %標點符號的正規表示式
f=regexp(report,cut,'split')'; %轉置,變成3131*1的列向量
% 此時,待分析的句集f和詞典都已就緒
%% 演算法原理
% 首先判斷是否為有效句:句長是否大於0。小於0的不操作,相當於跳過
% 若是有效句,計算句長和最大詞長maxlen的最小值maxlen。待選字串長度不能大於該長度
% 從maxlen長度開始,取出待選字串
% 匹配,成功就輸出,標記。若成功,平移maxlen個單位;若不成功,平移1個單位
% 選出下乙個待選字串再匹配,重複操作,直到移動到句長以外
% 如果上乙個長度匹配成功,那麼就不用再匹配了,該句跳過;如果meet==0,重複上一步操作
% 長度maxlen減到1,也要匹配,因為詞庫中有乙個字的詞;maxlen==0是終止訊號。
%% 最大匹配法進一步分詞
sentence=; %是粗分後f中的每乙個元素
word=;
words={};
k=1;
for i=1:length(f) %遍歷f
sentence=cell2mat(f(i,1)); %把cell轉換成字串
sentence_len=length(sentence); %求出句長
meet=0; %更新初始狀態
if(sentence_len>0) %有效句
maxlen=min(maxlen,sentence_len);
while(maxlen>0)
start=1;
while((start+maxlen)<=sentence_len) %索引不能移動到句子外面
word=sentence(start:start+maxlen);
if(ismember(word,dict))%如果匹配成功
meet=1;
words(k)=cellstr(word);
k=k+1;
start=start+maxlen; %移動maxlen個單位再匹配
else
start=start+1; %移動乙個單位再匹配
endend
%已經移動到句子外面了
if(meet==0)
maxlen=maxlen-1;
else
break;
endend
end%無效句,句長為0,不處理,直接跳過
end%% 排序處理
rank = tabulate(words); %rank是三列向量,包括名稱,出現次數和百分比
ans=sortrows(rank,-2); %只根據第二列進行排序 -2表示降序
xlswrite('resultschinese',ans(1:50,1:3));%輸出為excel檔案 由於詞語將近1777個,因此只輸出前100個
end
英文詞頻統計
詞頻統計預處理 將所有,等分隔符全部替換為空格 將所有大寫轉換為小寫 生成單詞列表 生成詞頻統計 排序排除語法型詞彙,代詞 冠詞 連詞 輸出詞頻最大top10 word lately,i ve been,i ve been losing sleep dreaming about the things...
Python 《Hamlet》哈姆雷特英文詞頻統計
關鍵問題 1 詞語 鍵 2 相同詞語的累加 值 討論 定義什麼資料型別 字典型別 問題描述 i 檔案的輸入 p 採用字典型別的結構統計詞語出現的頻率 o 每個單詞及單詞出現的次數 要求輸出前10個 ipo細化 第一步 1 txt檔案讀取 txt.read filename r 2 檔案大小寫的轉換 ...
中文詞頻統計
2.從檔案讀取待分析文字。3.安裝並使用jieba進行中文分詞。4.更新詞庫,加入所分析物件的專業詞彙。5.生成詞頻統計 排序 排除語法型詞彙,代詞 冠詞 連詞等停用詞 輸出詞頻最大top20,把結果存放到檔案裡 源 import jieba fo open r d 三體.txt encoding ...