背景

因为文本内容里面,需要提取出关键词给到seo作关键词。

同时内容是中文的,需要找个对应的中文分词和提取工具。

ansj

根据官方介绍,感觉还是比较厉害的样子。

官方说明:

这是一个基于n-Gram+CRF+HMM的中文分词的java实现。

分词速度达到每秒钟大约200万字左右(mac air下测试),准确率能达到96%以上。

目前实现了中文分词、中文姓名识别、用户自定义词典、关键字提取、自动摘要、关键字标记等功能。

可以应用到自然语言处理等方面,适用于对分词效果要求高的各种项目。

上手试用

maven

<dependency>
    <groupId>org.ansj</groupId>
    <artifactId>ansj_seg</artifactId>
    <version>5.1.1</version>
</dependency>

然后传入文本进行调用。调用代码只有以下两行

//设置关键词数量
KeyWordComputer kwc = new KeyWordComputer(5);
 //文本抽取关键字。title是标题;content文本
 Collection<Keyword> result = kwc.computeArticleTfidf(title, content);

提取例子

/**
	 * 关键词提取的例子
	 * @author ansj
	 *
	 */
	public class KeyWordCompuerDemo {
	public static void main(String[] args) {
		KeyWordComputer kwc = new KeyWordComputer(5);
		String title = "维基解密否认斯诺登接受委内瑞拉庇护";
		String content = "有俄罗斯国会议员,9号在社交网站推特表示,美国中情局前雇员斯诺登,已经接受委内瑞拉的庇护,不过推文在发布几分钟后随即删除。俄罗斯当局拒绝发表评论,而一直协助斯诺登的维基解密否认他将投靠委内瑞拉。  俄罗斯国会国际事务委员会主席普什科夫,在个人推特率先披露斯诺登已接受委内瑞拉的庇护建议,令外界以为斯诺登的动向终于有新进展。  不过推文在几分钟内旋即被删除,普什科夫澄清他是看到俄罗斯国营电视台的新闻才这样说,而电视台已经作出否认,称普什科夫是误解了新闻内容。  委内瑞拉驻莫斯科大使馆、俄罗斯总统府发言人、以及外交部都拒绝发表评论。而维基解密就否认斯诺登已正式接受委内瑞拉的庇护,说会在适当时间公布有关决定。  斯诺登相信目前还在莫斯科谢列梅捷沃机场,已滞留两个多星期。他早前向约20个国家提交庇护申请,委内瑞拉、尼加拉瓜和玻利维亚,先后表示答应,不过斯诺登还没作出决定。  而另一场外交风波,玻利维亚总统莫拉莱斯的专机上星期被欧洲多国以怀疑斯诺登在机上为由拒绝过境事件,涉事国家之一的西班牙突然转口风,外长马加略]号表示愿意就任何误解致歉,但强调当时当局没有关闭领空或不许专机降落。";
			Collection<Keyword> result = kwc.computeArticleTfidf(title, content);
				System.out.println(result);
		}
	}

参考:https://github.com/NLPchina/ansj_seg/wiki/%E5%85%B3%E9%94%AE%E8%AF%8D%E6%8A%BD%E5%8F%96https://github.com/NLPchina/ansj_seg/wiki/%E5%85%B3%E9%94%AE%E8%AF%8D%E6%8A%BD%E5%8F%96

总结

这个关键词抽取是个附带的功能,它主要还是分词