Java版结巴分词自定义词库

  • Java版结巴分词项目地址:https://github.com/huaban/jieba-analysis

1. 加载依赖

使用Maven构建项目

<dependency>
  <groupId>com.huabangroupId>
  <artifactId>jieba-analysisartifactId>
  <version>1.0.2version>
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版结巴分词自定义词库_第1张图片

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

Java版结巴分词自定义词库_第2张图片

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

你可能感兴趣的:(数据分析)