`
chenlb
  • 浏览: 689726 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

中文分词 mmseg4j-1.8 版发布

阅读更多

想发布新版的 mmseg4j 到现在已经有二个多月了。主要是因为这段时间忙其它事情了。现 Lucene 2.9 发布了,solr 1.4 也应该会比较快就要发布了。对 mmseg4j 兼容新版的 lucene/solr 也是个任务。

 

现 mmseg4j 发布新版 1.8,可以下载:mmseg4j-1.8.zip 包括了源码与词库,还有创建文件。下面说下此版的主要变更:

 

new:

 

1、有检测词典变更的接口,外部程序可以使用 wordsFileIsChange() 和 reload() 来完成检测与加载的工作. (内部不实现自动检测与加载,留给外部程序去做。)

 

2、添加 MMseg4jHandler 类,可以在solr中用url的方式来控制加载检测词库。

 

3、增加 CutLetterDigitFilter过虑器,切分“字母和数”混在一起的过虑器。比如:mb991ch 切为 "mb 991 ch"。

 

changes:

 

1、默认在 classpath 中加载 data 目录(词库目录),找不到再找 user.dir/data 目录。但是优先 mmseg.dic.path 系统属性指定的。

 

2、新词库,去除 sogou 高频无词性的词,合并 rmmseg 提供的词(是 mmseg4j 1.0 使用的词库),共计(14W 多词)。

 

3、数字或英文开头的数字或英文不独立分出。如 MB991CH/A 分为 mb991ch a,cq40-519tx 分为 CQ40 519TX

 

4、内置支持小写,不需要 LowerCaseFilter 了。MMSegAnalyzer 去除了小写过虑。

 

5、支持 solr 1.3/1.4、lucene 2.3/2.4/2.9

 

6、尝试加载 jar 里的 words.dic,并构建含有 words.dic 的 jar(mmseg4j-*-with-dic.jar)。

 

bugs:

 

1、Dictionary 添加 finalize 方法。修正 tomcat reload 时 OOM 的 bug: http://code.google.com/p/mmseg4j/issues/detail?id=4

 

2、MMSegTokenizer 在 lucene 2.4 编译的 在 lucene 2.9 中会报 java.lang.NoSuchFieldError: input。bug: http://code.google.com/p/mmseg4j/issues/detail?id=5

 

 

详情:http://blog.chenlb.com/2009/10/chinese-segment-mmseg4j-1_8-release.html

 

分享到:
评论
4 楼 leibnitz 2013-07-26  
hi,chenlb:
我们在使用1.8.4版本时,对分词有个疑问:
1.对"广州恒大地产"使用max-word,结果
广州 恒 大地 产
(这可能是普遍遍历字符串做法,但如果好点的话应该是:广州 恒 大 地产)
2.但"恒大地产"使用max-word出现
恒 大 地产
** 这样在搜索时就匹配不上了. *****
但如果在1基础上修改为:广州有恒大地产,结果:
广州 有 恒 大 地产
这是我们所期望的,因为从语义上是对的,而此时才匹配2的搜索keywords

我们已经在产品上使用你分词了,请尽快给出详细详解,谢谢.
3 楼 jasonwang168 2011-04-14  
使用1.8.4可以解决了.

jasonwang168 写道
我也得到同样的错误. 求解决.


java.lang.AbstractMethodError

javax.servlet.ServletException: java.lang.AbstractMethodError
at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:946)
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:879)
at org.apache.jsp.admin.analysis_jsp._jspService(org.apache.jsp.admin.analysis_jsp:719)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:80)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:464)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:358)

jasonwang168 写道
我也得到同样的错误. 求解决.


java.lang.AbstractMethodError

javax.servlet.ServletException: java.lang.AbstractMethodError
at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:946)
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:879)
at org.apache.jsp.admin.analysis_jsp._jspService(org.apache.jsp.admin.analysis_jsp:719)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:80)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:464)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:358)

2 楼 jasonwang168 2011-04-14  
我也得到同样的错误. 求解决.


java.lang.AbstractMethodError

javax.servlet.ServletException: java.lang.AbstractMethodError
at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:946)
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:879)
at org.apache.jsp.admin.analysis_jsp._jspService(org.apache.jsp.admin.analysis_jsp:719)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:80)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:464)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:358)
1 楼 zxzheaven 2010-01-14  
冲着mmseg4j的速度来的

不过和lucene3在一起,我没有弄好,在搜索,我用的是SimpleAnalyzer,不过什么都搜索不出来

在创建索引的时候,报错:
org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.AbstractMethodError: org.apache.lucene.analysis.TokenStream.incrementToken()Z
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

相关推荐

Global site tag (gtag.js) - Google Analytics