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加锁并添加一次词库,性能影响较小:

相关文章
相关标签/搜索