天天看點

mmseg4j java_中文分詞器:mmseg4j

1、mmseg4j 用 Chih-Hao Tsai 的 MMSeg 算法(http://technology.chtsai.org/mmseg/ )實作的中文分詞器,并實作 lucene 的 analyzer 和 solr 的TokenizerFactory 以友善在Lucene和Solr中使用。

2、MMSeg 算法有兩種分詞方法:Simple和Complex,都是基于正向最大比對。Complex 加了四個規則過慮。官方說:詞語的正确識别率達到了 98.41%。mmseg4j 已經實作了這兩種分詞算法。

mmseg4j java_中文分詞器:mmseg4j

1.5版的分詞速度simple算法是 1100kb/s左右、complex算法是 700kb/s左右,(測試機:AMD athlon 64 2800+ 1G記憶體 xp)。

1.6版在complex基礎上實作了最多分詞(max-word)。“很好聽” -> "很好|好聽"; “中華人民共和國” -> "中華|華人|共和|國"; “中國人民銀行” -> "中國|人民|銀行"。

1.7-beta 版, 目前 complex 1200kb/s左右, simple 1900kb/s左右, 但記憶體開銷了50M左右. 上幾個版都是在10M左右.

3、在 com.chenlb.mmseg4j.example包裡的類示例了三種分詞效果。

4、 在 com.chenlb.mmseg4j.analysis包裡擴充lucene analyzer。MMSegAnalyzer預設使用max-word方式分詞(還有:ComplexAnalyzer, SimplexAnalyzer, MaxWordAnalyzer)。

5、在 com.chenlb.mmseg4j.solr包裡擴充solr tokenizerFactory。

dicPath 指定詞庫位置(每個MMSegTokenizerFactory可以指定不同的目錄,當是相對目錄時,是相對 solr.home 的目錄),mode 指定分詞模式(simple|complex|max-word,預設是max-word)。

6、運作,詞典用mmseg.dic.path屬性指定或在目前目錄下的data目錄,預設是 ./data 目錄。

java -Dmmseg.dic.path=./data -jar mmseg4j-1.6.jar 這裡是字元串。

java -cp .;mmseg4j-1.6.jar com.chenlb.mmseg4j.example.Simple 這裡是字元串。

java -cp .;mmseg4j-1.6.jar com.chenlb.mmseg4j.example.MaxWord 這裡是字元串

7、一些字元的處理 英文、俄文、希臘、數字(包括①㈠⒈)的分出一連串的。目前版本沒有處理小數字問題, 如ⅠⅡⅢ是單字分,字庫(chars.dic)中沒找到也單字分。

8、詞庫(強制使用 UTF-8):

data/chars.dic 是單字與語料中的頻率,一般不用改動,1.5版本中已經加到mmseg4j的jar裡了,我們不需要關心它,當然你在詞庫目錄放這個檔案可能覆寫它。

data/units.dic 是單字的機關,預設讀jar包裡的,你也可以自定義覆寫它,這功能是試行,如果不喜歡它,可以空的units.dic檔案覆寫它。

data/words.dic 是詞庫檔案,一行一詞,當然你也可以使用自己的,1.5版本使用 sogou 詞庫,1.0的版本是用 rmmseg 帶的詞庫。

data/wordsxxx.dic 1.6版支援多個詞庫檔案,data 目錄(或你定義的目錄)下讀到"words"字首且".dic"為字尾的檔案。如:data/words-my.dic。

com.chenlb.mmseg4j

mmseg4j-core