Ich benutze Englisch Tokenizer zu analysieren Token und ich habe eine seltsame Situation konfrontiert, wo Worte wie wirklich/Antwort in realli, repli umgewandelt wird.Lucene Englisch Tokenizer gibt komische Wörter
Unten ist das Code-Snippet, das ich verwende.
object Learning {
def tokenize(content: String): Seq[String] = {
val tReader = new StringReader(content)
val analyzer = new EnglishAnalyzer()
val tStream = analyzer.tokenStream("contents", tReader)
val term = tStream.addAttribute(classOf[CharTermAttribute])
tStream.reset()
val result = mutable.ArrayBuffer.empty[String]
while(tStream.incrementToken()) {
result += term.toString
}
result
}
def main(args: Array[String]): Unit = {
println(tokenize("This deal looks really interesting, I will look into it and reply"))
}
}
Dies gibt als - Arraybuffer (Deal, schauen, realli, Zinsen, i, schauen, repli). Soweit ich sehen kann, gibt es keine Wörter wie realli, repli in der englischen Sprache.
Kann jemand darauf hinweisen, warum dies die Ausgabe so gibt?
Wenn Sie die Basisformen (Lemmas) der Wörter anstelle von künstlichen Stielen wünschen, suchen Sie nach einem "Lemmatizer". –