HanLP收词特别是实体比较多,因此特别容易造成误识别。下边举几个地名误识别的例子,需要指出的是,后边的机构名识别也以地名识别为基础,因此,如果地名识别不准确,也会导致机构名识别不准确。

类型1 数字+地名

[1] 暗访哈尔滨网约车:下10单来7辆“黑车” 1辆套牌

[2] 房天下每日成交5月12日海宁商品房销售备案43套

[3] 广西近视手术专家-黄明汉院长9月9日百色见面会

类型2 前词+地名首词成词或地名尾词+后词成词

[1] 西安国企4000元工资相当于私企多少钱?

[2] 七月份从包头到山东,十五天左右,有自驾游路线推荐吗?

[3] 最受考研人欢迎的城市,有你报考高校所在的城市吗?

类型3 地名本身成词

[1] 滴滴司机接跨省天价订单 乘客半路改道至今未付款

[2] 上联:山水不曾随我老,如何对下联?

[3] 上联:柳着金妆闲钓水,如何对下联?

Badcase分析及修正

下边介绍一下排查误判原因以及修正的方法

首先需要明确以下几点注意事项:

1.实体识别受分词精度影响。

2.实体识别同样涉及消歧的问题。

3.HanLP收录了一些不常见的实体词,会造成错误率升高。

4.HanLP基于隐马的命名实体识召回率没有特别要求的话,不需要再去训练。

这里我们以下边这个badcase的分析过程为例来说明

[5] 上联:山水不曾随我老,如何对下联?

打开提示模式 HanLP.Config.enableDebug()

运行人名识别代码

# HanLP命名实体识别

def hanlp_ner(text, ner_type):

global segment

ner_li = []

for term in segment.seg(text):

if str(term.nature) == ner_type:

ner_li.append(str(term.word))

return ner_li

这里ner_type为你要识别的实体类型,如果是人名则ner_type='nr',地名ner_type='ns',机构名ner_type='nt'。text为要抽取实体的文本。

识别结果,这里为了清晰,只截取了部分输出

粗分结果[上联/n, :/w, 山水/n, 不/d, 曾随/ns, 我/rr, 老/a, ,/w, 如何/ryv, 对/p, 下联/n, ?/w]

地名角色观察:[  S 1163565 ][上联 Z 20211628 ][: A 2701 B 439 X 11 ][山水 B 6 A 1 ][不 B 214 A 3 C 3 ][曾随 G 1 H 1 ]

[我 A 47 B 26 ][老 C 274 A 75 B 66 D 2 X 2 ][, A 40525 B 10497 X 418 ][如何 B 44 ][对 A 2896 B 454 X 215 ][下联 Z 20211628 ][? B 82 ][  B 1322 ]

地名角色标注:[ /S ,上联/Z ,:/B ,山水/A ,不/C ,曾随/H ,我/B ,老/B ,,/A ,如何/B ,对/A ,下联/Z ,?/B , /S]

识别出地名:不曾随 CH

hanlp_ns ['不曾随']

显然,曾随被认为是地名了,而且粗分结果表示的是未经地名识别模块分词和词性标注的结果,显然这是由于词表导致的。由于没有经过地名识别模块,所以不需要去地名的发射词表ns.txt中去找词语,只需要看核心词表CoreNatureDictionary.txt中去找

显然,在核心词表中“曾随“被标记为一个地名,把”曾随“从词表中删除掉,并删除词表文件CoreNatureDictionary.txt.bin,之后再次运行程序得到下边的输出结果

hanlp_ns []

从这个实例,我们也可以看出一些不常见地名如果做成地名词表,就有导致错误识别实体。因此,我们应该保留一份评测语料,每当修改了实体词表后,需要跑一下测试语料查看准确率,如果降低的太多,则表示这样加进来是不可行的。同时填加的实体名也有可能会造成分词错误。

下边说明一下HanLP中有关实体的词表文件名

1.CoreNatureDictionary.mini.txt

2.CoreNatureDictionary.txt

3.CustomDictionary.txt

4.机构名词典.txt

5.全国地名大全.txt

6.人名词典.txt

7.上海地名.txt

8.现代汉语补充词库.txt

9.ns.txt

10.nr.txt

11.nt.txt

当然这里列出的是通常最有可能导致误识别的词表,如果这些词表都没有找到,还需要在HanLP其他词典文件中寻找。

希望今天的内容对使用HanLP并对隐马情有独钟的小伙伴有帮助。这两天的一点小体会是,实体识别其实跟分词是密不可分的,两者都有共同的处理难点,比如词义消歧(边界的确定),词法分析其实才是真正的NLP的内容之一,而词法分析跟机器学习其实没有太大关系。上边的badcase解决方法不是根本方法,直接去除掉某些词,会导致一些生僻实体识别不出来。我们是否可以考虑左右信息熵之类的测度函数来解决这种词是否需要拆开与其前后构成词。针对词法分析推荐大家使用深度学习的方法,毕竟了解这些方法也是必须的,虽然你可以在实际种不用,但是不代表你可以偷懒而不去学习。

