Marquer, supprimer les mots vides à l'aide de Lucene avec Java
Je suis en train de marquer et de supprimer les mots vides à partir d'un fichier txt avec Lucene. J'ai ceci:
public String removeStopWords(String string) throws IOException {
Set<String> stopWords = new HashSet<String>();
stopWords.add("a");
stopWords.add("an");
stopWords.add("I");
stopWords.add("the");
TokenStream tokenStream = new StandardTokenizer(Version.LUCENE_43, new StringReader(string));
tokenStream = new StopFilter(Version.LUCENE_43, tokenStream, stopWords);
StringBuilder sb = new StringBuilder();
CharTermAttribute token = tokenStream.getAttribute(CharTermAttribute.class);
while (tokenStream.incrementToken()) {
if (sb.length() > 0) {
sb.append(" ");
}
sb.append(token.toString());
System.out.println(sb);
}
return sb.toString();
}}
Mon principal ressemble à ceci:
String file = "..../datatest.txt";
TestFileReader fr = new TestFileReader();
fr.imports(file);
System.out.println(fr.content);
String text = fr.content;
Stopwords stopwords = new Stopwords();
stopwords.removeStopWords(text);
System.out.println(stopwords.removeStopWords(text));
Ce qui me donne une erreur mais je ne peux pas comprendre pourquoi.
Quelle est l'erreur que vous voyez?
il se plaint sur tout (tokenStream.incrementToken())
il se plaint sur tout (tokenStream.incrementToken())
OriginalL'auteur whyname | 2013-07-12
Vous devez vous connecter pour publier un commentaire.
J'ai eu Le même problème. Pour supprimer d'arrêt de mots à l'aide de
Lucene
, vous pouvez soit utiliser par Défaut dans les Arrêt de Jeu à l'aide de la méthodeEnglishAnalyzer.getDefaultStopSet();
. Sinon, vous pouvez créer votre propre personnalisé stop-liste de mots.Le code ci-dessous montre la version correcte de votre
removeStopWords()
:Utiliser une liste personnalisée d'arrêter d'utiliser des mots suivants:
Voici actuel, de travail exemples: docs.leponceau.org/java-examples/java-evaluation/... et docs.leponceau.org/java-examples/java-evaluation/...
OriginalL'auteur user692704
vous pouvez essayer d'appeler tokenStream.reset() avant d'appeler tokenStream.incrementToken()
OriginalL'auteur user3370153