4

命名实体识别(NER)

 2 years ago
source link: https://hpeiyan.github.io/2019/07/31/NER/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

命名实体识别(NER)

发表于

2019-07-31

|

更新于 2019-08-05

| 分类于 ml

nlp

本文字数: 1.1k

|

阅读时长 ≈ 1 分钟

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

有监督的学习方法:这一类方法需要利用大规模的已标注语料对模型进行参数训练。目前常用的模型或方法包括隐马尔可夫模型、语言模型、最大熵模型、支持向量机、决策树和条件随机场等。值得一提的是,基于条件随机场的方法是命名实体识别中最成功的方法。

半监督的学习方法:这一类方法利用标注的小数据集(种子数据)自举学习

无监督的学习方法:这一类方法利用词汇资源(如WordNet)等进行上下文聚类。

混合方法:几种模型相结合或利用统计方法和人工总结的知识库。

值得一提的是,由于深度学习在自然语言的广泛应用,基于深度学习的命名实体识别方法也展现出不错的效果,此类方法基本还是把命名实体识别当做序列标注任务来做,比较经典的方法是LSTM+CRF、BiLSTM+CRF。

3. 数据集

4. 工具包

5. 实战应用

5.1 使用预训练模型

很多工具包有提供已经训练好的NER模型,可以直接使用。

5.2 训练自己的NER模型

5.2.1 有监督的学习方法

1)语料准备
可以查找公开的数据集,或者自己人工标记语料,人工标记流程如下:

  1. 定义实体类别,比如:

    time: 时间
    location: 地点
    person_name: 人名
    org_name: 组织名
    company_name: 公司名
    product_name: 产品名
  2. 人工标记实体

2)数据增强(Optional)
对原语料进行分句,然后随机地对各个句子进行bigram、trigram拼接,最后与原始句子一起作为训练语料。

3)模型训练

  1. 传统机器学习:隐马尔可夫模型、语言模型、最大熵模型、支持向量机、决策树和条件随机场等,推荐条件随机场。
  2. 深度学习:BiLSTM-CRF、IDCNN-CRF
5.2.2 半监督的学习方法
5.2.3 无监督的学习方法

6. Reference


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK