SmartChineseAnalyzer是lucene中最好的中分分词器,其实就是ICTCLAS 具体介绍
今天在使用pylucene导入的时候发现不行:
>>> import lucene
>>> from org.apache.lucene.analysis.cn.smart import SamrtChineseAnalyzer
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
from org.apache.lucene.analysis.cn.smart import SamrtChineseAnalyzer
ImportError: No module named smart
>>>
说好的pylucene和lucene一样的么,怎么回事?使用:
>>> import org.apache.lucene.analysis.cn
>>> dir(org.apache.lucene.analysis.cn)
['ChineseAnalyzer', 'ChineseFilter', 'ChineseFilterFactory', 'ChineseTokenizer', 'ChineseTokenizerFactory', '__doc__', '__name__', '__package__']
>>>
确实是没有。
网上找了半天只发现一个比较靠谱的,是pylucene开发者的maillist
看了半天没看懂具体啥意思,就知道没装相关的jar,要改Makefile,测试了一下居然直接成功了。
Makefile修改方法:
-
找到这么一行
#JARS+=$(SMARTCN_JAR) # smart chinese analyzer
删掉这个#
-
找到
--exclude org.apache.lucene.sandbox.queries.regex.JakartaRegexpCapabilities \
在附近加入一句:
--exclude org.apache.lucene.analysis.cn.smart.AnalyzerProfile\
重新make和make install覆盖安装,搞定!
如果有朋友知道具体是怎么回事,可以给我解释下,多谢。