• lucene 分词器


    分词器
    作用:切分关键词的。
    在什么地方使用到了:在建立索引和搜索时。

    原文:An IndexWriter creates and maintains an index.
    1,切分:
    An
    IndexWriter
    creates
    and
    maintains
    an
    index
    .
    2,去除停用词
    IndexWriter
    creates
    maintains
    index
    3,转为小写
    indexwriter
    creates
    maintains
    index

     1 package cn.itcast.e_analyzer;
     2 
     3 import java.io.StringReader;
     4 
     5 import org.apache.lucene.analysis.Analyzer;
     6 import org.apache.lucene.analysis.TokenStream;
     7 import org.apache.lucene.analysis.cjk.CJKAnalyzer;
     8 import org.apache.lucene.analysis.cn.ChineseAnalyzer;
     9 import org.apache.lucene.analysis.standard.StandardAnalyzer;
    10 import org.apache.lucene.analysis.tokenattributes.TermAttribute;
    11 import org.apache.lucene.util.Version;
    12 import org.junit.Test;
    13 import org.wltea.analyzer.lucene.IKAnalyzer;
    14 
    15 public class TestAnalyzer {
    16 
    17     @Test
    18     public void test() throws Exception {
    19         String enText = "An IndexWriter creates and maintains an index.";
    20         Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_30);
    21         testAnalyzer(analyzer, enText);
    22         
    23         String cnText = "传智播客准备Lucene的开发环境";
    24         testAnalyzer(analyzer, cnText); // 单字分词
    25         
    26         testAnalyzer(new ChineseAnalyzer(), cnText); // 单字分词
    27         testAnalyzer(new CJKAnalyzer(Version.LUCENE_30), cnText); // 二分法分词
    28         testAnalyzer(new IKAnalyzer(), cnText); // 词库分词(重点)
    29     }
    30 
    31     /**
    32      * 使用指定的分词器对指定的文本进行分词,并打印出分出的词
    33      * 
    34      * @param analyzer
    35      * @param text
    36      * @throws Exception
    37      */
    38     private void testAnalyzer(Analyzer analyzer, String text) throws Exception {
    39         System.out.println("当前使用的分词器:" + analyzer.getClass().getSimpleName());
    40         TokenStream tokenStream = analyzer.tokenStream("content", new StringReader(text));
    41         tokenStream.addAttribute(TermAttribute.class);
    42         while (tokenStream.incrementToken()) {
    43             TermAttribute termAttribute = tokenStream.getAttribute(TermAttribute.class);
    44             //分词条件
    45             System.out.println(termAttribute.term());
    46         }
    47         System.out.println();
    48     }
    49 
    50 }
  • 相关阅读:
    浏览器兼容性
    Php Ajax 跨域问题
    $.ajax()验证登录
    ajax基础知识总结
    Highcharts获取json数据展现饼图 (转)
    (CV学习笔记)梯度下降优化算法
    (CV学习笔记)Attention
    (数学建模)线性规划
    NumPy中文文档搬砖(划掉)学习笔记(1)
    微机原理作业1微机基础
  • 原文地址:https://www.cnblogs.com/friends-wf/p/3796542.html
Copyright © 2020-2023  润新知