首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java中的词干文本

java中的词干文本
EN

Stack Overflow用户
提问于 2014-06-07 10:26:26
回答 1查看 2.6K关注 0票数 1

我在寻找在java中使用stemm字符串的可能性。首先,我想用lucene来做这件事,但是我在网上找到的所有例子都被否决了。(SnowballAnalyzer,PorterStemmer,…)我只想整句话。

代码语言:javascript
复制
public static String stemSentence(String sentence) {
    ...
    return stemmedSentence;
}

我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-07 16:41:09

这样做:

代码语言:javascript
复制
public static String stem(String string) throws IOException {
    TokenStream tokenizer = new StandardTokenizer(Version.LUCENE_47, new StringReader(string));
    tokenizer = new StandardFilter(Version.LUCENE_47, tokenizer);
    tokenizer = new LowerCaseFilter(Version.LUCENE_47, tokenizer);
    tokenizer = new PorterStemFilter(tokenizer);

    CharTermAttribute token = tokenizer.getAttribute(CharTermAttribute.class);

    tokenizer.reset();

    StringBuilder stringBuilder = new StringBuilder();

    while(tokenizer.incrementToken()) {
        if(stringBuilder.length() > 0 ) {
            stringBuilder.append(" ");
        }

        stringBuilder.append(token.toString());
    }

    tokenizer.end();
    tokenizer.close();

    return stringBuilder.toString();
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24096227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档