首页 > 代码库 > [nlp相关] ansj-seg初探

[nlp相关] ansj-seg初探

最近又要做文本方面的处理,由于需求的定制化较高,还可能要放到集群上使用,所以不能再用公司封得严严密密、又笨又重的分词组件了。

于是再次在网上找了一下能下载的分词工具,

开源的:mmseg、IK_Analyzer、imdict、paoding、jcseg、free_ictclas、fnlp

闭源的:NLPIR、stanford-chinese-segmenter、盘古分词

简单比较了一下,ansj-seg的分词效果相对是比较出色的,而且是开源的,方便根据需要进行调整。尤其值得称道的是:

ansj-seg把分词、词性标注、新词发现、关键词提取这些功能的接口,都抽取出来了,方便我们选择其中一部分使用,这点尤其在处理大数据量的时候至关重要。

下面,简单记录一下对ansj的初步认识。

 

一、ansj-seg的功能

看一个开源项目,一般是从demo出发,扫了一遍10几个demo,里面提到ansj-seg可以做的事有:

1、分词

1)ngram模型分词

2)crf模型分词(ansj-seg的标准分词)

3)nlp分词(把未登录词识别揉进分词过程,除了有明确规则的人名识别挺准,其余的准确性不足,效率也有所下降)

3)所有可能性的分词(为搜索做的分词)

 

附带的预处理工具

a. 繁简转换

b. 部分的全角转半角

 

可定制的内容包括:

a. 自定义词典(可指定 频率、词性,以及是否用户词典优先)

b. 自定义歧义词组

c. 自定义停用词,及指定词性做停用词过滤

 

2、词性标注

用的应该是HMM模型。

特别的,可以对自己给定的词划分结果,进行词性标注。

 

3、关键词提取

主要是靠各词性初始权重,标题词权重加倍,再结合词在文中出现位置和频率调整后,得出每个次的评分。

 

4、摘要提取(效果很一般)

依赖关键词提取结果。

滑动的指定文字长度的窗口,对窗口内各个句子权重求和,取出权重和最大的窗口,作为摘要输出。

句子权重主要看句子的包含的关键词和句子位置。

窗口滑动时,每次的开始是每句话的开始处,截断位置由指定的文字长度决定。

 

5、新词发现(含人名、地名、机构名)

没有细看,效果较好的人名、地名等,应该是按规则识别的。就是按统计规律总结出,词头、中间字和词尾的常见字,然后将句子的各个切片与之匹配,进而发现可能的词,再结合消歧处理,决定最后分词时是否使用该新词。

同时,会统计新词出现的频率,给出排序。

 

6、词标注

就是在文本中,找到给定的若干个词,在这些词开始和结尾处打上标记。

 

二、各项功能的效果

例子一:

原始文本:

由于霍华德、阿尔德里奇(微博)和波什都因伤退出,内线又一次成为美国男篮的问题,以目前球队的大名单,两大内线钱德勒和勒夫出战奥运几乎可以确定。科朗吉洛接受福克斯体育的电话采访时明确表示奥运阵容已确认9人。2008年北京奥运夺冠的科比、詹姆斯、安东尼、保罗和德隆肯定亮相伦敦,2010年世锦赛上帮助球队夺冠的杜兰特、威斯布鲁克、勒夫和钱德勒也会入选奥运名单。

 

1、ngram模型分词(简单分词)

