IKAnalyzer 扩展词典(强制分词)【solr里添加扩展词典,扩展词典的格式必须是 utf-8 的无BOM格式编码。jav开发中 IKAnalyzer.cfg.xml必须在类路径根下】

来源:互联网 发布:flash for mac破解版 编辑:程序博客网 时间:2024/05/21 17:38

文章来源:http://blog.csdn.net/longxia1987/article/details/8179665


前面说到solr+IKAnalyzer来配置中文分词;在实际中我们有些需求是需要将特定的词作为一个分词来处理,那么我们就需要设置自己的词典

例子:连帽上衣

希望将 “连帽” 作为一个词来处理,并不希望作为 连,帽 来处理


默认分词:



做法:

IKAnalyzer.cfg.xml放到solr的tomcat中:..../webapp/WEB-INF/classes/IKAnalyzer.cfg.xml,并配置 IKAnalyzer.cfg.xml文件

[html] view plaincopyprint?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">    
  3. <properties>    
  4.     <comment>IK Analyzer 扩展配置</comment>  
  5.     <!--用户可以在这里配置自己的扩展字典-->   
  6.     <entry key="ext_dict">/mydict.dic;</entry>   
  7.        
  8.      <!--用户可以在这里配置自己的扩展停止词字典-->  
  9.     <entry key="ext_stopwords">/ext_stopword.dic</entry>   
  10.       
  11. </properties>  

我是将 mydict.dic 文件和 IKAnalyzer.cfg.xml 放在同一个目录,也可以放在别的地方,配置好路径就可以了

mydict.dic 文件中就只有“连帽” 这个词;

经典问题来了:mydict.dic 必须是 utf-8 的无BOM格式编码。

配置好之后重启solr,再次查看分词:


这样连帽就能匹配的到了。

搞了好久,才知道是文件的编码格式不对。我日的,还必须是无BOM格式。


=====================================java代码中==============================================

代码结构:


 IKAnalyzer.cfg.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">  <properties>      <comment>IK Analyzer 扩展配置</comment>    <!-- 用户可以在这里配置自己的扩展字典 -->     <entry key="ext_dict">ext.dic</entry>      <!-- 用户可以在这里配置自己的扩展停用词字典【中文停用词或者英文停用词】    -->    <entry key="ext_stopwords">chinese_stopword.dic;english_stopword.dic</entry> </properties>

扩展词典ext.dic内容

传智播客本拉登击毙欧洲杯四强赛连帽上衣

java测试代码:

<span style="white-space:pre"></span>String content =new String("我穿着连帽上衣去看2012年欧洲杯四强赛;传智播客的本拉登被击毙了".trim().getBytes(),"utf8");StringReader sr =new StringReader(content);IKSegmenter ikSegmenter =new IKSegmenter(sr, true);Lexeme word=null;while( (word=ikSegmenter.next()) !=null ){String w= word.getLexemeText();System.out.println(w);}
输出结果:
<span style="color:#333333;">加载扩展词典:ext.dic加载扩展停止词典:chinese_stopword.dic加载扩展停止词典:english_stopword.dic我穿着</span><span style="color:#cc0000;">连帽上衣</span>【<span style="font-family: Arial; color: rgb(51, 51, 51);">没有添加扩展词的时候,结果是“连帽”,“上衣”</span><span style="font-family: Arial;">】</span><span style="color:#333333;">去看2012年</span><span style="color:#cc0000;">欧洲杯四强赛</span><span style="color: rgb(204, 0, 0); font-family: Arial;">【</span><span style="font-family: Arial; color: rgb(51, 51, 51);">没有添加扩展词的时候,结果是“欧洲杯”,“四强赛”</span><span style="color: rgb(204, 0, 0); font-family: Arial;">】</span><span style="color:#cc0000;"></span><span style="color:#cc0000;">传智播客</span><span style="color:#333333;">【没有添加扩展词的时候,分开四个字"传""智""播""客"】的</span><span style="color:#cc0000;">本拉登</span><span style="color:#333333;">被</span><span style="color:#cc0000;">击毙</span><span style="color:#333333;">了</span>


























0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩脚痒怎么办小窍门 小孩肚子病怎么办天天说 幼儿园幼儿信息表填错了怎么办 水浒传书孩子说看不懂怎么办 孩子丢了书老师怎么办 小朋友做错事不承认老师怎么办 教师被学生骂后怎么办 嘴吧里面长泡怎么办 有个小孩怕下雨怎么办? 幼儿的家长打我怎么办 老师打学生被家长起诉怎么办 家长在学校打了老师怎么办 老师打小孩我们家长怎么办呢? 孩子长手、腿毛怎么办 腿毛又黑又多怎么办 孩子怕老师说他怎么办 被老师骂到厌学怎么办 孩子对写作业一点也不主动怎么办 高三孩子太贪玩怎么办 玩心重的孩子该怎么办 儿子读大学不愿意读书怎么办 孩子打架全班都讨厌怎么办 孩子不爱学习怎么办 二年级 二年级孩子不爱学习总爱玩怎么办 初三孩子学习不积极怎么办 孩子学习不积极应该怎么办 小孩子贪玩不写作业怎么办 老公懒不帮忙分担家务怎么办 宝宝不喜欢早教课程单一怎么办 孩子上课不听话顶撞老师怎么办 孩子不喜欢吃水果蔬菜怎么办 中学生顶撞家长顶撞老师怎么办 .cn孩子初中上课不专心怎么办 娃儿小学二年级做不来怎么办 孩子不愿意看书沉迷电子产品怎么办 孩子自律和自控性差怎么办 婴儿7个月不喜欢吃东西怎么办 半岁宝宝太活泼怎么办 6个月宝宝太活泼怎么办 做nt宝宝太活跃怎么办 静不下心来学习怎么办