文档章节

利用word分词来对文本进行词频统计

杨尚川
 杨尚川
发布于 2015/05/21 13:27
字数 420
阅读 4899
收藏 2

word分词中的 org.apdplat.word.WordFrequencyStatistics 类提供了词频统计的功能

命令行脚本的调用方法如下:

将需要统计词频的文本写入文件:text.txt
chmod +x wfs.sh & wfs.sh -textFile=text.txt -statisticsResultFile=statistics-result.txt
程序运行结束后打开文件statistics-result.txt查看词频统计结果

在程序中的调用方法如下:

//词频统计设置
WordFrequencyStatistics wordFrequencyStatistics = new WordFrequencyStatistics();
wordFrequencyStatistics.setRemoveStopWord(false);
wordFrequencyStatistics.setResultPath("word-frequency-statistics.txt");
wordFrequencyStatistics.setSegmentationAlgorithm(SegmentationAlgorithm.MaxNgramScore);
//开始分词
wordFrequencyStatistics.seg("明天下雨,结合成分子,明天有关于分子和原子的课程,下雨了也要去听课");
//输出词频统计结果
wordFrequencyStatistics.dump();
//准备文件
Files.write(Paths.get("text-to-seg.txt"), Arrays.asList("word分词是一个Java实现的分布式中文分词组件,提供了多种基于词典的分词算法,并利用ngram模型来消除歧义。"));
//清除之前的统计结果
wordFrequencyStatistics.reset();
//对文件进行分词
wordFrequencyStatistics.seg(new File("text-to-seg.txt"), new File("text-seg-result.txt"));
//输出词频统计结果
wordFrequencyStatistics.dump("file-seg-statistics-result.txt");

第一句话的词频统计结果:

1、下雨 2
2、明天 2
3、分子 2
4、课程 1
5、听课 1
6、结合 1
7、原子 1
8、去 1
9、成 1
10、关于 1
11、和 1
12、也要 1
13、有 1
14、的 1
15、了 1

第二句话的词频统计结果:

1、分词 2
2、的 2
3、基于 1
4、word 1
5、组件 1
6、词典 1
7、ngram 1
8、多种 1
9、实现 1
10、并 1
11、利用 1
12、消除歧义 1
13、中文分词 1
14、算法 1
15、是 1
16、分布式 1
17、了 1
18、提供 1
19、模型 1
20、来 1
21、一个 1
22、Java 1



© 著作权归作者所有

杨尚川

杨尚川

粉丝 1100
博文 220
码字总数 1624053
作品 12
东城
架构师
私信 提问
加载中

评论(4)

g
gingguo

引用来自“易水寒2015”的评论

在ubuntu下,运行以上代码报空指针异常,后改./text-seg-result.txt可以正常运行了,应该是针对windows平台的没有找到/所以报空针针异常
感谢
杨尚川
杨尚川 博主

引用来自“王超波”的评论

词频统计结果可以在代码中返回吗? 为什么只能写入指定文件呢?比如返回前N个出现频率的词语和出现次数
你要用的话,把https://github.com/ysc/word/blob/master/src/main/java/org/apdplat/word/WordFrequencyStatistics.java 类改造一下,改成你想要的即可。
王超波
王超波
词频统计结果可以在代码中返回吗? 为什么只能写入指定文件呢?比如返回前N个出现频率的词语和出现次数
易水寒2015
在ubuntu下,运行以上代码报空指针异常,后改./text-seg-result.txt可以正常运行了,应该是针对windows平台的没有找到/所以报空针针异常
ROST-CM软件分词和词频统计用法体验

前面的文章我们专门讲过,为了给没有深厚的计算机基础的研究者使用,GooSeeker分词工具在开发过程中,参考学习了多个优秀的分词软件,其中就有ROST-CM内容挖掘软件。本文专门针对分词这一个功...

华天清
2018/05/29
0
0
中文文本相似度---项目实践

由于下定决心开始攻克机器学习。辗转反侧,又是折腾线性代数,又是折腾概率论。然后又看了大学时候的高等数学。弄了大半天。不过今天还好有了收获,把思路进行罗列出来,与大家分享。 数学知...

Galy_绿
2016/07/31
28
0
Java分布式中文分词组件--word

word分词是一个Java实现的分布式的中文分词组件,提供了多种基于词典的分词算法,并利用ngram模型来消除歧义。能准确识别英文、数字,以及日期、时间等数量词,能识别人名、地名、组织机构名...

杨尚川
2014/04/26
6.6K
1
word 集成 lucene 分词问题

@杨尚川 你好,想跟你请教个问题: //如何在集成luncue6.3.0时,在构造索引的同时,就进行分词词频统计,另外如何保存文本读取每一行的分词结果 + 词频 //如下为我的代码: FieldType ft=new...

狂拽炫酷小灰灰
2017/01/04
91
1
word v1.3 发布,Java 分布式中文分词组件

word 分词是一个Java实现的分布式的中文分词组件,提供了多种基于词典的分词算法,并利用ngram模型来消除歧义。能准确识别英文、数字,以及日期、时间等数量词,能识别人名、地名、组织机构名...

杨尚川
2015/08/29
4.5K
0

没有更多内容

加载失败,请刷新页面

加载更多

GMTC2019|闲鱼-基于Flutter的架构演进与创新

2012年应届毕业加入阿里巴巴,主导了闲鱼基于Flutter的新混合架构,同时推进了Flutter在闲鱼各业务线的落地。未来将持续关注终端技术的演变及趋势 Flutter的优势与挑战 Flutter是Google开源的...

阿里云官方博客
12分钟前
0
0
ubuntu安装软件 报错:下列软件包有未满足的依赖关系

ubuntu安装软件,一直出现以下错误,还纳闷为毛都和 lksctp-tools 有关,上网差发现可能是 lksctp-tools安装错误。 pvc@pvc-Vostro-3650:~$ sudo apt-get install libnet1-dev 正在读取软件包...

琴麻岛
13分钟前
0
0
GMTC2019|闲鱼-基于Flutter的架构演进与创新

2012年应届毕业加入阿里巴巴,主导了闲鱼基于Flutter的新混合架构,同时推进了Flutter在闲鱼各业务线的落地。未来将持续关注终端技术的演变及趋势 Flutter的优势与挑战 Flutter是Google开源的...

zhaowei121
15分钟前
0
0
一段话系列-在抢购秒杀中,如何解决Redis读写分离带来的,主从同步延迟问题?

在抢购秒杀中,我们将数据缓存在Redis中,Redis我们为了提高QPS,使用了读写分离的架构,随之而来的便是主从同步延迟问题;在这里,我认为针对于主从同步延迟问题是不可避免的,我给出的解决...

EasyProgramming
16分钟前
0
0
linux sudo java : command not found

运行sudo java -version报错 [admin@localhost xxx]$ sudo java -version sudo: java: command not found 原因: 当使用sudo去执行一个程序时,处于安全的考虑,这个程序将在一个新的、最小化...

朝如青丝暮成雪
20分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部