开源中文分词工具探析(三):Ansj

Ansj是由孙健(ansjsun)开源的一个中文分词器,为ICTLAS的Java版本,也采用了Bigram + HMM分词模型(可参考我之前写的文章):在Bigram分词的基础上,识别未登录词,以提高分词准确度。虽然基本分词原理与ICTLAS的一样,但是Ansj做了一些工程上的优化,比如:用DAT高效地实现检索词典、array + linked-list方式实现分词DAG、支持自定义词典与自定义消歧义规则等。

1. 前言

Ansj支持多种分词方式,其中ToAnalysis为店长推荐款:

它在易用性,稳定性.准确性.以及分词效率上.都取得了一个不错的平衡.如果你初次尝试Ansj如果你想开箱即用.那么就用这个分词方式是不会错的.

因此,本文将主要分析ToAnalysis的分词实现。以下代码分析基于ansj-5.1.0版本。

ToAnalysis继承自抽象类org.ansj.splitWord.Analysis,重写了抽象方法getResult。其中,分词方法的依赖关系:ToAnalysis::parse -> Analysis::parseStr -> Analysis::analysisStr。analysisStr方法就干了两件事:

  1. 按照消歧义规则分词;
  2. 在此基础上,按照核心词典分词;

analysisStr方法的最后调用了抽象方法getResult,用于对分词DAG的再处理;所有的分词类均重写这个方法。为了便于理解ToAnalysis分词,我用Scala 2.11重写了:

import java.util

import org.ansj.domain.{Result, Term}
import org.ansj.recognition.arrimpl.{AsianPersonRecognition, ForeignPersonRecognition, NumRecognition, UserDefineRecognition}
import org.ansj.splitWord.Analysis
import org.ansj.util.TermUtil.InsertTermType
import org.ansj.util.{Graph, NameF
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ansj中文分词是一个完全开源的、基于Google语义模型+条件随机场模型的中文分词的Java实现,具有使用简单、开箱即用等特点。 Ansj分词速度达到每秒钟大约100万字左右(Mac Air下测试),准确率能达到96%以上。 Ansj 1.41版本的新增功能 •增加了调用文档说明 •调整了关键词抽取 •增加了摘要计算 •关键词标红 •大幅度提高了命名实体识别 •对于词性标注提供了基于概率的快速标注方式.依旧保留给予隐马模型的词性标注. •修复了目前已知的所有bug •大量修正了之前默认用户自定义词典中词性错误 •提供了给予crf++ wapiti等条件随即场工具的调用接口.用户可以及自定义训练model •增加了目前对最新版的Lucene、Solr、Elasticsearch开源方搜索框架的分词插件 效果测试——新词发现 引用 1. 未登陆词识别 example:NER:我要碎觉吊丝要小心!城西嘉南公寓 result:命名/v 实体/n ner/en : 我/r 要/v 碎觉/nw 吊丝/n 要/v 小心/v !/w 城西嘉南公寓/nw 2. 中文人名识别 example:NER: 邓颖超生前和刘晓辉同学合影, 李民工作了一天 result:邓颖超/nr 生前/t 和/c 刘晓辉/nr 同学/n 合影/v , 李民/nr 工作/vn 了/ul 一天/m 3. 外国人名识别 example:NER:本赛季德甲球队霍芬海姆的两名年轻球员菲尔米诺和福兰德表现出色,但球队主帅吉斯多尔态度强硬。 result:本赛季/n 德甲/n 球队/n 霍芬海姆/nrf 的/uj 两名/m 年轻/a 球员/n 菲尔米诺/nrf 和/c 福兰德/nr 表现出色/n ,/w 但/c 球队/n 主帅/n 吉斯多尔/nrf 态度强硬/n 。/w

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值