文档章节

标记问题:词性标注(POS)和命名实体识别(NER)

AllenOR灵感
 AllenOR灵感
发布于 2017/09/10 01:27
字数 1296
阅读 21
收藏 0
点赞 0
评论 0

该系列将描述一些自然语言处理方面的技术,完整目录请点击这里


在 NLP 问题中,有两个问题是比较重要的标记问题:词性标注和命名实体识别。


比如上图我们介绍了一个简单的词性标注问题。模型输入的是一个句子,输出是一个标记序列,模型会为每个词都产生一个标记。我们的目标是构建一个高精度的词性标注模型。词性标注问题是 NLP 中最基础的问题之一,在很多的应用中都有用。

我们假设我们有一个标记训练集,也就是每个句子都带有标记序列。比如,Penn WSJ 包含 100万字(包含 40000 句子),并且已经被标记。类似的数据集还有很多。

词性标注的一个最大的挑战是歧义。很多的英文单词可能有多种不同的划分,别的语言也同样存在这个问题。比如上图中,就有几个比较含糊的单词。比如,句子中第一个单词 “profits”,在这个上下文语境中,它是一个名词,但是在别的语境中它可能是一个动词(例如,句子 “in the company profits from its endeavors”)。单词 “topping” 在这个句子中是一个动词,但是它也可以作为一个名词,比如 “the topping on the cake” 。单词 “forecasts” 和 “results” 在这个句子中都是名词。但是在其他的语境中,这两个单词都可以表示动词。我们进一步观察,单词 “quarter” 在句子中是一个名词,但是它也可以作为一个动词,只是使用的频率很低。所以,从这句话中,我们就可以发现词性标注确实存在很多的歧义。

第二个挑战是对低频词的判断,特别是一些在训练集中没有出现的词。即使在 100 万词的训练数据中,我们在测试集中也会出现很多没有看到过的词。举个例子,词 “Mulally” 和词 “topping” 这样的词语可能是相当的稀少,可能不会出现在我们的训练数据集里面。所以,如何去解决一些没有出现在训练集中的词是一个比较迫切的问题。

在计算词性标注时,我们会考虑两种不同的信息来源。第一,从统计学来说,单词在一个句子中属于不同词性是有一定的概率的。比如,“quarter” 这个词可以是名词也可以是动词,但是从统计学来说,它作为一个名词的概率更大。第二,上下文的信息对词性标注也有很重要的作用。特别是,一些句子的序列标注比别的序列标注存在的可能性更大。比如,我们考虑一个三元组序列 (D N V) ,这个序列出现在英语中的概率非常大(比如,the/D dog/N saw/N),但是序列 (D V N) 在英文中出现的概率就小很多了。

但有时候这两种信息会产生冲突,比如这个句子:


在这个句子中,can 我们应该标注成名词。但是,can 也能被标注成动词的,而且这个被使用的更加频繁。在这个句子中,由于上下文的关系 can 被标注成动词的概率已经被覆盖了。


图1:命名实体识别例子。模型的输入是一个句子,模型的输出是一个对应公司,位置和人员对应的命名实体识别句子。

图1是另一个比较重要的标注问题——命名实体识别。在这个标注问题中,模型的输入还是一个句子,输出是一个命名实体识别标记好的句子。在这个例子中,我们假设只存在三种可能的实体类型:PERSON,LOCATION 和 COMPANY。在这个例子中,我们将 Boeing Co 识别为一个公司名,Wall Street 识别为一个地点,Alan Mulally 识别为一个任命。对人名、地点和组织机构的识别时非常重要的研究内容,而且这些研究已经被应用到了实际的 NLP 项目中。


图 2

乍一看,命名实体识别好像不是标注问题。在图 1 中,输出句子没有把每一个词都进行标注。然而,将命名实体识别认为是一个标注问题是最直接的。最基础的标注方法就如图 2 中所示,如果单词不是实体的一部分,那么就被标注为 NA,如果一个词是公司的第一个单词那么就被标注为 SC,如果是公司的后几个单词,那么就被标注为 CC。

一旦我们在训练集上面得到了这种映射关系,那么在新的测试集上面我们就可以对句子进行测试标记了。

© 著作权归作者所有

共有 人打赏支持
AllenOR灵感
粉丝 10
博文 2139
码字总数 82983
作品 0
程序员
LTP语言云API使用文档

简介 语言云新版API是REST风格的WEB API调用服务,REST API服务有诸多优点,这使得它越来越流行。应用于语言云服务中,主要有如下特点: 免SDK安装:REST API的调用无须用户下载SDK,使得语言...

Airship ⋅ 2015/02/27 ⋅ 0

Ansj 中文分词 1.41 发布

ansj中文分词是一个完全开源的,基于google语义模型+条件随机场模型的中文分词的java实现.具有使用简单开箱即用等特点。分词速度达到每秒钟大约100万字左右(mac air下测试),准确率能达到9...

ansj ⋅ 2014/05/13 ⋅ 4

推荐|斯坦福的Stanford.NLP.NET:集合多个NLP工具

