2016-05-06 44 views
-2

我想将一个词划分为令牌。例如我搜索单词“饭盒”。我想用JAVA将它分成“午餐”,“盒子”。如何使用java API对单词进行标记?

String name = "lunchbox"; 
    StringTokenizer tokenizer = new StringTokenizer(name, "^\\s*\\S+\\s*$"); 
    while (tokenizer.hasMoreTokens()) { 
     System.out.println(tokenizer.nextToken()); 
    } 

我试过但没有工作。 我也想知道我是否可以使用弹性搜索来实现这一点。

+1

获取单词的词典,并通过指向任何一处的前瞻分裂。 – Mena

回答

0

由于您使用ElastichSearch,你可以伊斯利使用由Lucene的提供的API。例如,下面的一段代码显示LetterTokenizer的用法,它是一个用非字母分隔文本的标记器。

TokenStream tokenStream = new LetterTokenizer(new StringReader(document.trim())); 
CharTermAttribute charTermAttribute = tokenStream 
     .addAttribute(CharTermAttribute.class); 
tokenStream.reset(); 

while (tokenStream.incrementToken()) { 
    String string = charTermAttribute.toString(); 
    //Do something with your string 
} 
tokenStream.close(); 

您可以进一步研究Lucene API以便为您的目的找到合适的分析仪。

相关问题