简单易用的分词器分享,使用jieba分词java版(支持中文)实现。
统计文章高频关键词
比如我有一篇文章,我要统计文章中出现词语频率最高的前5名
分析一句话或者一段话中词语出现的次数
提取词语
…
由于这里我们考虑使用中文分词器,所以一些特定词语也需要能够支持识别,例如赛博朋克等新兴词语。另外一些介词或者语气助词最好不在统计范围内,比如的,地,得…
并且还有一个特点,就是在较短的时间内能够分析出结果。
结合以上难点的分析,我们接下来使用开源的jieba分词进行实现。首先最开始这是一个python实现版本,源仓库:https://github.com/fxsjy/jieba
后来在团队huaban的改进下,支持了java版本,再到后来由于huaban团队停止了维护,就由Xinyao Qian个人开发经手维护开发,源仓库:https://github.com/huaban/jieba-analysis
使用方法很简单,源码示例:
public static void main(String[] args)
{
String content="孩子上了幼儿园 安全防拐教育要做好";
int topN=5;
TFIDFAnalyzer tfidfAnalyzer=new TFIDFAnalyzer();
List<Keyword> list=tfidfAnalyzer.analyze(content,topN);
for(Keyword word:list){
// 防拐:0.1992,幼儿园:0.1434,做好:0.1065,教育:0.0946,安全:0.0924
System.out.print(word.getName()+":"+word.getTfidfvalue()+",");
}
}
通过分析词语出现频率就能够满足计算出高频词等需求。
同时还能够配置停用词stop_words.txt以及自定义词库idf_dict.txt。
我们站在巨人的肩膀上,所以能看的更远,致敬前辈。
参考资料: