做中文分词需要一个好的词库,网上收集的这些都基本不更新,没有办法,只有自己抓取百科中的词条了。但是百科中有300多万词条,要全部抓取下来把其中的优质词条摘录出来并非易事。
抓取用 httpclient 应该就够了
<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.1</version> </dependency>
解析用htmlclener 就够了
<dependency> <groupId>net.sourceforge.htmlcleaner</groupId> <artifactId>htmlcleaner</artifactId> <version>2.2</version> </dependency>
这两个都比较简单,自己看例子基本就够了,本文不对程序进行说明。
如果通过百科的开放分类浏览 进行抓取,估计抓取不了多少词条,因为它一个分类下最多显示70页,每页10条,那么每个分类下就是最多700个,并且这中间还有好多词条存在着一个词条多个分类。 这样也就抓取20w左右。也可以通过网上搜集一个词库,判断是否在百科中存在,存在的话,然后标识为百科存在的词条。
有了初始的百科存在的词库后,可以抓取如 “杨幂” http://baike.baidu.com/view/3871.htm 词条内容中的链接,来发现新的词条,这样逐步递归抓取,估计就能抓取100w左右的词条。
对这100w词条的质量评价,可以采用其中的浏览次数来进行评价,相对来说,浏览次数越高的词条,质量会越高些。
如“杨幂”抓取http://baike.baidu.com/api/lemmacnt/3871
结果:
{ id:"3871" ,rec:159244,pv:25849568,dynamic:1}
看看浏览次数超过1000万的词条,看看你知道多少呢? 看看大家都浏览啥了呢 :)
词条 | 浏览次数 百度百科 | 67496706 人 体 艺 术 | 37800763 杨幂 | 25817907 刘诗诗 | 19689914 名侦探柯南 | 17797786 苍 井 空 | 17193210 火影忍者 | 16955751 宫锁心玉 | 16049276 武艺 | 15985239 海贼王 | 15228379 世界杯 | 15200958 美人心计 | 14922687 LadyGaGa | 14325821 做 爱 | 13567149 刘德华 | 13411785 张翰 | 13384729 黄 色 网 站 | 13198032 死神 | 12910455 周杰伦 | 12855770 郑爽 | 12613402 许嵩 | 12187258 少女时代 | 11511218 4月16日 | 11253472 性 交 | 11138734 回家的诱惑 | 10887614 黎姿 | 10795131 暮光之城 | 10696633 张杰 | 10652092 刘亦菲 | 10536571 守护甜心 | 10433227 胡歌 | 10397058 李小龙 | 10296313 淘宝网 | 10275490 毛 泽 东 | 10237730 2ne1 | 10186473 步步惊心 | 10076771