Удаление стемминга и стоп-слов в Lucene 4.7 для арабского языка

Не могли бы вы помочь мне, как я могу использовать стеммер Lucene и удаление стоп-слов для арабского языка?

Кроме того, я хочу знать оба:

  • Используйте мой собственный список стоп-слов.

  • Используйте список Lucene.

Заранее спасибо.

Обновлять:

Я написал такой код:

    DocumentReader documentReader = new DocumentReader(filePath);
    ArrayList<String> stopWordsList = new ArrayList(Arrays.asList(documentReader.readFile().split("\\s+")));
    CharArraySet stopwords = new CharArraySet(Version.LUCENE_47, stopWordsList, true);
    ArabicAnalyzer arabicAnalyzer = new ArabicAnalyzer(Version.LUCENE_47, stopwords);
    TokenStream tokenStream = arabicAnalyzer.tokenStream("?", TextProcessor.text);
    tokenStream = new StopFilter(Version.LUCENE_47, tokenStream, stopwords);
    TextProcessor.text = tokenStream.reflectAsString(true);

Я импортировал следующее:

    import org.apache.lucene.analysis.TokenStream;
    import org.apache.lucene.analysis.ar.ArabicAnalyzer;
    import org.apache.lucene.util.Version;
    import org.apache.lucene.analysis.core.StopFilter;
    import org.apache.lucene.analysis.util.CharArraySet;
    import org.apache.lucene.analysis.ar.ArabicStemmer;

Я использовал эти баночки:

    ArabicAnalyzer.jar
    lucene-analyzers-common-4.7.0.jar
    lucene-core-4.7.0.jar

Но я не смог проверить результат, так как не получаю строку? Так как же мне получить текст после того, как были удалены стоп-слова?

Обратите внимание, что я должен указать в первом параметре arabicAnalyzer.tokenStream ("?", TextProcessor.text);

Ваша помощь очень ценится.


person Programer14    schedule 30.04.2014    source источник


Ответы (1)


арабский стеммер - это в lucene-analyzers-common пакете. Если вы используете maven, просто добавьте соответствующую зависимость.

Чтобы использовать настраиваемый список стоп-слов, просто используйте соответствующий конструктор _ 2_ (с параметром stopWords) или используйте конструктор без параметра стоп-слов для набора Lucene по умолчанию. Если вы используете другой анализатор, сообщите нам, что вам посоветовать.

person mindas    schedule 30.04.2014
comment
Я новичок в Lucene, и моя цель - дать стеммеру текст, который должен его остановить, и я не мог найти способ сделать это. Итак, любезно, не могли бы вы предоставить мне пример того, как его использовать? - person Programer14; 01.05.2014
comment
Вот базовое объяснение, но не для арабского стеммера. . Но вы уловили идею. - person mindas; 01.05.2014
comment
Спасибо, это было полезно, но я все еще не могу успешно запустить код. Я обновил свой вопрос, пожалуйста, помогите мне решить проблему. @mindas - person Programer14; 12.05.2014
comment
Вы не можете использовать разные версии Lucene (4.6.0 и 4.7.0) в одном проекте. - person mindas; 12.05.2014
comment
Спасибо за замечание, я изменил код и избавился от ошибок, пожалуйста, смотрите исходный пост об обновлении. - person Programer14; 12.05.2014