中英文词频统计(MATLAB)

更新时间:2023-05-10 21:41:28 阅读: 评论:0

中英⽂词频统计(MATLAB)
中英⽂词频统计(MATLAB)
1. 英⽂词频统计
英⽂词频统计很简单,只需借助split断句,再统计即可。
完整MATLAB代码:
function wordcount
%思路:中⽂词频统计涉及到对“词语”的判断,需要导⼊词典或编写判断规则,很复杂。
%最简单的办法是直接统计英⽂词频,并由空格直接划分词语。然后再翻译即可得到中⽂词频。
%从官⽅⽹站上下载的pdf,转成,存到workspace进⾏操作全⽂共25003个字符。
clc;
clear;
report=fileread(''); %读⼊全⽂
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
2. 中⽂词频统计
中⽂词频统计相对复杂⼀些。关键在于:
使⽤合适的语料库
从长到短,匹配词语。⽐如句中出现了“计算机”三字词,我们应该将三个字视为⼀个词,⽽不能把“计算”当做⼀个词。function wordcountchine
clc;
clear;
report=fileread(''); %读⼊中⽂报告,事先已放在⼯作区
%% dictionary.mat是⼀个我事先准备好的列向量
%其中dict是14636*1的字典列向量,从⽹上下载的官⽅语料库转换得到的
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是终⽌信号。
%% 最⼤匹配法进⼀步分词
ntence=[]; %是粗分后F中的每⼀个元素
word=[];
words={};
k=1;
for i=1:length(F) %遍历F
ntence=cell2mat(F(i,1)); %把cell转换成字符串
ntence_len=length(ntence); %求出句长
meet=0; %更新初始状态
if(ntence_len>0) %有效句
maxlen=min(Maxlen,ntence_len);
while(maxlen>0)
start=1;
while((start+maxlen)<=ntence_len)  %索引不能移动到句⼦外⾯
word=ntence(start:start+maxlen);
if(ismember(word,dict))%如果匹配成功
meet=1;
words(k)=cellstr(word);
k=k+1;
start=start+maxlen; %移动maxlen个单位再匹配
el
start=start+1; %移动⼀个单位再匹配
end
end
%已经移动到句⼦外⾯了
if(meet==0)
maxlen=maxlen-1;
el
break;
end
end
end
%⽆效句,句长为0,不处理,直接跳过
end
%% 排序处理
rank = tabulate(words); %rank是三列向量,包括名称,出现次数和百分⽐
ANS=sortrows(rank,-2); %只根据第⼆列进⾏排序 -2表⽰降序
xlswrite('resultschine',ANS(1:50,1:3));%输出为excel⽂件由于词语将近1777个,因此只输出前100个end
⼗九⼤中⽂版报告统计结果:

本文发布于:2023-05-10 21:41:28,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/880665.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:统计   词频   匹配   空格   长度
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图