1

ルセンの使い方を学んでいます。次のようなルセン アナライザーをテストするための簡単なプログラムを作成しました。

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 - xyz@example.com"
        };
    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

ライブラリwordnetまたはAnalyzerUtilsが利用できないと思います。lucene のこの部分をインストールするにはどうすればよいですか? あなたはなにか考えはありますか?なぜそれが欠けているのですか?lucene 3.5.0 をインストールしました。

4

3 に答える 3

2

lucene-wordnet contrib モジュールは Lucene 3.4.0 で削除されました。AnalyzerUtils も存在しないため、Lucene 3.3.0 を入手するか、これに基づいて 3.5.0 用に独自に作成する必要があります。

于 2012-01-04T11:10:44.200 に答える
0

word-net の場合、word-net contrib は lucene 3.4.0 から削除され、機能はアナライザーのcontrib に統合されました。ポイント番号 4: http://apache.spinellicreations.com/lucene/java/3.4.0/changes-3.4.0/Contrib-Changes.html#3.4.0.new_features

Java ドキュメントは、https ://lucene.apache.org/core/old_versioned_docs/versions/3_5_0/api/all/org/apache/lucene/analysis/synonym/SynonymFilter.html にあります。

于 2012-05-02T09:13:00.040 に答える
0

AnalyzerUtils.displayTokens(analyzer,text); の代わりに

関数を使用します。

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();
}
于 2014-01-21T06:18:58.027 に答える