您的位置:首页 > 其它

Lucene之中文分词器(IK-Ananlyzer)-yellowcong

2017-12-03 21:50 218 查看
IK分词全名为IK Analyzer,是由java编写的中文分词工具包,目前在lucene以及solr中用的比较多,采用了特有的“正向迭代最细粒度切分算法“,支持细粒度和智能分词两种切分模式

下载地址

https://github.com/linvar/IKAnalyzer


ikanalyzer里面内置字典



案例

package com.yellowcong.index;

import java.io.File;
import java.io.StringReader;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
import org.wltea.analyzer.lucene.IKAnalyzer;

import com.chenlb.mmseg4j.analysis.MMSegAnalyzer;

/**
* 创建用户:狂飙的yellowcong<br/>
* 创建日期:2017年12月3日<br/>
* 创建时间:下午9:37:38<br/>
* 机能概要:
*/
public class Demo2 {
public static void main(String[] args) throws Exception {
//查看MMesj分词器
String dicPath = getDicPath();
// 获取到中文分词了
MMSegAnalyzer mmseg = new MMSegAnalyzer(new File(dicPath));
String content = "我是中国人";
System.out.println("----------MMSeg分词器--------------");
dispalyToken(mmseg, content);

//定义IkAnalyzer分词器
Analyzer analyzer = new IKAnalyzer(true);
//查看分词效果
System.out.println("------------IkAnalyzer分词器-----------");
dispalyToken(analyzer, content);
}

/**
* 创建用户:狂飙的yellowcong<br/>
* 创建日期:2017年12月3日<br/>
* 创建时间:下午9:20:13<br/>
* 机能概要: 查看分词信息
* @param analyzer
* @param content 需要分词的类容
* @throws Exception
*/
public static void dispalyToken(Analyzer analyzer, String content) throws Exception {
TokenStream stream = analyzer.tokenStream("content", new StringReader(content));

// 获取分词信息
CharTermAttribute cta = stream.addAttribute(CharTermAttribute.class);
stream.reset();
while (stream.incrementToken()) {
System.out.println("[" + cta.toString() + "]");
}
}

/**
* 创建用户:狂飙的yellowcong<br/>
* 创建日期:2017年12月3日<br/>
* 创建时间:下午4:50:16<br/>
* 机能概要:获取字典的存放地址
*
* @return
*/
public static String getDicPath() {
String dicPath = Demo1.class.getClassLoader().getResource("data").getFile();
return dicPath;
}
}


运行结果



环境搭建

工程结构



pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>

<groupId>yellowcong</groupId>
<artifactId>day12_02</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>day12_02</name>
<url>http://maven.apache.org</url>

<!-- 配置国内比较快的 阿里云的Maven仓库 -->
<repositories>
<repository>
<id>aliyunmaven</id>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</repository>
</repositories>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<lucene.version>4.5.1</lucene.version>
<mmseg4j.version>1.9.1</mmseg4j.version>
</properties>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>

<!-- lucene核心包 -->
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<version>${lucene.version}</version>
</dependency>
<!--QueryParser 查询类-->
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-queryparser</artifactId>
<version>${lucene.version}</version>
</dependency>
<!-- 分词器 -->
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers-common</artifactId>
<version>${lucene.version}</version>
</dependency>
<!-- 高亮显示 -->
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-highlighter</artifactId>
<version>${lucene.version}</version>
</dependency>

<!-- 庖丁解牛分词器 -->
<dependency>
<groupId>com.chenlb.mmseg4j</groupId>
<artifactId>mmseg4j-core</artifactId>
<version>${mmseg4j.version}</version>
</dependency>
<dependency>
<groupId>com.chenlb.mmseg4j</groupId>
<artifactId>mmseg4j-analysis</artifactId>
<version>${mmseg4j.version}</version>
</dependency>

<!-- ikanalyzer 分词器 -->
<dependency>
<groupId>com.janeluo</groupId>
<artifactId>ikanalyzer</artifactId>
<version>2012_u6</version>
</dependency>
</dependencies>
</project>


参考文章

http://blog.csdn.net/a925907195/article/details/41826363

http://blog.csdn.net/zhu_tianwei/article/details/46607421
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: