既然中文分词、词性标注已经有了,那下一步很自然想到的是命名实体识别(NER,Named-entity recognition)工具了,不过根据我目前了解到的情况,开源的中文命名实体工具并不多,这里主要指的是一些成熟的自然语言处理开源工具,不是github上一些学习性质的代码。目前明确有NER标记的包括斯坦福大学的NLP组的Stanza,百度的Paddle Lac,哈工大的LTP,而其他这些测试过的开源NLP基础工具,需要从词性标注结果中提取相对应的专有名词,也算是一种折中方案。

在之前这些可测的工具中,除了斯坦福大学的Stanza和CoreNLP有一套词性标记外,LTP使用的是863词性标注集,其他包括Jieba,SnowNLP,PKUSeg,Thulac,HanLP,FoolNLTK,百度Lac等基础工具的词性标注集主要是以人民日报标注语料中的北京大学词性标注集(40+tags)为蓝本:

代码

名称

帮助记忆的诠释

Ag

形语素

形容词性语素。 形容词代码为 a ,语素代码 g 前面置以 A。

a

形容词

取英语形容词 adjective 的第 1 个字母。

ad

副形词

直接作状语的形容词。 形容词代码 a 和副词代码 d 并在一起。

an

名形词

具有名词功能的形容词。 形容词代码 a 和名词代码 n 并在一起。

b

区别词

取汉字“别”的声母。

c

连词

取英语连词 conjunction 的第 1 个字母。

Dg

副语素

副词性语素。 副词代码为 d ,语素代码 g 前面置以 D。

d

副词

取 adverb 的第 2 个字母 ,因其第 1 个字母已用于形容词。

e

叹词

取英语叹词 exclamation 的第 1 个字母。

f

方位词

取汉字“方” 的声母。

g

语素

绝大多数语素都能作为合成词的“词根”,取汉字“根”的声母。 由于实际标注时 ,一定

标注其子类 ,所以从来没有用到过 g。

h

前接成分

取英语 head 的第 1 个字母。

i

成语

取英语成语 idiom 的第 1 个字母。

j

简称略语

取汉字“简”的声母。

k

后接成分

l

习用语

习用语尚未成为成语 ,有点“临时性”,取“临”的声母。

m

数词

取英语 numeral 的第 3 个字母 ,n ,u 已有他用。

Ng

名语素

名词性语素。 名词代码为 n ,语素代码 g 前面置以 N。

n

名词

取英语名词 noun 的第 1 个字母。

nr

人名

名词代码 n 和“人(ren) ”的声母并在一起。

ns

地名

名词代码 n 和处所词代码 s 并在一起。

nt

机构团体

“团”的声母为 t,名词代码 n 和 t 并在一起。

nx

非汉字串

nz

其他专名

“专”的声母的第 1 个字母为 z,名词代码 n 和 z 并在一起。

o

拟声词

取英语拟声词 onomatopoeia 的第 1 个字母。

p

介词

取英语介词 prepositional 的第 1 个字母。

q

量词

取英语 quantity 的第 1 个字母。

r

代词

取英语代词 pronoun 的第 2 个字母,因 p 已用于介词。

s

处所词

取英语 space 的第 1 个字母。

Tg

时语素

时间词性语素。时间词代码为 t,在语素的代码 g 前面置以 T。

t

时间词

取英语 time 的第 1 个字母。

u

助词

取英语助词 auxiliary 的第 2 个字母,因 a 已用于形容词。

Vg

动语素

动词性语素。动词代码为 v。在语素的代码 g 前面置以 V。

v

动词

取英语动词 verb 的第一个字母。

vd

副动词

直接作状语的动词。动词和副词的代码并在一起。

vn

名动词

指具有名词功能的动词。动词和名词的代码并在一起。

w

标点符号

x

非语素字

非语素字只是一个符号,字母 x 通常用于代表未知数、符号。

y

语气词

取汉字“语”的声母。

z

状态词

取汉字“状”的声母的前一个字母。

HanLP使用的HMM词性标注模型训练自2014年人民日报切分语料,随后增加了少量98年人民日报中独有的词语。所以,HanLP词性标注集兼容《ICTPOS3.0汉语词性标记集》,并且兼容《现代汉语语料库加工规范——词语切分与词性标注》。

另外百度词法分析工具Lac使用的词性标注集中特别加了一套强相关的专名类别标签:

词性和专名类别标签集合如下表,其中词性标签24个(小写字母),专名类别标签4个(大写字母)。这里需要说明的是,人名、地名、机名和时间四个类别,在上表中存在两套标签(PER / LOC / ORG / TIME 和 nr / ns / nt / t),被标注为第二套标签的词,是模型判断为低置信度的人名、地名、机构名和时间词。开发者可以基于这两套标签,在四个类别的准确、召回之间做出自己的权衡。

哈工大LTP的命名实体标注集没有提取“时间”,具体参考如下:

NE识别模块的标注结果采用O-S-B-I-E标注形式,其含义为

标记

含义

O

这个词不是NE

S

这个词单独构成一个NE

B

这个词为一个NE的开始

I

这个词为一个NE的中间

E

这个词位一个NE的结尾

LTP中的NE 模块识别三种NE,分别如下:

标记

含义

Nh

人名

Ni

机构名

Ns

地名

