2

我是 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)调用,则没有错误并且工作成功完成。

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

4

0 回答 0