1. 加载依赖

使用Maven构建项目

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

2. 加载用户自定义词典

// 词典路径为Resource/dicts/jieba.dict
val path = Paths.get(new File(getClass.getClassLoader.getResource("dicts/jieba.dict").getPath).getAbsolutePath)

WordDictionary.getInstance().loadUserDict(path)

3. 进行分词

import scala.collection.JavaConverters._
import com.huaban.analysis.jieba.{JiebaSegmenter, SegToken, WordDictionary}
import com.huaban.analysis.jieba.JiebaSegmenter.SegMode
import scala.collection.mutable

val segmenter = new JiebaSegmenter()
val line = "这是一个伸手不见五指的黑夜。我叫孙悟空,我爱北京,我爱Python和C++。"
val list: mutable.Buffer[SegToken] = segmenter.process(line, SegMode.SEARCH).asScala

用户自定义分词字典描述

三列数据:

  • 词频
  • 词性

分隔符:\t或空格

附分析过程如下:

1、展开源码分析,JiebaSegmenter是分词器,WordDictionary这个就是词典了。

Java版结巴分词自定义词库

2、分析方法,loadUserDict很明显是加载用户自定义的词典

Java版结巴分词自定义词库

3、public void loadUserDict(Path userDict) 需要传入字典文件对应的nio.Path

相关文章: