当前位置:首页 > 开发 > 开源软件 > 正文

ictcals中文分词添加用户词典功能说明

发表于: 2013-07-03   作者:cjp1989   来源:转载   浏览次数:
摘要: 对于上篇博客的标题,其实内容也就是添加用户词典。我使用的是java版本调用dll。在这里重写一篇博客是为了说明一下最近在使用过程中发现的问题,以及说下自己的感想!如果不懂如何在java版本中添加新词功能请看:可以写批量加入新词方法。 中科院分词系统 ICTCLAS2013 添加新词功能,     1.网上下载的版本,基本分词功能很好,分词速度很快,在未人工添加

对于上篇博客的标题,其实内容也就是添加用户词典。我使用的是java版本调用dll。在这里重写一篇博客是为了说明一下最近在使用过程中发现的问题,以及说下自己的感想!如果不懂如何在java版本中添加新词功能请看:可以写批量加入新词方法。

中科院分词系统 ICTCLAS2013 添加新词功能

 

  1.网上下载的版本,基本分词功能很好,分词速度很快,在未人工添加词典的情况下,处理30G的数据,无错误情况,基本一天搞定。

 

 2.对于短文本,用于微博内容分析,很多关键词会出现分词不准,如:"校长开房", “校车事故”等短文本的词(开房,校车),本应该是在一起的。

 

3.关于添加用户词典功能,NLPIR_AddUserWord(byte[]),再使用NLPIR_SaveTheUsrDic(),永久保存用户词典。特别要说明的就是这个添加的词

 

 4. 由于不晓得哪些词可以添加,我们就拿百科的词条来进行添加。这里使用的互动百科词条,说明下,互动百科词条太不规范了!如果是硬性添加的话,分词系统肯定出问题我试过加入:20万个词,处理小量的微博文本数据基本没问题,但是对于GB以上的,分词到了800M左右就出问题。后来为了测试能够添加多少,一次性加入了百万级的词作为用户词典,处理微博依然很好,但是对于大文本数据,就直接错误。

 

 5.为了找出原因,就把我的想法说给同事听,想一起讨论下,我当然是努力发挥我的想象力去极力的猜测原因,而有的同事,大批特批了我的想法说不懂原理就不要来妄加猜测!他说出了一句:程序员最忌讳的就是猜问题原因,80%是越猜越错,越错越猜...他语气盎然的样子,仿佛这就是他的真理!我其实很想争辩的,但想着我是想把解决问题的,就是想跟同事讨论下,要是因为同事的这几句话,来个辩论赛了,这不更加糟糕了!其实心里很想说:你看哥德巴赫猜想,很多伟大的理论,在未知的情况下,不都是前辈们展开了无限次的猜想,最终找到解决方案啊!算了,这句话,也就只能在博客里面说说了。

 

6.为了证实我的猜想,用户词典添加,哪些词不能使用,进行了大量的实验,最终得到的初步论证是:

      (a)含有标点符号的词不要加入到用户词典,比如《时间简史》,"我的" ,杰克·玛丽,等等词语中间夹着着标点。

      (b)中文中有含有英文字母,阿拉伯数字的词,比如  F-16战斗机,宝马740,β-胡萝卜素之类。

       (c)字数太长的不要加入进去,本身就可以拆分成多个,比如:湖南省重点文物保护单位,英国经资产阶级革命  ,这类的词。

 

实际中去除了这些词后,我目前加的词长在2-5个以内,且满足上面的3个条件。还有一个关于:含有中文数字的:一,二,三,四,词,如;一心一意,第三世界,等词,目前我没有去除。而且上面或许又错误的地方,欢迎板砖啊!

 

 7.由于这些词来源于:互动百科,所以出现了很多稀奇古怪的词,造成了在添加用户词典后,无法使用分词系统。所以就产生了我很多的猜测,于是就有了上面我想到的这些规则。读者看了,如果能给大家帮助,那就非常好!对于如何匹配所有标点符号,下次写一篇关于:java正则匹配的感想,里面提到如何匹配。

  

 8. 最后说几句:

 

       (1)程序员更要有猜想精神,虽说80%是错误的,还有20%奇迹会发生,要敢于实践想法

 

       (2)遇到问题如果是跟同事谈论,出现了强烈的反对声,出现争执时,你要立马收回情绪,不去积极辩论,为了营造一个好的工作氛围,你要想你的初衷跟同事讨论是去解决问题的!

 

       (3)分享是学习进步的一个途径,乐于分享,欢迎别人的板砖。

       

 

 

  

 

 

ictcals中文分词添加用户词典功能说明

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
中文分词算法 之 基于词典的逆向最大匹配算法 博客分类: 人工智能 中文分词 逆向最大匹配 基于词典
基于词典的正向最大匹配算法(最长词优先匹配),算法会根据词典文件自动调整最大长度,分词的好坏
在之前的博文中介绍了基于词典的正向最大匹配算法,用了不到50行代码就实现了,然后分析了词典查找
在之前的两篇博文中文分词算法 之 基于词典的正向最大匹配算法和中文分词算法 之 基于词典的逆向最
在之前的博文中介绍了基于词典的正向最大匹配算法,比如我们切分句子: 中华人民共和国万岁万岁万万
在之前的博文中介绍了基于词典的逆向最大匹配算法,比如我们切分句子: 中华人民共和国万岁万岁万万
基于词典的正向最大匹配算法(最长词优先匹配),算法会根据词典文件自动调整最大长度,分词的好坏
在之前的博文中介绍了基于词典的正向最大匹配算法,用了不到50行代码就实现了,然后分析了词典查找
在之前的两篇博文中文分词算法 之 基于词典的正向最大匹配算法和中文分词算法 之 基于词典的逆向最
在之前的博文中介绍了基于词典的正向最大匹配算法,比如我们切分句子: 中华人民共和国万岁万岁万万
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号