当前位置: 首页 > article >正文

ik分词

一. 初始化IKAnalyzer对象

IKAnalyzer ikAnalyzer = new IKAnalyzer(true);
  1. ik_max_word
    会将文本做最细粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为“中华人民共和国、中华人民、中华、华人、人民共和国、人民、共和国、大会堂、大会、会堂等词语。
  2. ik_smart
    会做最粗粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为中华人民共和国、人民大会堂。

索引时用 ik_max_word
查询时用 ik_smart
使用智能分词 true: 对应 ik_smart , false 对应 ik_max_word

二.调用Analyzer对象的tokenStream方法获取TokenStream对象,此对象包含了所有分词结果
这个方法接收两个参数,field name和输入流reader,其中filed name是Lucene的属性列,是对文本内容进行过分词处理和创建索引之后,索引对应的一个名称,类似数据库的列名。因为IK仅仅涉及分词处理,所以对field name没有进行任何处理,可以设置为null

TokenStream stream = ikAnalyzer.tokenStream(null, new StringReader(content));

三.给tokenStyream对象设置一个指针,指针就在哪一个分词上

CharTermAttribute charTermAttribute=tokenStream.addAttribute(CharTermAttribute.class);

四.调用tokenStream对象的reset方法,重置指针,不调用会报错

tokenStream.reset();

五.利用while循环,拿到分词列表的结果 incrementToken方法返回值如果为false代表读取完毕 true代表没有读取完毕

while(tokenStream.incrementToken()) {
 System.out.print(charTermAttribute.toString() );
}

六.关闭流

tokenStream.close();

http://www.kler.cn/a/13377.html

相关文章:

  • 热更新方案 HybridCLR 学习教程 |(一)原理及准备工作
  • ChatGPT其实并不想让开发人员做这5件事情,但却已经被玩坏了
  • 分析软件及其隐藏后门实验笔记
  • 通过使用生成对抗市场模型改进基于强化学习的交易的泛化
  • FPGA基于XDMA实现PCIE X8的HDMI视频采集 提供工程源码和QT上位机程序和技术支持
  • 开源Qt Ribbon控件——SARibbon的布局思路及介绍
  • nssctf web 入门(10)
  • 跨平台科学应用程序:QtiPlot 1.X Crack
  • MySQL数据库从入门到精通学习第2天(创建数据库)
  • 说过的话就一定要办到 - redo日志
  • beef-xss浏览器劫持
  • tomcat作业
  • Ceph入门到精通-Ceph 服务管理之OSD服务
  • 带有时钟使能和同步清零的D触发器
  • 基于Java+SpringBoot+Vue前后端分离仓库管理系统设计实现
  • leetcode-数据库题
  • C语言实现栈--数据结构
  • GitHub新手用法详解【适合新手入门-建议收藏!!!】
  • 如何为Google Play的应用制作宣传视频
  • 安卓SDK和安卓版本的对应关系