hinzufügen von benutzerdefinierten stop-Wörter, die mit lucene in java
Ich bin mit lucene zu entfernen englische Stopp-Wörter, aber meine Anforderung ist, entfernen Sie englische Stopp-Wörter und Benutzerdefinierte Stopp-Wörter. Unten ist mein code zum entfernen englische Stopp-Wörter, die mit lucene.
Mein Beispiel-Code:
public class Stopwords_remove {
public String removeStopWords(String string) throws IOException
{
StandardAnalyzer ana = new StandardAnalyzer(Version.LUCENE_30);
TokenStream tokenStream = new StandardTokenizer(Version.LUCENE_36,newStringReader(string));
StringBuilder sb = new StringBuilder();
tokenStream = new StopFilter(Version.LUCENE_36, tokenStream, ana.STOP_WORDS_SET);
CharTermAttribute token = tokenStream.getAttribute(CharTermAttribute.class);
while (tokenStream.incrementToken())
{
if (sb.length() > 0)
{
sb.append(" ");
}
sb.append(token.toString());
}
return sb.toString();
}
public static void main(String args[]) throws IOException
{
String text = "this is a java project written by james.";
Stopwords_remove stopwords = new Stopwords_remove();
stopwords.removeStopWords(text);
}
}
Ausgabe: java project written james.
gewünschte Ausgabe: java project james.
Wie kann ich dies tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte man hinzufügen, fügen Sie Ihre zusätzlichen Stopp-Wörter in einer Kopie des standard-englischen stoppwort setzen, oder einfach in einer anderen StopFilter. Wie:
oder:
Wenn Sie versuchen, zu erstellen Ihre eigenen Analysator, könnten Sie besser gedient werden, nach einem Muster mehr, wie das Beispiel in der Analyzer-Dokumentation.