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

来源:互联网 发布:java long几个字节 编辑:程序博客网 时间:2024/05/19 02:30

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

原创粉丝点击