-欢迎加入AI技术专家社群>> - 日薪5K-10K招兼职AI讲师>> 该项目包含使用使用 IKVM.NET 将 Stanford NLP.jar 软件包重新编译到.NET 中的构建脚本,这些软件经过测试可以有效工作,该工具包的介...

cygqjbabx875u ⋅ 2017/12/25 ⋅ 0

JAVA自然语言处理NLP工具包

Java自然语言处理 LingPipe LingPipe 是一个自然语言处理的Java开源工具包。LingPipe目前已有很丰富的功能,包括主题分类(Top Classification)、命名实体识别(Named Entity Recognition)...

javaex999 ⋅ 2014/05/05 ⋅ 0

基于神经网络的实体识别和关系抽取联合学习 | PaperWeekly #54

最近,研究者们在基于神经网络方法上进行实体识别和关系抽取联合学习,我阅读了一些相关工作,在此和大家一起分享学习(本文中引用了一些论文作者 Suncong Zheng 的 PPT 报告)。 引言 本文关...

技术小能手 ⋅ 2017/12/04 ⋅ 0

Golang 自然语言处理--go-freeling

go-freeling 是Golang 自然语言处理器。 特性: 文字符号化 拆分句子 形态分析 后缀处理,附着词素代词的标记化 灵活的多字识别 收缩裂缝 未登录词类别的概率预测 命名实体检测 词性标注 基于...

匿名 ⋅ 2016/09/18 ⋅ 0

斯坦福NLP笔记46 —— Maximum Entropy Sequence Models

前面几节都是在探讨命名实体识别的问题,上一节给出用来分类器可以使用的一些特征,word shape之类的,这一节教授具体阐述了最大熵分类器的实现。 序列问题(sequence problem) NLP中常常需...

陈清扬 ⋅ 2014/07/20 ⋅ 0

基于BiLSTM-CNN-CRF的中文分词(一)

一、模型简介 在序列标注任务(中文分词CWS,词性标注POS,命名实体识别NER等)中,目前主流的深度学习框架是BiLSTM+CRF。其中BiLSTM融合两组学习方向相反(一个按句子顺序,一个按句子逆序)...

起昵称真麻烦啊 ⋅ 03/27 ⋅ 0

NLPIR文本智能分词是语义挖掘的关键

  词法分析是自然语言处理的基础与关键。在中文自然语言处理中,词是最小的能够独立活动的有意义的语言成分。汉语是以字为基本书写单位,词语之间没有明显的区分标记,因此进行中文自然语言...

ljrj123 ⋅ 02/27 ⋅ 0

中科院分词工具ICTCLAS Java JNI接口

ICTCLAS,网址:http://www.ictclas.org 中科院计算所ICTCLAS 5.0 ICTCLAS的含义是: Institute of Computing Technology, Chinese Lexical Analysis System (中科院)计算技术研究所,中文词法分......

smilethat ⋅ 2012/03/05 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

笔试题之Java基础部分【简】【一】

基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法,虚拟机方面的语法,其他 1.length、length()和size() length针对...

anlve ⋅ 12分钟前 ⋅ 1

table eg

user_id user_name full_name 1 zhangsan 张三 2 lisi 李四 `` ™ [========] 2018-06-18 09:42:06 星期一½ gdsgagagagdsgasgagadsgdasgagsa...

qwfys ⋅ 36分钟前 ⋅ 0

一个有趣的Java问题

先来看看源码: public class TestDemo { public static void main(String[] args) { Integer a = 10; Integer b = 20; swap(a, b); System.out......

linxyz ⋅ 41分钟前 ⋅ 0

十五周二次课

十五周二次课 17.1mysql主从介绍 17.2准备工作 17.3配置主 17.4配置从 17.5测试主从同步 17.1mysql主从介绍 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主...

河图再现 ⋅ 今天 ⋅ 0

docker安装snmp rrdtool环境

以Ubuntu16:04作为基础版本 docker pull ubuntu:16.04 启动一个容器 docker run -d -i -t --name flow_mete ubuntu:16.04 bash 进入容器 docker exec -it flow_mete bash cd ~ 安装基本软件 ......

messud4312 ⋅ 今天 ⋅ 0

OSChina 周一乱弹 —— 快别开心了,你还没有女友呢。

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享吴彤的单曲《好春光》 《好春光》- 吴彤 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :小萝莉街上乱跑,误把我认错成...

小小编辑 ⋅ 今天 ⋅ 8

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用...

jason_kiss ⋅ 昨天 ⋅ 0

Linux下php访问远程ms sqlserver

1、安装freetds(略,安装在/opt/local/freetds 下) 2、cd /path/to/php-5.6.36/ 进入PHP源码目录 3、cd ext/mssql进入MSSQL模块源码目录 4、/opt/php/bin/phpize生成编译配置文件 5、 . ./...

wangxuwei ⋅ 昨天 ⋅ 0

如何成为技术专家

文章来源于 -- 时间的朋友 拥有良好的心态。首先要有空杯心态,用欣赏的眼光发现并学习别人的长处,包括但不限于工具的使用,工作方法,解决问题以及规划未来的能力等。向别人学习的同时要注...

长安一梦 ⋅ 昨天 ⋅ 0

Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令...

刘祖鹏 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部