2012-01-01 35 views
1

我正在学习使用lucene。我写了一个简单的程序来测试Lucene的分析,如:Lucene的AnalyzerUtil错误

import org.apache.lucene.analysis.standard.StandardAnalyzer; 
import org.apache.lucene.analysis.WhitespaceAnalyzer; 
import org.apache.lucene.analysis.SimpleAnalyzer; 
import org.apache.lucene.analysis.StopAnalyzer; 
import org.apache.lucene.analysis.Analyzer; 
import org.apache.lucene.util.Version; 
import org.apache.lucene.wordnet.AnalyzerUtils; 
import java.io.IOException; 
public class AnalyzerDemo { 
    private static final String[] examples = { 
     "The quick brown fox jumped over the lazy dog", 
     "XY&Z Corporation - [email protected]" 
     }; 
    private static final Analyzer[] analyzers = new Analyzer[] { 
     new WhitespaceAnalyzer(), 
     new SimpleAnalyzer(), 
     new StopAnalyzer(Version.LUCENE_30), 
     new StandardAnalyzer(Version.LUCENE_30) 
    }; 
    public static void main(String[] args) throws IOException { 
     String[] strings = examples; 
     if (args.length > 0) { 
      strings = args; 
     } 
     for (String text : strings) { 
      analyze(text); 
     } 
    } 
    private static void analyze(String text) throws IOException { 
     System.out.println("Analyzing \"" + text + "\""); 
     for (Analyzer analyzer : analyzers) { 
      String name = analyzer.getClass().getSimpleName(); 
      System.out.println(" " + name + ":"); 
      System.out.print("   "); 
      AnalyzerUtils.displayTokens(analyzer, text); 
      System.out.println("\n"); 
     } 
    } 
} 

,但我得到了以下错误:

AnalyzerDemo.java:7: package org.apache.lucene.wordnet does not exist 
import org.apache.lucene.wordnet.AnalyzerUtils; 
           ^
AnalyzerDemo.java:35: cannot find symbol 
symbol : variable AnalyzerUtils 
location: class AnalyzerDemo 
      AnalyzerUtils.displayTokens(analyzer, text); 
      ^
Note: AnalyzerDemo.java uses or overrides a deprecated API. 
Note: Recompile with -Xlint:deprecation for details. 
2 errors 

我认为图书馆共发现或AnalyzerUtils不可用。我怎样才能安装这部分的lucene?你有什么想法?为什么失踪?我已经安装了lucene 3.5.0。

回答

2

lucene-wordnet contrib模块在Lucene 3.4.0中被删除。 AnalyzerUtils也不存在,所以你必须得到Lucene 3.3.0或者根据这个编写你自己的3.5.0。

+0

所以,我该怎么办,如果我需要的文档(文档词向量)和词频的单词列表? – orezvani 2012-01-05 08:24:10

+0

创建一个新问题,可能有其他人想要做同样的事情 – milan 2012-01-05 10:45:30

0

相反AnalyzerUtils.displayTokens的(分析仪,文本);

使用功能:

private static void displayTokens(Analyzer analyzer,String text) throws IOException 
{ 
    TokenStream stream=analyzer.tokenStream(null,new StringReader(text)); 
    CharTermAttribute cattr = stream.addAttribute(CharTermAttribute.class); 
    stream.reset(); 
    while (stream.incrementToken()){ 
     System.out.print(cattr.toString()+" "); 
    } 
    stream.end(); 
    stream.close(); 
}