Java调用IK分词器进行分词方式,封装工具类

 更新时间:2024年08月12日 14:31:35   作者:程序员阿伟  
这篇文章主要介绍了Java调用IK分词器进行分词方式,封装工具类,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

使用场景

在大数据的场景下,一般用于统计关键词出现的频率,因此我们需要对一些数据文本进行分词,得到我们想要的关键词。

导入依赖

<dependency>
            <groupId>com.janeluo</groupId>
            <artifactId>ikanalyzer</artifactId>
            <version>2012_u6</version>
        </dependency>

分词的使用

ArrayList<String> result = new ArrayList<>();
// 创建一个reader对象
StringReader reader = new StringReader(keyword);
// 创建一个分词对象
IKSegmenter ikSegmenter = new IKSegmenter(reader, true);
Lexeme next = ikSegmenter.next();

while ( next != null ) {
      // 获取分词的结果
      result.add(next.getLexemeText());
      next = ikSegmenter.next();
}
return result;

分词结果:

  • useSmart = true时的结果,一个词不会重复出现

  • useSmart = false时的结果,词会多次出现

显然useSmart = false效果好点

封装工具类

package com.cw.util;

import org.wltea.analyzer.core.IKSegmenter;
import org.wltea.analyzer.core.Lexeme;

import java.io.IOException;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;

/**
 * @author CW
 * @version 1.0
 * @date 2023/3/1 8:41
 * @desc ik分词工具类
 */
public class IKUtil {

    /**
     *  分词
     * @param keyword 需要分词的文本
     * @return
     */
    public static List<String> splitKeyWord(String keyword) throws IOException {

        ArrayList<String> result = new ArrayList<>();
        // 创建一个reader对象
        StringReader reader = new StringReader(keyword);
        // 创建一个分词对象
        IKSegmenter ikSegmenter = new IKSegmenter(reader, false);
        Lexeme next = ikSegmenter.next();

        while ( next != null ) {
            // 获取分词的结果
            result.add(next.getLexemeText());
            next = ikSegmenter.next();
        }
        return result;
    }
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MyBatis insert实体如何返回主键

    MyBatis insert实体如何返回主键

    这篇文章主要介绍了MyBatis insert实体如何返回主键,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • 基于Spring AMQP实现消息队列的示例代码

    基于Spring AMQP实现消息队列的示例代码

    Spring AMQP作为Spring框架的一部分,是一套用于支持高级消息队列协议(AMQP)的工具,AMQP是一种强大的消息协议,旨在支持可靠的消息传递,本文给大家介绍了如何基于Spring AMQP实现消息队列,需要的朋友可以参考下
    2024-03-03
  • 一篇文章带你了解Java 中序列化与反序列化

    一篇文章带你了解Java 中序列化与反序列化

    这篇文章主要介绍了Java 序列化与反序列化(Serialization),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-07-07
  • Spring Cloud Alibaba Nacos两种检查机制

    Spring Cloud Alibaba Nacos两种检查机制

    这篇文章主要介绍了Spring Cloud Alibaba Nacos两种检查机制,作为注册中心不止提供了服务注册和服务发现功能,它还提供了服务可用性监测的机制,下面我们就一起进入文章了解具体详情吧
    2022-05-05
  • 一文教你如何使用AES对接口参数进行加密

    一文教你如何使用AES对接口参数进行加密

    这篇文章主要是想为大家介绍一下如何使用AES实现对接口参数进行加密,文中的示例代码简洁易懂,具有一定的借鉴价值,需要的小伙伴可以了解一下
    2023-08-08
  • Maven版本冲突的三种解决方法

    Maven版本冲突的三种解决方法

    在Maven项目中,依赖传递可能导致Jar包版本冲突,常见的解决策略包括依赖排除、版本锁定和使用maven-shade-plugin插件,本文就来介绍一下这三种解决方法,感兴趣的可以了解一下
    2024-10-10
  • Idea中如何查看SpringSecurity各Filter信息

    Idea中如何查看SpringSecurity各Filter信息

    这篇文章主要介绍了Idea中如何查看SpringSecurity各Filter信息,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • java中hashmap的底层数据结构与实现原理

    java中hashmap的底层数据结构与实现原理

    Hashmap是java面试中经常遇到的面试题,大部分都会问其底层原理与实现,本人也是被这道题问惨了,为了能够温故而知新,特地写了这篇文章,以便时时学习
    2021-08-08
  • java解压jar包和压缩jar包的简单步骤

    java解压jar包和压缩jar包的简单步骤

    JAR(Java Archive)是Java的归档文件,它是一种与平台无关的文件格式,它允许将许多文件组合成一个压缩文件,这篇文章主要介绍了java解压jar包和压缩jar包的简单步骤,需要的朋友可以参考下
    2024-12-12
  • 一篇文章带你入门Java封装

    一篇文章带你入门Java封装

    Java面向对象的三大特性:封装、继承、多态。下面对三大特性之一封装进行了总结,需要的朋友可以参考下,希望能给你带来帮助
    2021-08-08

最新评论