由于/c, 霍/j, 华/j, 德/j, 、/w, 阿/j, 尔/nr, 德里/ns, 奇/ag, (, 微博/n, ), 和/c, 波/j, 什, 都/d, 因/p, 伤/v, 退出/v, ,/w, 内线/n, 又/d, 一/m, 次/q, 成为/v, 美国/ns, 男篮/n, 的/uj, 问题/n, ,/w, 以/p, 目前/t, 球队/n, 的/uj, 大/a, 名单/n, ,/w, 两/m, 大/a, 内线/n, 钱/n, 德/j, 勒/v, 和/c, 勒/v, 夫/ng, 出战/v, 奥运/j, 几乎/d, 可以/v, 确定/v, 。/w, 科/n, 朗/nr, 吉/j, 洛/j, 接受/v, 福/n, 克/q, 斯/rg, 体育/n, 的/uj, 电话/n, 采访/v, 时/ng, 明确/ad, 表示/v, 奥运/j, 阵容/n, 已/d, 确认/v, 9/m, 人/n, 。/w, 2008/m, 年/q, 北京/ns, 奥运/j, 夺冠/v, 的/uj, 科/n, 比/p, 、/w, 詹/nr, 姆/x, 斯/rg, 、/w, 安/v, 东/f, 尼/j, 、/w, 保/v, 罗/j, 和/c, 德/j, 隆/ag, 肯定/v, 亮相/v, 伦敦/ns, ,/w, 2010/m, 年/q, 世锦赛/j, 上/f, 帮助/v, 球队/n, 夺冠/v, 的/uj, 杜/vg, 兰特/q, 、/w, 威/ng, 斯/rg, 布/n, 鲁/j, 克/q, 、/w, 勒/v, 夫/ng, 和/c, 钱/n, 德/j, 勒/v, 也/d, 会/v, 入选/v, 奥运/j, 名单/n, 。/w

 

 

2、单纯的CRF分词

由于, 霍华德, 、, 阿尔德里奇, (, 微博, ), 和, 波什, 都, 因, 伤, 退出, ,, 内线, 又, 一, 次, 成为, 美国, 男篮, 的, 问题, ,, 以, 目前, 球队, 的, 大, 名单, ,, 两, 大, 内线, 钱德勒, 和, 勒夫, 出战, 奥运, 几乎, 可以, 确定, 。, 科朗, 吉洛, 接受, 福克斯, 体育, 的, 电话, 采访, 时, 明确, 表示, 奥运, 阵容, 已, 确认, 9, 人, 。, 2008年, 北京, 奥运, 夺冠, 的, 科比, 、, 詹姆斯, 、, 安东尼, 、, 保罗, 和, 德隆, 肯定, 亮相, 伦敦, ,, 2010年, 世锦赛, 上, 帮助, 球队, 夺冠, 的, 杜兰特, 、, 威斯布鲁克, 、, 勒夫, 和, 钱德勒, 也, 会, 入选, 奥运, 名单, 。

 

3、标准分词

由于/c, 霍华德/nrf, 、/w, 阿尔/nr, 德里奇/nrf, (, 微博/n, ), 和/c, 波/j, 什, 都/d, 因/p, 伤/v, 退出/v, ,/w, 内线/n, 又/d, 一次/m, 成为/v, 美国/ns, 男篮/n, 的/uj, 问题/n, ,/w, 以/p, 目前/t, 球队/n, 的/uj, 大/a, 名单/n, ,/w, 两/m, 大/a, 内线/n, 钱德勒/nr, 和/c, 勒夫/nrf, 出战/v, 奥运/j, 几乎/d, 可以/v, 确定/v, 。/w, 科朗吉/nr, 洛/j, 接受/v, 福克斯/nr, 体育/n, 的/uj, 电话/n, 采访/v, 时/ng, 明确/ad, 表示/v, 奥运/j, 阵容/n, 已/d, 确认/v, 9/m, 人/n, 。/w, 2008年/m, 北京奥运/nz, 夺冠/v, 的/uj, 科比/nrf, 、/w, 詹姆斯/nr, 、/w, 安东尼/nr, 、/w, 保罗/nrf, 和/c, 德隆/nrf, 肯定/v, 亮相/v, 伦敦/ns, ,/w, 2010年/m, 世锦赛/j, 上/f, 帮助/v, 球队/n, 夺冠/v, 的/uj, 杜兰特/nr, 、/w, 威/nr, 斯布鲁克/nrf, 、/w, 勒夫/nrf, 和/c, 钱德勒/nr, 也/d, 会/v, 入选/v, 奥运/j, 名单/n, 。/w

 

4、NLP分词

