欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Lucene(八)拓展1-结巴分词(java版) jieba-analysis

程序员文章站 2022-03-04 23:28:52
...

GitHub地址:https://github.com/huaban/jieba-analysis

结巴分词(java版) jieba-analysis

首先感谢jieba分词原作者fxsjy,没有他的无私贡献,我们也不会结识到结巴 分词. 同时也感谢jieba分词java版本的实现团队huaban,他们的努力使得Java也能直接做出效果很棒的分词。

不过由于huaban已经没有再对java版进行维护,所以我自己对项目进行了开发。除了结巴分词(java版)所保留的原项目针对搜索引擎分词的功能(cutforindex、cutforsearch),我加入了tfidf的关键词提取功能,并且实现的效果和python的jieba版本的效果一模一样!

(以下内容在基于jieba-java版本README.md的基础上,加入了对我新加入的tfidf关键词提取模块的相关说明)

1.项目引入

    <dependency>
        <groupId>com.huaban</groupId>
        <artifactId>jieba-analysis</artifactId>
        <version>1.0.2</version>
    </dependency>

2.demo

import com.huaban.analysis.jieba.JiebaSegmenter;
import com.huaban.analysis.jieba.SegToken;
import org.junit.Test;

import java.util.List;

public class TestJieBa {
    //声明一个分词对象
    private static JiebaSegmenter jiebaSegmenter=new JiebaSegmenter();

   @Test
    public void testJieBa(){
       String content="首先感谢jieba分词原作者fxsjy,没有他的无私贡献,我们也不会结识到结巴 分词. 同时也感谢jieba分词java版本的实现团队huaban,他们的努力使得Java也能直接做出效果很棒的分词";
       /**
        * @Description:
        * 参数1  要分词的内容
        * 参数2:分词模式
        */
       List<SegToken> tokens = jiebaSegmenter.process(content, JiebaSegmenter.SegMode.SEARCH);

       for (SegToken token : tokens) {
           System.out.println(token.word);
       }
       System.out.println("分词完成!"+"\n"+tokens.size());
   }
}

搜索速度的提升

之前:是需要把数据库做一个全表的扫描

现在:直接通过计算hash值定位 值,在非常理想的情况下。他的速度,只计算一次

 

 

相关标签: 全文检索