Hanlp-地名识别调试方法详解相关推荐

  1. idea 断点线程_在IntelliJ IDEA中多线程并发代码的调试方法详解

    通常来说,多线程的并发及条件断点的debug是很难完成的,或许本篇文章会给你提供一个友好的调试方法.让你在多线程开发过程中的调试更加的有的放矢. 我们将通过一个例子来学习.在这里,我编写了一个多线程程 ...

  2. 网站开发进阶(五十)IE浏览器JS调试方法详解

    一.前言 在公司项目开发过程中,会经常性的调试jsp页面.下面主要讲解下如何在jsp页面进行js调试. 目前,常用的浏览器IE.Chrome.Firefox都有相应的脚本调试功能.在掌握了IE中的调试 ...

  3. python 百度云文字识别 proxy_python使用百度文字识别功能方法详解

    介绍python使用百度智能去的文字识别功能,可以识别截图中的文,登陆路验证码等等., 登陆百度智能云,选择产品服务. 选择"人工智能"---文字识别. 点击创建应用. 如图下面有 ...

  4. Leetcode怎么调试java代码,IDEA2020.1使用LeetCode插件运行并调试本地样例的方法详解...

    环境: idea2020.1 插件: LeetCode-editor 6.7 一.IDEA安装LeetCode插件 安装完成重启idea 打开插件 URL可以选择国服和世界服.LoginName和Pa ...

  5. for根据ID去重_汽车ECU参数标定之配置Overlay RAM实现Qorivva MPC57xx系列MCU参数在线标定和代码重映射原理和方法详解...

    内容提要 引言 1. MPC5744P的Overlay RAM工作原理介绍 2 MPC5744P的Flash Overlay配置详解 2.1 平台Flash标定区域描述字寄存器配置字0--PFLASH ...

  6. 【卷积神经网络CNN 实战案例 GoogleNet 实现手写数字识别 源码详解 深度学习 Pytorch笔记 B站刘二大人 (9.5/10)】

    卷积神经网络CNN 实战案例 GoogleNet 实现手写数字识别 源码详解 深度学习 Pytorch笔记 B站刘二大人 (9.5/10) 在上一章已经完成了卷积神经网络的结构分析,并通过各个模块理解 ...

  7. java中drawimage方法_canvas.drawImage()方法详解

    首先看html5.js /** @param {Element} img_elem @param {Number} dx_or_sx @param {Number} dy_or_sy @param { ...

  8. Windbg调试命令详解

    Windbg调试命令详解 发表于2013 年 8 月 23 日 转载注明>> [作者:张佩][原文:http://www.yiiyee.cn/Blog] 1. 概述 用户成功安装微软Win ...

  9. pycharm 运行celery_在 Pycharm 安装使用black的方法详解

    PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Project管理.代码跳转.智能提示.自动完 成.单元测试.版本控制 ...

  10. php 修改 wordpress,修改WordPress中文章编辑器的样式的方法详解

    这篇文章主要介绍了修改WordPress中文章编辑器的样式的方法详解,同时文中也推荐了两款取代默认文章编辑器的插件,需要的朋友可以参考下 自定义文章编辑器的样式每一个 WordPress 主题的文章样 ...

最新文章

  1. 三摄正普及,四摄在路上?谷歌逆天AI算法,只做单摄虚化
  2. BGP协议路由聚合—AS-SET的使用
  3. 使用 cout 输出数据之控制输出格式(一)
  4. 重构增长:如何从价值创造出发,打造企业的成长思维
  5. db2 空值转换函数_Hive常见函数的使用
  6. 内部服务器如何提供访问服务
  7. Spring Data JPA 动态拼接条件的通用设计模式
  8. 2017年闰秒linux_2017年Linux专业人员的4个热门技能
  9. 了解PostCSS原理
  10. 数据结构与算法(Python)第三天
  11. HDU 3594 Cactus (强连通+仙人掌图)
  12. hadoop的几个常用命令
  13. php xheditor 上传图片,codeigniter整合xheditor之后,xheditor上图片问题
  14. 基于FL2440 的V4L2采集 + H264编码 + LIVE555发布的实时视频监控系统
  15. CentOS7像外部163邮箱发送邮件
  16. NPC内网穿透教程-入门
  17. SSH远程ubuntu【无公网IP、内网穿透】 3-3
  18. 经典书籍《宽客》阅读心得
  19. jquery实现标签锚定(定位)
  20. Mac新手入门以及常用软件推荐

热门文章

  1. linux创建2g文件,创建一个2G的文件(Linux命令dd)
  2. 归并排序算法(java实现)
  3. 远程办公软件华为云WeLink高效视频会议指南(下篇:视频会议怎么记录会议纪要?)
  4. 教你怎么用爬虫程序采集企业信息及电话邮箱等信息(以企查查为例)
  5. 【预测模型】基于麻雀算法改进ELMAN神经网络实现数据预测 matlab代码
  6. 如何关闭极域课堂(亲测有效)(含下载链接)
  7. 刷题笔记(一)《王道计算机考研机试指南2》
  8. 计算机安装的网络协议怎么看,怎么检查电脑是否安装tcp ip和netbeui协议
  9. 小程序与H5如何混合开发及WEUI那些事
  10. 电子电路基础——知识点(上篇)