由于/c, 霍华德/nrf, 、/w, 阿尔德里奇/nrf, (, 微博/n, ), 和/c, 波什/nw, 都/d, 因/p, 伤/v, 退出/v, ,/w, 内线/n, 又/d, 一次/m, 成为/v, 美国/ns, 男篮/n, 的/uj, 问题/n, ,/w, 以/p, 目前/t, 球队/n, 的/uj, 大/a, 名单/n, ,/w, 两/m, 大/a, 内线/n, 钱德勒/nrf, 和/c, 勒夫/nrf, 出战/v, 奥运/j, 几乎/d, 可以/v, 确定/v, 。/w, 科朗/nrf, 吉洛/nrf, 接受/v, 福克斯/nrf, 体育/n, 的/uj, 电话/n, 采访/v, 时/ng, 明确/ad, 表示/v, 奥运/j, 阵容/n, 已/d, 确认/v, 9/m, 人/n, 。/w, 2008年/m, 北京奥运/nz, 夺冠/v, 的/uj, 科比/nrf, 、/w, 詹姆斯/nrf, 、/w, 安东尼/nrf, 、/w, 保罗/nrf, 和/c, 德隆/nrf, 肯定/v, 亮相/v, 伦敦/ns, ,/w, 2010年/m, 世锦赛/j, 上/f, 帮助/v, 球队/n, 夺冠/v, 的/uj, 杜兰特/nrf, 、/w, 威斯布鲁克/nrf, 、/w, 勒夫/nrf, 和/c, 钱德勒/nrf, 也/d, 会/v, 入选/v, 奥运/j, 名单/n, 。/w

 

5、新词发现

钱德勒=-70.00167950987816, 霍华德=-23.073439795523882, 詹姆斯=-20.529679690720513, 杜兰特=-18.875580015825108, 福克斯=-18.840360164642334, 阿尔德里奇=-16.496050003450364, 安东尼=-13.776639767922461, 威斯布鲁克=-13.002849930897355, 勒夫=-7.199419766664505, 科朗=-4.013649968896061, 吉洛=-3.8355100229382515, 德隆=-3.6340699438005686, 保罗=-2.926809959113598, 波什=-2.7501399656757712, 科比=-2.45116000296548

 

例子二:

原始文本:

title = "李克强在博鳌会见台湾两岸共同市场基金会代表团"content = "4月1日,中共中央政治局常委、国务院副总理李克强在海南省博鳌会见前来出席博鳌亚洲论坛2012年年会的台湾两岸共同市场基金会代表团名誉团长吴敦义一行。新华社记者 饶爱民 摄        新华社海南博鳌4月1日电(记者李寒芳、周正平)中共中央政治局常委、国务院副总理李克强1日上午在海南省博鳌会见了前来出席博鳌亚洲论坛2012年年会的台湾两岸共同市场基金会代表团名誉团长吴敦义一行,表示同胞相见,朋友相识,都是令人愉悦的事。他强调,当前两岸关系又迎来发展的新机遇,面临着继往开来的新形势。希望两岸各界进一步携手合作,增进相互信任,厚植共同利益,融洽同胞感情,不断推动两岸关系向前迈进。两岸双方应共同努力,促进两岸经济合作在新的起点上开拓创新,更好地适应两岸经济发展的要求,更多地让两岸广大民众共享和平发展成果。    李克强表示,不久前胡总书记会见中国国民党荣誉主席吴伯雄时,全面阐述了我们在新形势下持续推动两岸关系发展的基本思路。我们将巩固反对“台独”、认同“九二共识”的共同政治基础,继续贯彻推动两岸关系和平发展的各项方针政策,不断开创两岸关系和平发展的新局面。    李克强强调,两岸同胞同属中华民族,两岸经济同属中华民族经济。进一步深化两岸经济合作,有利于促进两岸共同发展、造福两岸同胞。一是抓紧推动ECFA后续协商,力争尽早签署两岸投资保护和促进协议,推动其它商谈取得实质性进展。二是加快推进两岸金融领域合作。采取积极措施,尽快启动商议建立两岸货币清算机制,推进两岸银行、证券、保险业建立并完善监管合作机制。三是大力加强两岸产业合作,共同推动产业结构优化升级。我们鼓励和支持有条件的大陆企业赴台投资,期望台湾方面为此提供必要的环境和公平的条件。    李克强表示,我们将继续支持大陆台资企业的发展,更加注重协助他们在大陆转方式、调结构中更好地拓展大陆内需市场。对台资企业一视同仁,重视维护好他们的正当权益,及时解决他们遇到的问题。我们会在两岸关系改善发展的进程中,继续面向包括中小企业和农渔业者在内的台湾基层民众,多了解他们的愿望,多为他们办实事,使更多的台湾民众从中受益。    李克强指出,两岸还应继续推动其他领域的交流合作。我们欢迎并支持年内新增10个大陆居民赴台个人旅游试点城市,这将有利于增进两岸同胞相互了解,促进台湾旅游业发展。    吴敦义表示,过去四年两岸关系走上了和平稳定发展的正确道路,台湾局势摆脱了动荡,两岸在“九二共识”基础上的协商迄今达成16项协议,两岸经济在全球经济不景气的形势下实现了稳步发展。两岸关系和平发展的局面值得共同珍惜和巩固。他对这次会见双方就加快ECFA后续协商、建立两岸货币清算机制等一系列合作事项达成一致感到高兴,期望双方秉持求同存异、两岸和平、讲信修睦、民生优先的理念,进一步扩大交流,务实协商,加强合作,为两岸人民谋福祉,为中华民族谋繁荣,为炎黄子孙开盛世。"

 

