Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >大数据工具:IKAnalyzer分词工具介绍与使用

大数据工具:IKAnalyzer分词工具介绍与使用

原创
作者头像
七七分享
修改于 2020-07-13 02:25:23
修改于 2020-07-13 02:25:23
1.7K00
代码可运行
举报
运行总次数:0
代码可运行

简介


为什么要分词呢,当大数据处理中要提取语句的特征值,进行向量计算。所有我们要用开源分词工具把语句中的关键词提取出来。

IK Analyzer是什么呢,就是我们需要的这个工具,是基于java开发的轻量级的中文分词工具包。它是以开源项目Luence为主体的,结合词典分词和文法分析算法的中文分词组件。IK有很多版本,在2012版本中,IK实现了简单的分词歧义排除算法。

我们为什么选择IK作为我们的分词工具呢,这里我们简单介绍一下。这里我们采用了网上的一些介绍。

1、IK才用了特有的“正向迭代最细粒度切分算法”,支持细粒度和智能分词两种切分模式。

2、在系统环境:Core2 i7 3.4G双核,4G内存,window 7 64位, Sun JDK 1.6_29 64位 普通pc环境测试,IK2012具有160万字/秒(3000KB/S)的高速处理能力。

3、2012版的只能分词模式支持简单的分词排歧义处理和数量词合并输出。

4、用了多子处理器分析模式,支持 英文字母 数字 中文词汇等

5、优化词典存储,更小的内存占用。

IK的引入使用


在pom.xml中加入如下配置即可

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!-- ikanalyzer 中文分词器  -->
        <dependency>
            <groupId>com.janeluo</groupId>
            <artifactId>ikanalyzer</artifactId>
            <version>2012_u6</version>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.lucene</groupId>
                    <artifactId>lucene-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.lucene</groupId>
                    <artifactId>lucene-queryparser</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.lucene</groupId>
                    <artifactId>lucene-analyzers-common</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!--  lucene-queryparser 查询分析器模块 -->
        <dependency>
            <groupId>org.apache.lucene</groupId>
            <artifactId>lucene-queryparser</artifactId>
            <version>7.3.0</version>
        </dependency>

IK的两个重要词典


扩展词典:为的是让需要切分的字符串的词语 根据扩展词典里的词,不要切分开来。

例如:扩展词典中有:中国的中国台湾 。那么原本会切分成:中国 的 中国台湾 在 东海 。会切分成:中国的中国台湾 在 东海

停止词典:对比停止词典,直接删掉停止词典中出现的词语

IK的使用


项目:maven工程

