lucene5.5版本中文jcseg分词器

首先引入lucene5.5的pom文件

<dependency>
    <groupId>org.apache.lucene</groupId>
    <artifactId>lucene-core</artifactId>
    <version>5.5.0</version>
</dependency>
<dependency>
    <groupId>org.apache.lucene</groupId>
    <artifactId>lucene-queryparser</artifactId>
    <version>5.5.0</version>
</dependency>
<dependency>
    <groupId>org.apache.lucene</groupId>
    <artifactId>lucene-analyzers-common</artifactId>
    <version>5.5.0</version>
</dependency>
<dependency>
    <groupId>org.apache.lucene</groupId>
    <artifactId>lucene-highlighter</artifactId>
    <version>5.5.0</version>
</dependency>
<dependency>
    <groupId>org.apache.lucene</groupId>
    <artifactId>lucene-analyzers-smartcn</artifactId>
    <version>5.5.0</version>
</dependency>

接着去下载jcseg项目,下载好后,用maven package命令编译打包下。我这边用的是1.9.7版本。打包成功后会生成

jcseg-core-1.9.7.jar、jcseg-analyzer-1.9.7.jar这两个jar引入pom里面(由于maven远程仓库暂未收录这个所以用的本地)

<dependency>
    <groupId>jcseg</groupId>
    <artifactId>jcseg-core</artifactId>
    <version>1.9.7</version>
    <scope>system</scope>
    <systemPath>${basedir}\src\main\webapp\WEB-INF\lib\jcseg-core-1.9.7.jar</systemPath>
</dependency>
<dependency>
    <groupId>jcseg</groupId>
    <artifactId>jcseg</artifactId>
    <version>1.9.7</version>
    <scope>system</scope>
    <systemPath>${basedir}\src\main\webapp\WEB-INF\lib\jcseg-analyzer-1.9.7.jar</systemPath>
</dependency>

注意:我这边是直接放到webapp/lib里面了,${basedir}指向的是基础路径也就是项目的源路径。

创建个分词器的工具类AnalyzerUtil:

public static void displayAllTokenInfo(String str, Analyzer analyzer) throws IOException {

    TokenStream tokenStream = analyzer.tokenStream("content", new StringReader(str));
    //分词单元信息
    CharTermAttribute charTermAttribute = tokenStream.addAttribute(CharTermAttribute.class);
    //使用的分词类型信息
    TypeAttribute typeAttribute = tokenStream.addAttribute(TypeAttribute.class);
    tokenStream.reset();
    while (tokenStream.incrementToken()){
        System.out.printf("分词信息:%1s,分词类型:%2s\n", charTermAttribute, typeAttribute.type());

    }
}

注意jcseg默认的词库文件要放到lib下面,然后写个junit测试:

@org.junit.Test
public void test8() throws IOException {
    Analyzer a1 = new SmartChineseAnalyzer();
    Analyzer a2 = new JcsegAnalyzer5X(1);
    AnalyzerUtil.displayAllTokenInfo("我来自中国云南昭通朝阳区师专", a2);
}

打印的分词内容:lucene5.5版本中文jcseg分词器_第1张图片

你可能感兴趣的:(Lucene,分词器,中文分词,jcseg)