[pylucene]Pylucene不能导入SmartChineseAnalyzer的解决办法

SmartChineseAnalyzer是lucene中最好的中分分词器,其实就是ICTCLAS 具体介绍

今天在使用pylucene导入的时候发现不行:

>>> import lucene
>>> from org.apache.lucene.analysis.cn.smart import SamrtChineseAnalyzer

Traceback (most recent call last):
  File "", line 1, in 
    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修改方法:

  1. 找到这么一行

    #JARS+=$(SMARTCN_JAR)            # smart chinese analyzer
    

    删掉这个#

  2. 找到

    --exclude org.apache.lucene.sandbox.queries.regex.JakartaRegexpCapabilities \
    

    在附近加入一句:

    --exclude org.apache.lucene.analysis.cn.smart.AnalyzerProfile\
    

重新make和make install覆盖安装,搞定!

如果有朋友知道具体是怎么回事,可以给我解释下,多谢。

你可能感兴趣的:([pylucene]Pylucene不能导入SmartChineseAnalyzer的解决办法)