resource目录下三个配置文件

  1. IKAnalyzer.cfg.xml<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <comment>IK Analyzer 扩展配置</comment> <entry key="ext_dict">/extend.dic</entry> <entry key="ext_stopwords">/stopword.dic</entry> </properties>这是一个 巨大的墙一个 一 个 的public class IKAnalyzerSupport { private static final Logger LOGGER = LoggerFactory.getLogger(IKAnalyzerSupport.class); /** * IK分词 * @param target * @return */ public static List<String> iKSegmenterToList(String target) throws Exception { if (StringUtils.isEmpty(target)){ return Lists.newArrayList(); } List<String> result = new ArrayList<>(); StringReader sr = new StringReader(target); // 关闭智能分词 (对分词的精度影响较大) IKSegmenter ik = new IKSegmenter(sr, false); Lexeme lex; while((lex=ik.next())!=null) { String lexemeText = lex.getLexemeText(); result.add(lexemeText); } //LOGGER.info("company:{}, iKSegmenterToList:{}", target, JSON.toJSON(result)); return result; } }
  2. extend.dic 扩展词典
  3. stopword.dic
  4. IKAnalyzerSupport.java
测试


代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void main(String[] args) throws Exception {
        String str="http://www.relaxheart.cn 是王琦同学的个人兴趣分享网站";
        System.out.println(iKSegmenterToList(str));
    }

结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http, www.wangqi94.com, www, wangqi94, com,,,, 同学,, 个人兴趣, 个人, 兴趣, 分享, 网站

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java 代码实现——使用 IK 分词器进行词频统计
使用分词器对文章的词频进行统计,主要目的是实现如下图所示的词云功能,可以找到文章内的重点词汇。
铭毅天下
2021/12/15
2.7K0
Java 代码实现——使用 IK 分词器进行词频统计
Apache Lucene全局搜索引擎入门教程
Lucene搜索的API类主要有4个 IndexSearch,Query,QueryParser,Hits
SmileNicky
2019/01/17
2.8K0
IK分词器访问远程词典功能实现
IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出了3个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的 IKAnalyzer3.0则发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。
神秘的寇先森
2018/09/26
2.2K0
IK分词器 IKAnalyzer 简单demo
所用IKAnalyzer:IK-Analyzer-2012FF 百度云:http://pan.baidu.com/s/1bne9UKf  
大道七哥
2019/09/10
2.3K0
IK分词器 IKAnalyzer 简单demo
SpringBoot 2.x整合IKAnalyzer中文分词
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
程裕强
2019/10/30
3.6K1
SpringBoot 2.x整合IKAnalyzer中文分词
IKAnalyzer使用停用词词典进行分词
2、这里非常多跟我一样的新手没办法成功的原因就是被无bom的UTF-8格式给折磨的,IK作者自己也这样说了。
全栈程序员站长
2022/07/08
6750
Lucene5.5学习(6)-Analyzer中文分词IKAnalyzer与paoding
中文分词(Chinese Word Segmentation) 指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。我们知道,在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符,虽然英文也同样存在短语的划分问题,不过在词这一层上,中文比之英文要复杂的多、困难的多。
kl博主
2023/11/18
5420
Lucene5.5学习(6)-Analyzer中文分词IKAnalyzer与paoding
商品搜索引擎—分词(插件介绍与入门实例)
本文主要介绍四个分词插件(ICTCLAS、IKAnalyzer、Ansj、Jcseg)和一种自己写算法实现的方式,以及一些词库的推荐。
全栈程序员站长
2021/04/07
8020
Spring Boot 中使用 Java API 调用 lucene
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎 全文检索概述 比如,我们一个文件夹中,或者一个磁盘中有很多的文件,记事本、world、Excel、pdf,我们想根据其中的
程序员鹏磊
2018/02/09
2.7K0
Spring Boot 中使用  Java API 调用 lucene
后端技术杂谈3:Lucene基础原理与实践
本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看
Java技术江湖
2019/12/09
6890
后端技术杂谈3:Lucene基础原理与实践
【Elasticsearch系列十八】Ik 分词器
官网:https://github.com/medcl/elasticsearch-analysis-ik
kwan的解忧杂货铺
2024/09/22
2460
不引入ES,如何利用MySQL实现模糊匹配
目标是实现一个公司的申请审批流程,整个业务流程涉及到两种角色,分别为商务角色与管理员角色。整个流程如下图所示:
阿珍
2024/06/03
2230
ElasticSearch 如何使用 ik 进行中文分词?
大家好,我是历小冰。在《为什么 ElasticSearch 比 MySQL 更适合复杂条件搜索》 一文中,我们讲解了 ElasticSearch 如何在数据存储方面支持全文搜索和复杂条件查询,本篇文章则着重分析 ElasticSearch 在全文搜索前如何使用 ik 进行分词,让大家对 ElasticSearch 的全文搜索和 ik 中文分词原理有一个全面且深入的了解。
程序员历小冰
2021/04/12
1.6K0
ElasticSearch 如何使用 ik 进行中文分词?
Jcseg分词器的实现详解
本文介绍了如何使用基于Java的jieba分词库和HanLP中文分词库进行中文分词。首先介绍了jieba分词库的使用方法,包括安装、配置和分词。然后介绍了HanLP分词库的使用方法,包括下载、安装、配置和分词。最后通过一个具体的示例展示了如何使用这两种分词库进行中文分词,并对结果进行了展示和解释。
用户1171305
2017/12/28
1.6K0
Jcseg分词器的实现详解
(三)solr的dataimport的配置以及中文分词
并可以在apache-tomcat-7.0.73\webapps\solr\WEB-INF\classes下新建自己的扩展词典
qubianzhong
2018/09/19
1.2K0
(三)solr的dataimport的配置以及中文分词
大数据ELK(四):Lucene的美文搜索案例
在资料中的文章文件夹中,有很多的文本文件。这里面包含了一些非常有趣的软文。而我们想要做的事情是,通过搜索一个关键字就能够找到哪些文章包含了这些关键字。例如:搜索「hadoop」,就能找到hadoop相关的文章。
Lansonli
2021/10/11
5330
大数据ELK(四):Lucene的美文搜索案例
SSM(二)Lucene全文检索
这个项目是基于之前使用IDEA搭建的SSM的基础上进行增加的,建议小白先看下一我。上一篇博客,以及共享在Github上的源码。 以下是Lucene所需要的依赖:
crossoverJie
2022/08/19
3040
SSM(二)Lucene全文检索
词频统计小程序-WordCount.exe
最近顶哥为了完成学历提升学业中的小作业,做了一个词频统计的.exe小程序。因为当时做的时候网上的比较少,因此顶哥决定把自己拙略的作品发出来给需要的人提供一种思路,希望各位看官不要dis才好。最后附上源码链接,感兴趣的朋友可以继续优化哦。
宋先生
2019/12/06
7450
词频统计小程序-WordCount.exe
ELK专栏之IK分词器和Java api操作索引--05
● 我们想要的效果是:中华人民共和国,人民大会堂。而standard分词器不能满足我们的要求。
大忽悠爱学习
2022/09/29
8160
ELK专栏之IK分词器和Java api操作索引--05
Lucene的全文检索学习
Lucene的官方网站(Apache的顶级项目):http://lucene.apache.org/
别先生
2019/10/13
9820
相关推荐
Java 代码实现——使用 IK 分词器进行词频统计
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验