6、关键词提取

两岸/257.889648496265, 李克强/193.41819454047197, 博鳌/184.21217008870443, 台湾/110.52451645248253, 发展/108.67930532479578, 两岸关系/86.72762752351414, 合作/80.82411736987355, 基金会/64.47241212406624, 代表团/64.47241212406624, 经济/62.02229612630309

 

7、摘要(300字)

4月1日,中共中央政治局常委、国务院副总理李克强在海南省博鳌会见前来出席博鳌亚洲论坛2012年年会的台湾两岸共同市场基金会代表团名誉团长吴敦义一行。新华社记者饶爱民摄 新华社海南博鳌4月1日电(记者李寒芳、周正平)中共中央政治局常委、国务院副总理李克强1日上午在海南省博鳌会见了前来出席博鳌亚洲论坛2012年年会的台湾两岸共同市场基金会代表团名誉团长吴敦义一行,表示同胞相见,朋友相识,都是令人愉悦的事。他强调,当前两岸关系又迎来发展的新机遇,面临着继往开来的新形势。希望两岸各界进一步携手合作,增进相互信任,厚植共同利益,融洽同胞感情,不断推动两岸关系向前迈进。两岸双方应共同努力,促进两岸经济合作在新的

 

8、对摘要进行词标注

4月1日,中共中央政治局常委、国务院副总理<begin>李克强<end>在海南省<begin>博鳌<end>会见前来出席<begin>博鳌<end>亚洲论坛2012年年会的<begin>台湾<end><begin>两岸<end>共同市场<begin>基金会<end><begin>代表团<end>名誉团长吴敦义一行。新华社记者饶爱民摄 新华社海南<begin>博鳌<end>4月1日电(记者李寒芳、周正平)中共中央政治局常委、国务院副总理<begin>李克强<end>1日上午在海南省<begin>博鳌<end>会见了前来出席<begin>博鳌<end>亚洲论坛2012年年会的<begin>台湾<end><begin>两岸<end>共同市场<begin>基金会<end><begin>代表团<end>名誉团长吴敦义一行,表示同胞相见,朋友相识,都是令人愉悦的事。他强调,当前<begin>两岸关系<end>又迎来<begin>发展<end>的新机遇,面临着继往开来的新形势。希望<begin>两岸<end>各界进一步携手<begin>合作<end>,增进相互信任,厚植共同利益,融洽同胞感情,不断推动<begin>两岸关系<end>向前迈进。<begin>两岸<end>双方应共同努力,促进<begin>两岸<end><begin>经济<end><begin>合作<end>在新的

 

 

-------------------------------

相关资源:

1、ansj-seg的简要说明: http://nlpchina.github.io/ansj_seg/

2、多种分词器的介绍:http://www.scholat.com/vpost.html?pid=4482

3、部分算法分析:http://www.abyssss.com/?p=177

4、NLP学习网站:http://www.52nlp.cn/

[nlp相关] ansj-seg初探