Не могли бы вы помочь мне, как я могу использовать стеммер 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);
Ваша помощь очень ценится.