基于上述观察,我决定采用这种方案做中文命名实体工具测试接口:对于斯坦福Stanza的NER结果直接保留,对于 Baidu Lac 结果则保留强置信度的人名(PER)、地名(LOC)、机构名(ORG)、时间(TIME)提取结果,对于哈工大LTP的NER结果做个人名(Nh=>PER)、地名(Ns=>LOC)和机构名(Ni=>ORG)的映射,对于其他几个工具,去除斯坦福的老NLP工具CoreNLP,其他NLP工具则保留nr、ns、nt、t、nz这几个提取工具,并做了标记映射人名(nr=>PER),地名(ns=>LOC),机构名(nt=>ORG),时间(t=>TIME)以及其他专名(nz=>OTHER)。下面是几组测试结果,欢迎关注AINLP公众号试用,结果仅供参考,毕竟除了斯坦福Stanza、Baidu Lac以及哈工大LTP外,其他几个工具的“NER命名实体识别”功能是“强加”的,在实际使用中,可以根据需求采用:

python中文命名实体识别工具包_中文命名实体识别工具(NER)比较相关推荐

  1. nlp 命名实体识别 算法_中文命名实体识别算法 Lattice LSTM

    中文命名实体识别 (NER) 算法按照输入的类型,可以大致分为 Character-based (字符) 和 Word-based (单词) 两种.这两种方法都存在一些缺陷,Character-bas ...

  2. cnn验证码识别代码_中文项目:快速识别验证码,CNN也能为爬虫保驾护航

    原标题:中文项目:快速识别验证码,CNN也能为爬虫保驾护航 机器之心专栏 作者:Nick Li 随着卷积网络的推广,现在有各种各样的快捷应用,例如识别验证码和数学公式等.本文介绍了一个便捷的验证码识别 ...

  3. python一个中文占几个字节_中文在python中占几个字节

    如果是utf-8编码,那么一个中文字符占用三个字节,一个英文字符占用一个字节.如果是gbk编码,那么一个中文字符占用两个字节,一个英文字符占用一个字节. 如果是utf-8编码,那么一个中文包含繁体字等 ...

  4. [oeasy]python0131_[趣味拓展]各种符号_汉语拼音符号_中文全角英文字母_中文全角标点

    各种符号 回忆上次内容 中文字符可以有各种分类方法 声母 拼音检字法 韵母 合辙押韵的分类 偏旁部首 实际上unicode的排序方法 我们以前勇闯地下城时候获得了一把屠龙宝刀 给他镶上了❤️宝石 这宝 ...

  5. python识别麻将牌_图像识别之麻将识别源码( 三 )

    图像识别之麻将识别源码( 三 ) 未经过允许不得转载,转载请联系我,如何联系,点我头像. 连载已经完结, 百度网盘测试APP下载地址: 提取码:pkbl 先见效果图,另外我已经上传到了抖音视频,想看N ...

  6. 用vs写python和c++需要哪些工具包_从运行效率与开发效率比较Python和C++

    之前有人一直在说python怎么怎么好用,也有人说C++太难了,下面我做了一些笔记: 1.运行效率:C++ >> Python Python代码和C++最终都会变成CPU指令来跑,但一般情 ...

  7. python的opencv 车牌识别 开源_毕节进出口车牌识别系统怎么样

    毕节进出口车牌识别系统怎么样 gzheu8il 毕节进出口车牌识别系统怎么样 系统拓扑图如下:该系统以社区中心机房为枢纽,有机的将智慧家居住户.社区数字化服务.物业数字化管理.社区智能化管理结合起来, ...

  8. python实现指纹识别毕业论文_(完整版)指纹识别系统本科毕业论文

    指纹识别系统 摘要 指纹的唯一性和不变性决定了它在身份认证中的重要地位.它是模式 识别领域中使用最早,也是应用最广的生物鉴定技术.随着低价位指纹采 集仪的出现和高可靠性算法的实现,自动指纹识别技术越来 ...

  9. 图卷积网络进行骨骼识别代码_【骨骼行为识别】2s-AGCN论文理解

    Two-Stream Adaptive Graph Convolutional Networks for Skeleton-Based Action Recognition 论文链接: https:/ ...

最新文章

  1. php分布式redis实现session共享
  2. python跟java-Python和Java该学哪个?还在纠结的你看过来呀~
  3. Leetcode 127. 单词接龙 解题思路及C++实现
  4. QSS之图形渐变填充
  5. TCGA免疫浸润评价数据库,TIMER 2.0 使用指南
  6. 计算机基础与组装,1.计算机基础与组装.pptx
  7. STM32——直流电机PI调速
  8. Android 系统(86)---mtk平台上如何开启f2fs
  9. centos使用python_Centos7使用Python3
  10. STL 算法/容器——总论
  11. 面试题分享,麻麻再也不用担心我的面试了
  12. [暴力]JZOJ 100036 随机
  13. 网络编程——TCP编程及UDP编程
  14. Gradle下载官方地址
  15. LSDSLAM算法解析
  16. 【LTspice】009 低通、高通、带通滤波器
  17. 电脑读取不U盘,在磁盘管理器中显示“无媒体”解决方法
  18. 基于SSM生产计划排程管理系统
  19. C# 绘制直角坐标系
  20. 注解(annotations)列表

热门文章

  1. Matlab findcircle函数实现 霍夫变换——检测圆
  2. 屏幕录像工具GiliSoft Screen Recorder 7.3.1 中文绿色注册版
  3. 拜尔模板 bayer pattern
  4. 【报告分享】喜茶2020年度报告-喜茶(附下载)
  5. pycharm里的HTML添加背景,pycharm怎么改变背景颜色-pycharm设置背景颜色的方法
  6. OD调试红月反汇编之账号错误的提示框
  7. 僵尸网络:DDoS 及其他
  8. ubuntu20.04系统的英文语言换成中文语言
  9. LinuxMint KDE 发行版fcitx 输入法的安装
  10. arduino 伸缩轨道_M5Train 视觉识别轨道小火车头