一、简介

IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。它很容易使用。

二、代码

1、首先在pom.xml加入依赖

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

2、数据

1 我爱北京天安门,天安门上太阳升
2 对这个世界如果你有太多的抱怨,跌倒了就不敢继续往前走
3 都可以随便的,你说的我都愿意去

3、代码

package com.studyToolsimport org.apache.lucene.analysis.tokenattributes.CharTermAttribute
import org.apache.spark.{SparkConf, SparkContext}
import org.wltea.analyzer.lucene.IKAnalyzer
import scala.collection.mutable.{ArrayBuffer, ListBuffer}object IKAnalyzerDemo {def main(args: Array[String]): Unit = {ik.foreach(println)}def ik = {val sc = new SparkContext(new SparkConf().setAppName(this.getClass.getSimpleName).setMaster("local"))val data = sc.textFile("src/main/resources/ikanalyzer/data.txt")val list = data.mapPartitions { iter =>val list = new ListBuffer[(String, ArrayBuffer[String])]while (iter.hasNext) {// 使用true则是系统自动评判进行分词,如果有针对性需求,需要设置为false,并在resources中添加配置文件(下面会有说明)val analyzer = new IKAnalyzer(false) val text = iter.next().split(" ")val id = text(0)val context = text(1)// 分词val ts = analyzer.tokenStream("", context)// 得到相应词汇内容val term = ts.getAttribute(classOf[CharTermAttribute])// 重置分词器ts.reset()val arr = new ArrayBuffer[String]()// 遍历while (ts.incrementToken()) {arr += (term.toString)}list.append((id, arr))analyzer.close()}list.iterator}list.cache()}
}

分词结果

加载扩展词典:extend.dic
加载扩展停止词典:stopword.dic
(1,ArrayBuffer(我, 爱, 北京, 天安门, 天安, 门, 天安门, 天安, 太阳升, 太阳))
(2,ArrayBuffer(对, 这个, 世界, 如果, 你, 有, 太多, 的, 抱怨, 跌倒, 就不, 不敢, 继续, 往前走, 往前, 走))
(3,ArrayBuffer(都可以, 可以, 随便, 的, 你, 说的, 的, 我, 都, 愿意, 去))

三、使用说明

ik分词器可以自己根据需求定义分词的需求。

1、首先在resources下添加配置文件IKAnalyzer.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties><comment>IK Analyzer Config</comment><!-- 拓展字典 --><entry key="ext_dict">extend.dic</entry><!--停止词字典 --><entry key="ext_stopwords">stopword.dic</entry>
</properties>

2、拓展字典extend.dic

用户可以自己添加拓展分词在其中。

3、停止词字典

用户发现有些词语分词是不准确的,可以去掉这类分词;比如上面代码中,我在停止词字典中添加了如下内容,这些内容将不会出现。

门上
阳升
倒了
都可

IKAnalyzer代码及注解相关推荐

  1. 软件开发中部分代码的注解

    初次接触软件开发,先是阅读别人的代码.学习别人的一些经验!下面是遇到的一些代码及注解! @ParentPackage("basePackage")    // 默认继承struts ...

  2. java编译器代码检查_java 命名代码检查-注解处理器

    命名代码检查 根据 中第6.8节的要求, Java 程序命名应当符合下列格式的书写规范: 类 ( 或接口 ) : 符合驼式命名法, 首字母大写. 方法 : 符合驼式命名法,首字母小写 字段 :类或实例 ...

  3. 吴恩达机器学习编程题ex1上 单变量线性回归: (python版含题目要求、代码、注解)

    不得不说安卓老师是真的用心良苦,给我们把编程题弄成了填空题,但是很可惜原版使用的是Octave和MATLAB所以作为初学者我就直接当编程题用python去做了 问题:让你绘制一个5阶单位阵 答案:   ...

  4. java 命名代码检查-注解处理器

    命名代码检查 根据 <Java 语言规范( 第 3 版 ) > 中第6.8节的要求, Java 程序命名应当符合下列格式的书写规范: 类 ( 或接口 ) : 符合驼式命名法, 首字母大写. ...

  5. bootstrap-switch 不起作用 class处显示代码_注解KafkaListener不起作用,到底发生了啥?...

    一,漫谈消息队列 众所周知,消息队列主要是用于消峰,解藕.同时也使得业务的处理方式为异步处理.常用的消息队列有rabbitmq,activemq,rocketmq,kafka等等,考虑到Kafka已经 ...

  6. java 代码scope注解_Spring学习(15)--- 基于Java类的配置Bean 之 @Bean @Scope 注解

    默认@Bean是单例的,但可以使用@Scope注解来覆盖此如下: @Configuration public class MyConfiguration { @Bean @Scope("pr ...

  7. 用python求期望_Python——EM(期望极大算法)教学(附详细代码与注解)

    今天,我们详细的讲一下EM算法. 前提准备 Jupyter notebook 或 Pycharm 火狐浏览器或谷歌浏览器 win7或win10电脑一台 网盘提取csv数据 需求分析 实现高斯混合模型的 ...

  8. 【Scala】使用Scala语言对匿名函数、高阶函数的定义以及详细解释(代码加注解)

    下面是匿名函数以及高阶函数相结合使用的代码: object FunDemo3 {/*** 匿名函数.高阶函数*/def main(args: Array[String]): Unit = {val a ...

  9. Python——EM(期望极大算法)实战(附详细代码与注解)(二)

    开始之前 各位朋友,大家好!针对上回讲的EM算法,有朋友反馈还是没弄清楚,今天,我再来详细的讲一下EM算法.请耐心食用本教程,滴滴滴~,上车! 前提准备 Jupyter notebook 或 Pych ...

最新文章

  1. XGBOOST带试验源码
  2. [C#泛型系列文章]
  3. 22道Java面试题,看看你会了多少?
  4. 数据结构--Dijkstra算法最清楚的讲解
  5. F. Cowmpany Cowmpensation(树形dp + 拉格朗日插值)
  6. 5 | Spatial-based GNN/convolution模型之DGC
  7. 简析三星新专利,语音识别技术的新方法
  8. 问题三十八:C++中bad alloc问题(1)——分析问题
  9. 电脑机器人_磨小分校参加成都市“青少年电脑机器人创新实践活动”巡航者决赛...
  10. #ifndef HeaderName_h #define HeaderName_h #endif 使用详解
  11. c语言中d1的分辨率是,C中的方法分辨率顺序
  12. 2022年南京医院三基考试耳鼻咽喉科学精选题及答案
  13. php 中国时间转换美国时间差,美国中国时差换算(世界时间换算器在线)
  14. sql server case when then else end as 用法
  15. 【MATLAB】调整坐标轴及视野
  16. STM32驱动WS2812B-2020 RGB彩灯(一)
  17. 汉字转16进制 php,php中文汉字与16进制编码转换三种方法
  18. 黄页宝贝工具栏软件发布了
  19. java语言基础 : 初识计算机和Java语言-----java初识之路
  20. OpenCV-Python 级联分类器训练 | 六十三

热门文章

  1. 再反转:21℃室温超导成果被美院士宣称复现!新实验基于原始样品,南大闻海虎再提3点质疑...
  2. Stetman读peper小记:Defense-Resistant Backdoor Attacks Against DeepNeural Networks in Outsourced Cloud
  3. Unity更改默认编辑器
  4. c++实验2 标准体重
  5. 微软小冰代言英孚是场彻头彻尾的炒作?
  6. 【电力电子技术】DC-DC变换电路
  7. linux redis模糊删除,redis 模糊删除实现
  8. VMware安装Ubuntu 16.04(完整版图文教程)
  9. scratch3.0 躲子弹游戏——克隆练习
  10. c语言用价格统计图书信息,C语言图书信息管理系统代码.doc