对于上篇博客的标题,其实内容也就是添加用户词典。我使用的是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)分享是学习进步的一个途径,乐于分享,欢迎别人的板砖。
相关推荐
在本篇文章中,我们将围绕“baidu.rar_baidu_dictionary_中文分词_中文分词_词典_分词词典”这一主题,深入探讨百度曾经使用的中文分词词典及其在实际应用中的价值。 首先,让我们了解中文分词词典的重要性。词典是...
例如,“分词中文停止词词典.txt”可能包含了诸如“的”、“了”、“和”等中文停止词,而“分词英文停止词词典.txt”则包含“the”、“is”、“and”等英文停止词。 使用这样的词典可以优化NLP任务的性能,尤其是...
在实际应用中,用户可以根据具体需求对词典进行调整,比如添加专业术语、删除不相关的词汇等,以优化分词结果。此外,开源的特性使得开发者能够查看并改进分词算法,进一步提升性能。 在进行自然语言处理项目时,...
jieba分词的自定义词典:使用jieba分词对语料进行分词之前,需要先载入,载入代码为jieba.load_userdict("userdict.txt")。
### 中文分词词典知识点解析 #### 一、引言 中文分词是自然语言处理(NLP)中的一个重要步骤,它将连续的文本序列切分成一个个具有语义意义的词汇单位。一个高质量的分词词典对于提高分词准确率至关重要。本文将...
在使用jiba分词的情况下,使用这个词典有助于提高你的分词准确度,因为这个分词词典包含了众多领域词汇,这些词汇出自某dog的几十个细胞词库。已使用转换器转换成txt,欢迎下载。
中文分词是自然语言处理中的一个基本任务,指的是将连续的汉字序列切分成具有语义意义的词汇序列。中文不同于英文等西方语言,在书写形式上不存在天然的词边界标识(如空格)。因此,中文分词成为进行后续自然语言...
搜索引擎的核心功能是索引和检索大量信息,而有效分词是确保准确匹配用户查询与文档内容的关键步骤。在这里,我们将深入探讨“文本分词词典”以及其在搜索引擎中的应用。 一、文本分词词典 文本分词词典是分词过程...
中文分词源代码,java语言。...代码通过读词典获取数据,进行中文分词。将词典读取的数据利用map去重,然后进行前缀扫面,详情见博客:https://blog.csdn.net/qq_40142391/article/details/82945556#commentsedit
在中文文本处理中,由于汉字没有明显的空格分隔,因此需要借助词典文件来进行有效的分词。这里的压缩包文件包含了三个不同规模的词典和一个标点符号文件,分别用于不同的分词需求。 1. **精简74248个词组**:这个...
将地名全名词典分词获得分词后的地名词典,减少词条数目,增加查找速度。程序用一个中等省会城市测试,模糊查询和精确查询效果都不错。 4、加入地名输入提示的工具。 代码采用C#,为学习成果,尚有很多不完善地方,...
《jieba分词词典大全dict.rar》是一个包含多种分词词典的压缩包,它提供了丰富的中文词汇资源,特别适合进行中文文本处理和分析。jieba是一个著名的Python库,用于中文分词,它在自然语言处理(NLP)领域广泛应用。...
该词典描述的是一些词分析,用于分词,利用给定的中英文文本序列(见 Chinese.txt 和 English.txt),分别利用以下给定的中英文分词工具进行分词并对不同分词工具产生的结果进行简要对比分析。
百度分词词典——常用词词典 自然语言处理分词专用 能够辅助分词,共1876个词。
### 分词词典:现代汉语词典 #### 知识点概述 《分词词典:现代汉语词典》是一部从现代汉语词典中提取出的分词版本,旨在为自然语言处理(NLP)、文本分析等领域提供一个高质量的汉语词汇资源。在计算机科学与信息...
中文分词是自然语言处理中的一个基础任务,它是指将连续的汉字序列切分成具有语义意义的词汇序列的过程。与英文等其他语言相比,中文没有明显的单词界限,因此中文分词是进行后续自然语言处理任务(如文本分类、情感...
总的来说,"30万字中文分词词典"虽然不是最新,但仍可作为基础工具用于各种中文分词任务,但用户需要根据实际需求对其进行适当的补充和优化。对于NLP初学者和开发者来说,理解词典的工作原理以及如何有效利用词典是...
ansj库是一款高效的中文分词工具,它以其丰富的词典资源和高效的分词算法,被广泛应用于各种文本处理任务中。本文将深入探讨ansj的词典加载机制以及其简要的分词过程。 首先,词典是分词器的基石。ansj库中的词典...