前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自然语言处理——词频统计

自然语言处理——词频统计

作者头像
生信交流平台
发布2020-08-06 11:38:05
1.5K0
发布2020-08-06 11:38:05
举报

今天碰到一个自然语言处理相关的问题,题目如下。

这里小编分别用了三种编程语言来处理这个问题,分别是RperlPython

1.R

#要统计词频的段落
para='This is a test. Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Now is better than never. Is this a complex thing?'
#将.和?替换成空,然后转成小写
para_sub=tolower(gsub("\\.|\\?","",para))

#按照空格分词,统计词频
count=sort(table(unlist(strsplit(para_sub," "))),decreasing = T)
#保留出现一次以上的单词,作为关键词
keys=count[count>1]
#统计关键词的长度
keylen=sum(nchar(names(keys))*as.numeric(keys))
#统计关键词占整段文字的百分比
percent=keylen/nchar(para)

2.Perl

#!/usr/bin/perl  
$para='This is a test. Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Now is better than never. Is this a complex thing?';
$para_sub=$para;
#将.和?替换成空,
$para_sub=~s/\.|\?//g;
#转成小写
$para_sub=lc($para_sub);
#分词
my @array=split " ",$para_sub;

#统计词频
foreach $word (@array){
 $hash{$word}++;
}

#计算关键词的总长度
foreach $i (sort {$hash{$b}<=>$hash{$a}} keys %hash){
 if($hash{$i}>1){
  print "$i\t$hash{$i}\n";
  $key_len+=length($i)*$hash{$i};
 }
}

#统计关键词占整段文字的百分比
$percent=$key_len/length($para);
$percent=sprintf("%.4f",$percent);
print "keyword percent: $percent";

3.Python

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信交流平台 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档