Ansj與hanlp分詞工具對比

 

1、Ansj併發

一、利用DicAnalysis能夠自定義詞庫:性能

 

二、可是自定義詞庫存在侷限性,致使有些狀況無效:blog

好比:「很差用「的正常分詞結果:「很差,用」。繼承

 

(1)當自定義詞庫」好用「時,詞庫無效,分詞結果不變。接口

(2)當自定義詞庫ci

「很差用」時,分詞結果爲:「很差用」,即此時自定義詞庫有效。it

 

三、因爲版本問題,可能DicAnalysis, ToAnalysis等類沒有序列化,致使讀取hdfs數據出錯io

此時須要繼承序列化接口class

  

 1|case class myAnalysis() extends DicAnalysis with Serializable  變量

   2|val seg = new myAnalysis()

 

2、HanLP

一樣能夠經過CustomDictionary自定義詞庫:

可是在統計分詞中,並不保證自定義詞典中的詞必定被切分出來,所以用戶可在理解後果的狀況下經過

 

 1|StandardTokenizer.SEGMENT.enableCustomDictionaryForcing(true)強制生效

 

併發問題:

CustomDictionary是全局變量,不能在各節點中更改,不然會出現併發錯誤。

可是HanLP.segment(sentence),只有一個參數,不能指定CustomDictionary,致使在各個excutors計算的時候全局CustomDictionary無效。

因爲CustomDictionary是全局變量,所以我採用一個方式:每一個分區都對CustomDictionary加鎖並添加一次詞庫,性能影響較小:

相關文章
相關標籤/搜索