CDH4 - 带定制分析器的Mahout seq2sparse

时间:2014-04-02 09:24:30

标签: lucene mahout analyzer cloudera-cdh

我是Mahout的新手,我尝试为seq2sparse编写自己的分析器代码。我使用默认版本的CDH4:Mahout 0.7和Lucene 3.6。

这是我的分析器代码:

package com.analyzer;

import java.io.Reader;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.LengthFilter;
import org.apache.lucene.analysis.LowerCaseFilter;
import org.apache.lucene.analysis.PorterStemFilter;
import org.apache.lucene.analysis.StopFilter;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.analysis.standard.StandardTokenizer;
import org.apache.lucene.util.Version;

public class MyAnalyzer extends Analyzer {

    @Override
    public TokenStream tokenStream(String fieldName, Reader reader) {
        Version version = Version.LUCENE_36;
        TokenStream result = new StandardTokenizer(version, reader);
        result = new LowerCaseFilter(version, result);
        result = new LengthFilter(result, 3, 50);
        result = new StopFilter(version, result, StandardAnalyzer.STOP_WORDS_SET);
        result = new PorterStemFilter(result);
        return result;
    }
}

我在JAR文件中构建它并移动到$ MAHOUT_HOME / lib文件夹。当我使用以下命令检查时,我的JAR被正确添加到类路径中:

$MAHOUT_HOME/bin/mahout classpath

但是当我从Mahout调用seq2sparse工具时:

$MAHOUT_HOME/bin/mahout seq2sparse -i input_folder -o output_folder --minDF 2 --maxDFPercent 70 --norm 1 -a com.analyzer.MyAnalyzer

我收到此错误:

Exception in thread "main" java.lang.ClassNotFoundException: com.analyzer.MyAnalyzer

如果我使用Lucene的分析器调用org.apache.lucene.analysis.WhitespaceAnalyzer,则没有错误并且作业成功完成。

如何正确添加和使用我自己的分析仪?

0 个答案:

没有答案