11大Java開源中文分詞器的使用方法和分詞效果對比
本文的目標有兩個:
1、學(xué)會使用11大Java開源中文分詞器
2、對比分析11大Java開源中文分詞器的分詞效果
本文給出了11大Java開源中文分詞的使用方法以及分詞結(jié)果對比代碼,至于效果哪個好,那要用的人結(jié)合自己的應(yīng)用場景自己來判斷。
11大Java開源中文分詞器,不同的分詞器有不同的用法,定義的接口也不一樣,我們先定義一個統(tǒng)一的接口:

從上面的定義我們知道,在Java中,同樣的方法名稱和參數(shù),但是返回值不同,這種情況不可以使用重載。
這兩個方法的區(qū)別在于返回值,每一個分詞器都可能有多種分詞模式,每種模式的分詞結(jié)果都可能不相同,***個方法忽略分詞器模式,返回所有模式的所有不重復(fù)分詞結(jié)果,第二個方法返回每一種分詞器模式及其對應(yīng)的分詞結(jié)果。
在這里,需要注意的是我們使用了Java8中的新特性默認方法,并使用stream把一個map的value轉(zhuǎn)換為不重復(fù)的集合。
下面我們利用這11大分詞器來實現(xiàn)這個接口:
1、word分詞器

2、Ansj分詞器

3、Stanford分詞器

4、FudanNLP分詞器

5、Jieba分詞器

6、Jcseg分詞器

7、MMSeg4j分詞器

8、IKAnalyzer分詞器

9、Paoding分詞器

10、smartcn分詞器

11、HanLP分詞器

現(xiàn)在我們已經(jīng)實現(xiàn)了本文的***個目的:學(xué)會使用11大Java開源中文分詞器。
***我們來實現(xiàn)本文的第二個目的:對比分析11大Java開源中文分詞器的分詞效果,程序如下:

運行結(jié)果如下:

