jieba分词

1.引入依赖

1
2
3
4
5
<dependency>
    <groupId>com.huaban</groupId>
    <artifactId>jieba-analysis</artifactId>
    <version>1.0.2</version>
</dependency>

2.分词工具类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package com.itcast.utils;
 
import com.huaban.analysis.jieba.JiebaSegmenter;
import com.huaban.analysis.jieba.SegToken;
import com.huaban.analysis.jieba.WordDictionary;
import java.io.*;
import java.nio.file.*;
import java.util.ArrayList;
import java.util.List;
 
public class JiebaAnalyzerUtil {
 
    /*
    *对语句进行分词
    *@Param text 语句
    *@return 分词后的集合
    *@throws IOException
    */
    public List segment(String text) throws IOException {
        List<Object> strings = new ArrayList<>();
        //dict.txt 自定义词典
        String path = getClass().getClassLoader().getResource("dict.txt").getPath();
        Path upath = Paths.get(new File(path).getAbsolutePath());
        WordDictionary.getInstance().loadUserDict(upath);
        JiebaSegmenter jiebaSegmenter = new JiebaSegmenter();
        List<SegToken> process = jiebaSegmenter.process(text, JiebaSegmenter.SegMode.SEARCH);
        for (SegToken segToken : process) {
            String word = segToken.word;
            strings.add(word);
        }
        return strings;
    }
}

 3.测试

1
2
public static void main(String[] args) throws IOException {
        String str= "亲爱的请帮忙推荐一个稳健型-理财基金1期封闭式净值型产品";<br>     List<String > segment = new JiebaAnalyzerUtil().segment(str); System.out.println(segment); }

4.未指定分词效果

1
[亲爱, 的, 请, 帮忙, 推荐, 一个, 稳健, 型, -, 理财, 基金, 1, 期, 封闭式, 净值, 型, 产品]

5.指定分词:

dict.txt中输入:

1
2
3
4
亲爱的 3 n
稳健型 3 n
理财基金13 n
净值型产品  3 n

6.指定分词效果:

[亲爱的, 请, 帮忙, 推荐, 一个, 稳健型, -, 理财基金1期, 封闭式, 净值型产品]

posted @   shadow321  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示