Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/renfei/ik-analyzer
IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包
https://github.com/renfei/ik-analyzer
ik-analyzer ik-analyzer-lucene lucene lucene-analyzer
Last synced: 7 days ago
JSON representation
IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包
- Host: GitHub
- URL: https://github.com/renfei/ik-analyzer
- Owner: renfei
- License: apache-2.0
- Created: 2022-05-05T12:53:51.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-06-14T13:34:36.000Z (over 2 years ago)
- Last Synced: 2024-12-17T09:07:48.768Z (9 days ago)
- Topics: ik-analyzer, ik-analyzer-lucene, lucene, lucene-analyzer
- Language: Java
- Homepage: https://www.wltea.org
- Size: 8.48 MB
- Stars: 21
- Watchers: 1
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# IK-Analyze Java开源中文分词器
![https://search.maven.org/search?q=g:%22net.renfei%22%20AND%20a:%22ik-analyzer%22](https://img.shields.io/maven-central/v/net.renfei/ik-analyzer.svg?label=Maven%20Central)
![License](https://img.shields.io/github/license/renfei/ik-analyzer)> IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,
> IKAnalyzer已经推出了4个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。从3.0版本开始,IK发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。在2012版本中,IK实现了简单的分词歧义排除算法,标志着IK分词器从单纯的词典分词向模拟语义分词衍化。
>
> ### IK Analyzer 2012特性
>
> * 采用了特有的“正向迭代最细粒度切分算法“,支持细粒度和智能分词两种切分模式;
> * 在系统环境:Core2 i7 3.4G双核,4G内存,window 7 64位, Sun JDK 1.6_29 64位 普通pc环境测试,IK2012具有160万字/秒(3000KB/S)的高速处理能力。
> * 2012版本的智能分词模式支持简单的分词排歧义处理和数量词合并输出。
> * 采用了多子处理器分析模式,支持:英文字母、数字、中文词汇等分词处理,兼容韩文、日文字符
> * 优化的词典存储,更小的内存占用。支持用户词典扩展定义。特别的,在2012版本,词典支持中文,英文,数字混合词语
>
> IKAnalyzer的原作者为林良益[[email protected]](mailto:[email protected])
> ,原始代码库为[http://code.google.com/p/ik-analyzer](http://code.google.com/p/ik-analyzer)## 说明
本仓库代码在原作者的基础上进行修改,原作者在2012年停更,我为了使用分词功能和Maven构建进行了克隆,移除了 Solr 部分,如果你需要请参考下面的仓库:
* Solr(ik-analyzer-solr): [https://github.com/magese/ik-analyzer-solr](https://github.com/magese/ik-analyzer-solr)
* ElasticSearch(
elasticsearch-analysis-ik): [https://github.com/medcl/elasticsearch-analysis-ik](https://github.com/medcl/elasticsearch-analysis-ik)## 使用示例
Maven 依赖:
```xml
net.renfei
ik-analyzer
3.0.0.1```
版本号的说明:前三位代表依赖 lucene 的版本,最后一位是重新发布的次数。
分词:
```java
String str = "书籍是人类进步的阶梯。";
IKSegmentation ikSeg = new IKSegmentation(new StringReader(str) , false);
try {
Lexeme l = null;
while( (l = ikSeg.next()) != null){
System.out.println(l);
}
} catch (IOException e) {
e.printStackTrace();
}
```运行结果:
```text
0-2 : 书籍 : CJK_NORMAL
2-3 : 是 : UNKNOWN
3-5 : 人类 : CJK_NORMAL
5-7 : 进步 : CJK_NORMAL
7-8 : 的 : UNKNOWN
8-10 : 阶梯 : CJK_NORMAL
```
### 自定义词典我们需要载入自己的词典时可以这样:
```java
Dictionary dictionary = Dictionary.getInstance();
if (!dictionary.isLoadedCustomDictionary()) {
// 没有加载自定义词典,加载自定义词典
// https://github.com/renfei/dict
CustomDictionary customDictionary = new CustomDictionary();
customDictionary.setMainDictInputStream(new FileInputStream("/Users/renfei/Downloads/sogou.txt"));
dictionary.loadCustomDictionary(customDictionary);
}
```## 词典
本仓库词典文件位置:[src/main/resources/dic](src/main/resources/dic)
我也准备好了词典库:[https://github.com/renfei/dict](https://github.com/renfei/dict)
词典可以去搜狗输入法下载词库:[https://pinyin.sogou.com/dict/](https://pinyin.sogou.com/dict/),将词库文件转换为 txt
文件的工具代码可见:[https://github.com/renfei/SogouScelFileProcessing](https://github.com/renfei/SogouScelFileProcessing)* 主词典:[main.dic](src/main/resources/dic/main.dic)
* 介词\副词词典:[preposition.dic](src/main/resources/dic/preposition.dic)
* 量词词典:[quantifier.dic](src/main/resources/dic/quantifier.dic)
* 停止词词典:[stopword.dic](src/main/resources/dic/stopword.dic)
* 后缀词典:[suffix.dic](src/main/resources/dic/suffix.dic)
* 姓氏词典:[surname.dic](src/main/resources/dic/surname.dic)