博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lucene 3.0.2 中文分词
阅读量:6405 次
发布时间:2019-06-23

本文共 2242 字,大约阅读时间需要 7 分钟。

 

 

package lia.meetlucene;import java.io.IOException;import java.io.Reader;import java.io.StringReader;import org.apache.lucene.analysis.Analyzer;import org.apache.lucene.analysis.TokenStream;import org.apache.lucene.analysis.cjk.CJKAnalyzer;import org.apache.lucene.analysis.cn.ChineseAnalyzer;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;import org.apache.lucene.analysis.tokenattributes.TermAttribute;import org.apache.lucene.util.Version;/** * 分词器测试类,支持lucene3.0以上版本 * 分词器IKAnalyzer3.2.5Stable.jar * @author hpjianhua * @Date 2011 04 08 * */public class Searchnum {        //    要分词的字符串    private static String text = "中国,古时通常泛指中原地区,与中华中夏 中土中州含义相同。古代华夏族、汉族建国于黄河流域一带,以为居天下之中,故称中国";    /**     * @param args     * @throws IOException      */    public static void main(String[] args) throws IOException {        //Analyzer ikAnalyzer = new CJKAnalyzer(Version.LUCENE_30) ;        Analyzer ikAnalyzer = new ChineseAnalyzer() ;        System.out.println("======中文=======IKAnalyzer======分词=======");        showToken(ikAnalyzer, text);                                Analyzer standardAnalyzer = new StandardAnalyzer(Version.LUCENE_30);        System.out.println("=====一元========StandardAnalyzer=====分词========");        showToken(standardAnalyzer, text);    }        /**     * 分词及打印分词结果的方法     * @param analyzer     分词器名称     * @param text         要分词的字符串     * @throws IOException 抛出的异常     */    public static void showToken(Analyzer analyzer, String text) throws IOException {                Reader reader = new StringReader(text);        TokenStream stream = (TokenStream)analyzer.tokenStream("", reader);        //添加工具类  注意:以下这些与之前lucene2.x版本不同的地方        TermAttribute termAtt  = (TermAttribute)stream.addAttribute(TermAttribute.class);        OffsetAttribute offAtt  = (OffsetAttribute)stream.addAttribute(OffsetAttribute.class);        // 循环打印出分词的结果,及分词出现的位置        while(stream.incrementToken()){            System.out.print(termAtt.term() + "|("+ offAtt.startOffset() + " " + offAtt.endOffset()+")");         }        System.out.println();    }}

 

中文分词比较:

http://my.oschina.net/MrMichael/blog/335611

其他分词均不支持

 

转载于:https://www.cnblogs.com/XDJjy/p/4358143.html

你可能感兴趣的文章
python endswith和startwith
查看>>
自己定义Gradle插件之"Hello World"
查看>>
C语言 数组和指针
查看>>
记我的第一次自动化尝试
查看>>
苹果开发者文档更新(5.20-6.4)
查看>>
作业(三)
查看>>
树莓派练习程序(声音检测)
查看>>
云服务器 ECS--查找公网ip使用终端连接云服务
查看>>
HttpClient的用法
查看>>
c# 如何中List<object>中去掉object对象中的重复列数据?
查看>>
8086 汇编指令速查手册
查看>>
BOM和DOM
查看>>
java8_api_日期时间
查看>>
数据存储-传输-分析
查看>>
rsync
查看>>
【以前的空间】网络流合集
查看>>
IT运维人员追女友必备神器之运维开发实战程序案例
查看>>
我的超级“盒子”
查看>>
体验VMware View HTML Access
查看>>
走过13,展望14----希望是个好东西
查看>>