精华内容
下载资源
问答
  • NER(中文实体命名识别)光健字: 中文命名实体识别 NER BILSTM CRF IDCNN BERT摘要:对中文命名实体识别一直处于知道却未曾真正实践过的状态,此次主要是想了解和实践一些主流的中文命名实体识别的神经网络算法。...

    NER(中文实体命名识别)

    光健字: 中文命名实体识别 NER BILSTM CRF IDCNN BERT

    摘要:对中文命名实体识别一直处于知道却未曾真正实践过的状态,此次主要是想了解和实践一些主流的中文命名实体识别的神经网络算法。通过对网上博客的阅读了解,中文命名实体识别比较主流的方法是BILSTM+CRF、IDCNN+CRF、BERT+BILSTM+CRF这几种神经网络算法,这个demo也用Keras实现了这几个算法,并且采用几个比较通用的数据集进行训练测试。这个demo是以了解和学习为目的的,所以未得出任何结论

    注意:由于算力和时间的问题,对神经网络的参数未进行太多调试,所以模型现在的参数并不是最佳参数

    主要库的版本

    本项目是基于keras(Using TensorFlow backend)以下是主要库的版本

    python = 3.6.8

    keras == 2.2.4

    keras_contrib == 0.0.2

    keras_bert == 0.80.0

    tensorflow == 1.14.0

    项目目录结构

    data 数据目录

    具体请查看数据目录文件夹下的README文件

    DataProcess 数据处理文件夹

    具体请查看数据处理文件夹下的README文件

    Pubilc 公共工具

    path 定义文件(文件夹)的路径

    utils 工具

    创建log

    keras的callback调类

    Model 模型(总共定义了5个模型,具体结构请查看Model文件夹下的README文件)

    BERT+BILST+CRF

    BILSTM+Attention+CRF

    BILSTM+CRF

    IDCNN+CRF(1)

    IDCNN+CRF(2)

    log 记录数据

    运行项目

    注意:需要用到bert网络的需要提前下载BERT预训练模型解压到data文件夹下

    直接在IDE里运行项目

    直接运行 train.py文件

    命令行

    python train.py

    运行结果

    运行GPU: GeForceRTX2080Ti(GPU显存 10.0G, 算力7.5)

    训练周期为15个周期,提前停止条件:2个周期验证集准确率没有提升。

    BERT采用batch_size=32 因为值为64的时候所使用GPU内存不够

    以下数据基于MSRA数据集,以8:2的拆分(训练集:测试集)。测试结果

    模型

    准确率

    F1

    召回率

    IDCNN_CRF

    0.988

    0.860

    0.871

    IDCNN_CRF_2

    0.990

    0.872

    0.897

    BILSTM_Attention_CRF

    0.987

    0.850

    0.848

    BILSTMCRF

    0.989

    0.870

    0.863

    BERT_BILSTM_CRF

    0.996

    0.954

    0.950

    很显然BERT+BILIST+CRF的组合效果会好很多

    提示:log文件夹里有每个训练周期记录的数据

    展开全文
  • 既然中文分词、词性标注已经有了,那下一步很自然想到的是命名实体识别(NER,Named-entity recognition)工具了,不过根据我目前了解到的情况,开源的中文命名实体工具并不多,这里主要指的是一些成熟的自然语言处理...

    既然中文分词、词性标注已经有了,那下一步很自然想到的是命名实体识别(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命名实体识别”功能是“强加”的,在实际使用中,可以根据需求采用:

    展开全文
  • 双向LSTM+CRF中文命名实体识别工具,可以使用自己的语料进行训练,欢迎大家交流学习。训练数据需要自己进行获取
  • 是依靠条件随机场和字典方法的中文命名实体识别的小工具,需要安装java虚拟机。解压后直接使用!!
  • 在线中文命名实体识别( NER )的工具 命名实体识别(Named Entity Recognition,简称NER),又称作“专名识别”,是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等。 通常包括两部分:...

    在线中文命名实体识别( NER )的工具

     

     命名实体识别(Named Entity Recognition,简称NER),又称作“专名识别”,是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等。

    通常包括两部分:(1)实体边界识别;(2) 确定实体类别(人名、地名、机构名或其他)

    下面是一个在线的NER实体识别的演示:

    http://www.cuobiezi.net/etpro/index

    识别结果分为:人名、时间、地址三个类别。

     

     

     

    展开全文
  • 中文命名实体识别

    2015-03-12 16:40:35
    命名实体识别是信息提取、问答系统、句法分析、机器翻译、面向Semantic Web的元数据标注等应用领域的重要基础工具,在自然语言处理技术走向实用化的过程中占有重要地位。一般来说,命名实体识别的任务就是识别出待...
  • 中文NLP序列标注工具。利用CRF进行命名实体识别NER,自动标注数据集产生语料库,可以选择BIO或者BMES标注体系。
  • 中文 词性标注 命名实体识别 工具

    千次阅读 2018-06-07 16:04:40
    推荐哈工大的 https://github.com/HIT-SCIR/ltp 支持python / java / c++ 英文的话推荐...并继续关注spacy的中文版的开发情况https://github.com/howl-anderson/Chinese_models_for_SpaCy...

    推荐哈工大的
    https://github.com/HIT-SCIR/ltp
    支持python / java / c++

    英文的话推荐https://github.com/explosion/spaCy
    并继续关注spacy的中文版的开发情况https://github.com/howl-anderson/Chinese_models_for_SpaCy

    展开全文
  • 包括分词器(Word Segmenter),词性标注工具(Part-Of-Speech Tagger),命名实体识别工具(Named Entity Recognizer),句法分析器(Parser)等,可喜的事,他们还为这些工具训练了相应的中文模型,支持中文文本处理。...
  • 课程目标: 学习完本门课程,您将对自然语言处理技术有更深入的了解,彻底掌握中文命名实体识别技术。 适用人群: 自然语言处理从业者、深度学习爱好者 课程简介: 命名实体识别作为自然语言处理的基础技术之一,在...
  • 课程目标: 学习完本门课程,您将对自然语言处理技术有更深入的了解,彻底掌握中文命名实体识别技术。 适用人群: 自然语言处理从业者、深度学习爱好者 课程简介: 命名实体识别作为自然语言处理的基础技术之一,在...
  • CRF++训练中文命名实体识别 本文不涉及任何知识点的介绍,有兴趣自行查询。完全从小白到命名实体识别训练 参考文章如下: python CRF中文分词(crf++工具) 用CRF做命名实体识别(一) CRF++使用简介(windows下非...
  • NLP实战-中文命名实体识别

    千次阅读 2019-04-02 20:32:25
    本项目将通过pytorch作为主要工具实现不同的模型(包括HMM,CRF,Bi-LSTM,Bi-LSTM+CRF)来解决中文命名实体识别问题,文章不会涉及过多的数学推导,但会从直观上简单解释模型的原理,主要 的内容会集中在代码部分。...
  • HIT中文命名实体识别

    2012-04-26 20:38:43
    命名实体识别任务是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等。在当今世界,随着计算机的普及以及互联网的迅猛发展,大量的信息以电子文档的形式呈现在人们面前。为了应对信息爆炸...
  • 一、什么事命名实体识别命名实体识别(Named Entity Recognition,简称NER),又称作“专名识别”,是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等。通常包括两部分:(1)实体...
  • 四、 中文命名实体识别 新建Java项目,将data目录拷贝到项目根路径下,再把stanford-ner-2012-11-11-chinese解压的内容全部拷贝到classifiers文件夹下,将第三步中的三个Java包以及stanford NER和分词器的Java包...
  • 现在已经有了很多相关的具体算法和模型,对于这些大家可以看顶会论文和技术分享,我们主要来介绍几个专门面向中文命名实体识别和关系抽取的工具。 1. 中文分词 中文自然语言处理与其它语言比如英语的最大不同...
  • CRF++(Windows下)中文命名实体识别学习记录使用CRF++的工具包CRF分词原理准备语料特征模板训练测试评估标注结果 使用CRF++的工具包 windows版本的可直接下载解压,不需要安装。我下载的是0.58版,注意zip哦,...
  • 二、java版本使用三、python版本使用NLTK 命名实体识别一、简介:二、搭建环境三、nltk使用1、英文实体命名初体验2、使用nltk来处理中文资料结巴分词使用foolnltk 命名实体识别一、简介二、python版本使用Ltp 实体...
  • 一系列开源的Java文本分析工具,包括分词器(Word Segmenter),词性标注工具(Part-Of-Speech Tagger),命名实体识别工具(Named Entity Recognizer),句法分析器(Parser)等
  • Stanford CoreNLP是一个比较厉害的自然语言处理工具,很多模型都是基于深度学习方法训练得到的。 先附上其官网链接: https://stanfordnlp.github.io/CoreNLP/index.html ...
  • 1.计算命名实体词汇对齐的置信度:对一个中英双语句对,中文在初始分词的基础上进行命名实体识别。2.分词工具:采用中科院分词工具ICTCLAS、Stanford...3. 命名实体识别工具:对于上述的三种中文分词结果,均采用...
  • 将提供中文分词,词性标注,命名实体识别,情感分析,知识图谱关系转移,关键字检索,文本摘要,新词发现,情感分析,文本聚类等常用自然语言处理功能。参考了各大工具优缺点制作,将Jiagu回馈给大家。 目录 提供的...
  • stanford-ner命名实体识别基本使用

    千次阅读 2017-02-22 19:05:17
    命名实体识别(NER),可以使用Stanford NER开源工具。本文介绍如何在eclipse中,对中文进行命名实体识别,入门操作介绍。
  • 对于中文,token可以是一个词语(分词后的结果),也可以是单个汉字字符。 为便于说明,以下都将token试作等同于字符。 标签列表如下: B,即Begin,表示开始 I,即Intermediate,表示中间 E,即End,表示结尾 S,即...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 276
精华内容 110
关键字:

中文命名实体识别工具