1. 介紹

thulac4j是THULAC的Java 8工程化實現(xiàn),相比于官方版THULAC-Java,我們做了如下工作:

  1. 規(guī)范化分詞詞典,并去掉一些無用詞;

  2. 重寫DAT(雙數(shù)組Trie樹)的構(gòu)造算法,生成的DAT size減少了8%左右,從而節(jié)省了內(nèi)存;

  3. 優(yōu)化分詞算法,提高了分詞速率。

若想在項目中使用thulac4j,可添加依賴:

<dependency>
  <groupId>io.github.yizhiru</groupId>
  <artifactId>thulac4j</artifactId>
  <version>${thulac4j.version}</version></dependency>

thulac4j支持兩種分詞模式:

  1. SegOnly模式,只分詞沒有詞性標注;

  2. SegPos模式,分詞兼有詞性標注。

// SegOnly modeString sentence = "滔滔的流水,向著波士頓灣無聲逝去";
SegOnly seg = new SegOnly("models/seg_only.bin");
System.out.println(seg.segment(sentence));// [滔滔, 的, 流水, ,, 向著, 波士頓灣, 無聲, 逝去]// SegPos modeSegPos pos = new SegPos("models/seg_pos.bin");
System.out.println(pos.segment(sentence));//[滔滔/a, 的/u, 流水/n, ,/w, 向著/p, 波士頓灣/ns, 無聲/v, 逝去/v]

SegOnly分詞速度更快,但是準確率較SegPos模式要低;而SegPos具有更高的準確率,內(nèi)存占用更多、分詞速度較慢(請參看性能測試)。此外分詞需要下載訓練模型數(shù)據(jù)

網(wǎng)友評論