ITPub博客

首页 > 人工智能 > 自然语言 > Ansj与hanlp分词工具对比

Ansj与hanlp分词工具对比

自然语言 作者:adnb34g 时间:2019-06-21 13:35:03 1 删除 编辑


一、 Ansj

1、利用DicAnalysis可以自定义词库:

 


2、但是自定义词库存在局限性,导致有些情况无效:

比如: “不好用“的正常分词结果:“不好,用”。

 

( 1)当自定义词库”好用“时,词库无效,分词结果不变。

( 2)当自定义词库

“不好用”时,分词结果为:“不好用”,即此时自定义词库有效。

 

3、由于版本问题,可能DicAnalysis, ToAnalysis等类没有序列化,导致读取hdfs数据出错

此时需要继承序列化接口

  

 1|case class myAnalysis() extends DicAnalysis with Serializable  

   2|val seg = new myAnalysis()

 

二、 HanLP

同样可以通过 CustomDictionary自定义词库:

 

但是在统计分词中,并不保证自定义词典中的词一定被切分出来,因此用户可在理解后果的情况下通过

 

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

 

并发问题:

CustomDictionary是全局变量,不能在各节点中更改,否则会出现并发错误。

但是 HanLP.segment(sentence),只有一个参数,不能指定CustomDictionary,导致在各个excutors计算的时候全局CustomDictionary无效。

由于 CustomDictionary是全局变量,因此我采用一个方式:每个分区都对CustomDictionary加锁并添加一次词库,性能影响较小:

 


 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31524777/viewspace-2648324/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
八年IT互联从业经历,专注网络营销、大数据、人工智能等领域的知识分享

注册时间:2018-03-09

  • 博文量
    184
  • 访问量
    165339