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

类型1 数字+地名

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

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

广西近视手术专家-黄明汉院长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. laravel 分词搜索匹配度_【地名地址】面向智慧城市的高精度地名地址匹配方法...

    点击上方蓝字关注我们↑↑↑↑    原 文 摘 要 针对智慧城市建设中各种业务数据对地名地址匹配准确度和效率不高的问题,本文提出一种面向智慧城市的高精度地名地址匹配方法.该方法在基于中文分词的地名地址 ...

  2. 实战HMM-Viterbi角色标注地名识别

    http://www.hankcs.com/nlp/ner/place-names-to-identify-actual-hmm-viterbi-role-labeling.html 命名实体识别(N ...

  3. Jquery下的Ajax调试方法

    Jquery下的Ajax调试方法 介绍 本文介绍Jquery下的Ajax调试方法:很多调试方法,就是一点就通,但是,在还没有通之前,会让人困惑,不知所以然: Ajax 可以为用户提供更为丰富的用户体验 ...

  4. 采用MATLAB的DSP调试方法

    本文结合具体例证,介绍基于MATLAB 的DSP 应用程序调试方法. MATLAB 具有强大的分析.计算和可视化功能,利用MATLAB 提供的数十个专业工具箱,可以方便.灵活地实现对自动控制.信号处理 ...

  5. Linux内核调试方法总结【转】

    转自:http://my.oschina.net/fgq611/blog/113249 内核开发比用户空间开发更难的一个因素就是内核调试艰难.内核错误往往会导致系统宕机,很难保留出错时的现场.调试内核 ...

  6. Linux内核调试方法总结

    [转]Linux内核调试方法总结 目录[-] 一  调试前的准备 二  内核中的bug 三  内核调试配置选项 1  内核配置 2  调试原子操作 四  引发bug并打印信息 1  BUG()和BUG ...

  7. Linux下Chelsio T5调试方法

    T5是Chelsio的网络芯片,具体的硬件参数可以参考<Chelsio T5 HW Debug Guide V1.02.pdf>文档,如有需要请留言留下你的邮箱,我发给你. 现在我们着重讲 ...

  8. ESP32开发环境的搭建和 ESP-IDF支持以下调试方法

    ESP32开发环境的搭建 ESP-IDF 支持以下调试方法: 一. JTAG 二. GDB调试 三. 日志系统 四. Core Dump 五. esp32 heap 内存管理简析 ESP32开发环境的 ...

  9. 基于规则的中文地名识别系统的设计与实现

    1.       基于规则 在命名实体识别研究的初始阶段的主要采用的方法是基于规则的方法.基本原理是通过分析命名实体在文本中的特征,人工构造规则模板实现命名实体识别. 应用基于规则方法比较成功的英文命 ...

  10. 教你如何快速学会全彩LED显示屏的调试方法

    今天优色专显教你如何快速学会全彩LED显示屏的调试方法.全彩LED显示屏的调试分为3步:调试之前的准备工作;调试单个接收卡所控制的LED电子屏区域(一般为一个箱体);调试大屏幕. 一. 调试之前的准备 ...

最新文章

  1. ueditor上传组件显示乱码_最全面的移动端 UI组件设计详解:中篇
  2. 云原生的本质_你懂什么是云原生吗?
  3. Android自定义View控件
  4. java 隐式构造,java隐式创建的对象
  5. linux下vmware的安装、物理分区使用及卸载
  6. vue 安装 axios
  7. 计算机博弈围棋,计算机博弈:“不围棋”入门教程
  8. 笔记本电脑外接显示器完全攻略(图文说明)
  9. 程序人生:面试字节跳动Java工程师该怎么准备?挑战大厂重燃激情!
  10. 算法模型---关联规则挖掘学习
  11. ECHO、IF、REM等命令介绍
  12. Node.js与相关依赖的版本对照表
  13. TFmini和TFmini-Plus——激光雷达模组 资料汇总
  14. HSI Dataset Visualization:Indian Pines---Python Spectral
  15. keil c语言 位运算,c51按位运算符
  16. erp中的:ATP、CTP、APS的概念
  17. 计算机右下角图标显示桌面快捷方式,Win7系统下让常用软件图标显示在电脑右下角的方法【图】...
  18. 4家外国支持支付宝支付的域名注册商
  19. 给准备第一次参加西雅图峰会的MVP们:签证篇(B1签证)
  20. oracle连现金流量表都没有,现金流量表里面的数据地方都是空白的 没有数字

热门文章

  1. 电商系统架构全链路解析
  2. winsock2.h与ws2def.h等文件大量报错相关问题解决方法
  3. 神经网络基本原理简明教程之线性回归预测房价
  4. 微信撤回软件安卓版_微信阻止撤回app最新版-微信阻止撤回软件下载v1.0.3 安卓版-腾牛安卓网...
  5. linux机顶盒线刷教程,网络机顶盒刷机教程和详细方法,实现软件任意安装,电视免费看...
  6. mysql可视化界面数据导出_MySQL 使用可视化工具导出与导入数据
  7. 计算机word宿舍管理软件,【UML课程设计】宿舍管理系统设计(WORD完整版).doc
  8. jdk8 window 64位安装包 微云网盘下载
  9. 软件开发工作的绩效评估
  10. 数学规划模型(五):多目标规划模型