我是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,则没有错误并且作业成功完成。
如何正确添加和使用我自己的分析仪?