学习笔记CB007:分词、命名实体识别、词性标注、句法分析树
中文分词把文本切分成词语,还可以反过来,把该拼一起的词再拼到一起,找到命名实体。
概率图模型条件随机场适用观测值条件下决定随机变量有有限个取值情况。给定观察序列X,某个特定标记序列Y概率,指数函数 exp(∑λt+∑μs)。符合最大熵原理。基于条件随机场命名实体识别方法属于有监督学习方法,利用已标注大规模语料库训练。
命名实体的放射性。命名实体的前后词。
特征模板,当前位置前后n个位置字/词/字母/数字/标点作为特征,基于已经标注好语料,词性、词形已知。特征模板选择和具体识别实体类别有关。
命名实体,人名(政治家、艺人等)、地名(城市、州、国家、建筑等)、组织机构名、时间、数字、专有名词(电影名、书名、项目名、电话号码等)。命名性指称、名词性指称和代词性指称。
词形上下文训练模型,给定词形上下文语境中产生实体概率。词性上下文训练模型,给定词性上下文语境中产生实体概率。给定实体词形串作为实体概率。给定实体词性串作为实体概率。
词性,名、动、形、数、量、代、副、介、连、助、叹、拟声。自然语言处理词性,区别词、方位词、成语、习用语、机构团体、时间词,多达100多种。汉语词性标注最大困难“兼类”,一个词在不同语境中有不同词性,很难从形式上识别。
词性标注过程。标注,根据规则或统计方法做词性标注。校验,一致性检查和自动校对方法修正。
统计模型词性标注方法。大量已标注语料库训练,选择合适训练用数学模型,概率图隐马尔科夫模型(HMM)适合词性标注基于观察序列标注情形。
隐马尔可夫模型参数初始化。模型参数初始化,在利用语料库前用最小成本和最接近最优解目标设定初值。HMM,基于条件概率生成式模型,模型参数生成概率,假设每个词生成概率是所有可能词性个数倒数,计算最简单最有可能接近最优解生成概率。每个词所有可能词性,已有词表标记,词表生成方法简单,已标注语料库,很好统计。生成概率初值设置0。
规则词性标注方法。既定搭配关系上下文语境规则,判断实际语境按照规则标注词性。适合既有规则,对兼词词性识别效果好,不适合网络新词层出不穷、网络用语新规则。机器学习自动提取规则,初始标注器标注结果和人工标注结果差距,生成修正标注转换规则,错误驱动学习方法。经过人工校总结大量有用信息补充调整规则库。
统计方法、规则方法相结合词性标注方法。规则排歧,统计标注,最后校对,得到正确标注结果。首选统计方法标注,同时计算计算置信度或错误率,判断结果是否可疑,在可疑情况下采用规则方法歧义消解,达到最佳效果。
词性标注校验。校验确定正确性,修正结果。检查词性标注一致性。一致性,所有标注结果,相同语境同一个词标注相同。兼类词,被标记不同词性。非兼类词,人工校验或其他原因导致标记不同词性。词数目多,词性多,一致性指标无法计算公式求得,基于聚类和分类方法,根据欧式距离定义一致性指标,设定阈值,保证一致性在阈值范围内。词性标注自动校对。不需要人参与,直接找出错误标注修正,适用一个词词性标注通篇全错,数据挖掘和规则学习方法判断相对准确。大规模训练语料生成词性校对决策表,找通篇全错词性标注自动修正。
句法分析树生成。把一句话按照句法逻辑组织成一棵树。
句法分析分句法结构分析和依存关系分析。句法结构分析是短语结构分析,提取出句子名词短语、动词短语等。分基于规则的分析方法和基于统计分析方法。基于规则方法存在很多局限性。基于统计方法,基于概率上下文无关文法(PCFG),终结符集合、非终结符集合、规则集。
先展示简单例子,感受计算过程,再叙述理论。
终结符集合,表示有哪些字可作句法分析树叶子节点。非终结符集合,表示树非页子节点,连接多个节点表达关系节点,句法规则符号。规则集,句法规则符号,模型训练概率值左部相同的概率和一定是1。
一句话句法结构树可能有多种,只选择概率最大作句子最佳结构。 设W={ω1ω2ω3……}表示一个句子,其中ω表示一个词(word),利用动态规划算法计算非终结符A推导出W中子串ωiωi+1ωi+2……ωj的概率,假设概率为αij(A),递归公式,αij(A)=P(A->ωi),αij(A)=∑∑P(A->BC)αik(B)α(k+1)j(C)。
句法规则提取方法与PCFG的概率参数估计。大量的树库,训练数据。树库中句法规则提取生成结构形式,进行合并、归纳等处理,得到终结符集合∑、非终结符集合N、规则集R。概率参数计算方法,给定参数一个随机初始值,采用EM迭代算法,不断训练数据,计算每条规则使用次数作为最大似然计算得到概率估值,不断迭代更新概率,最终得出概率符合最大似然估计精确值。
参考资料:
《Python 自然语言处理》
http://www.shareditor.com/blogshow?blogId=82
http://www.shareditor.com/blogshow?blogId=86
http://www.shareditor.com/blogshow?blogId=87
欢迎推荐上海机器学习工作机会,我的微信:qingxingfengzi
学习笔记CB007:分词、命名实体识别、词性标注、句法分析树的更多相关文章
- NLP入门(八)使用CRF++实现命名实体识别(NER)
CRF与NER简介 CRF,英文全称为conditional random field, 中文名为条件随机场,是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机 ...
- 神经网络结构在命名实体识别(NER)中的应用
神经网络结构在命名实体识别(NER)中的应用 近年来,基于神经网络的深度学习方法在自然语言处理领域已经取得了不少进展.作为NLP领域的基础任务-命名实体识别(Named Entity Recognit ...
- HMM(隐马尔科夫模型)与分词、词性标注、命名实体识别
转载自 http://www.cnblogs.com/skyme/p/4651331.html HMM(隐马尔可夫模型)是用来描述隐含未知参数的统计模型,举一个经典的例子:一个东京的朋友每天根据天气{ ...
- HMM与分词、词性标注、命名实体识别
http://www.hankcs.com/nlp/hmm-and-segmentation-tagging-named-entity-recognition.html HMM(隐马尔可夫模型)是用来 ...
- 哈工大LTP基本使用-分词、词性标注、依存句法分析、命名实体识别、角色标注
代码 import os from pprint import pprint from pyltp import Segmentor, Postagger, Parser, NamedEntityRe ...
- 用深度学习做命名实体识别(七)-CRF介绍
还记得之前介绍过的命名实体识别系列文章吗,可以从句子中提取出人名.地址.公司等实体字段,当时只是简单提到了BERT+CRF模型,BERT已经在上一篇文章中介绍过了,本文将对CRF做一个基本的介绍.本文 ...
- NLP入门(五)用深度学习实现命名实体识别(NER)
前言 在文章:NLP入门(四)命名实体识别(NER)中,笔者介绍了两个实现命名实体识别的工具--NLTK和Stanford NLP.在本文中,我们将会学习到如何使用深度学习工具来自己一步步地实现N ...
- 用深度学习做命名实体识别(六)-BERT介绍
什么是BERT? BERT,全称是Bidirectional Encoder Representations from Transformers.可以理解为一种以Transformers为主要框架的双 ...
- 用深度学习做命名实体识别(二):文本标注工具brat
本篇文章,将带你一步步的安装文本标注工具brat. brat是一个文本标注工具,可以标注实体,事件.关系.属性等,只支持在linux下安装,其使用需要webserver,官方给出的教程使用的是Apac ...
随机推荐
- 微信h5支付出现“商家参数格式有误,请联系商家解决”
在浏览器进行微信h5支付时出现:
- Django知识总结(二)
拾 ● 模型(M) 一 ● ORM(对象关系映射, Object Relational Mapping) 类----一张表 类的实例对象----表中的一条记录 映射关系 ①python的类名对应的SQ ...
- [Oracle][RMAN]关于Oracle RMAN里面的Merged Incremental Backups的Tag分离机能
关于Oracle RMAN里面的Merged Incremental Backups的机能,RMAN使用的比较多的DBA们可能会有所了解. 基本上,每次都实行同样的Backup命令即可完成BACK. ...
- R语言的精度和时间效率比较(简单版)
R语言的最大数值 在R语言里面,所能计算的最大数值可以用下面的方法获得: ###R可计算最大数值 .Machine 在编程的时候注意不要超过这个数值.当然,普通情况下也不可能超过的. R语言的最大精度 ...
- thinkPHP验证码不显示问题
使用验证码的时候,不显示图片时,要清理下输出缓存:ob_clean_end();
- (2018 Multi-University Training Contest 2)Problem G - Naive Operations
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6315 题目大意:告诉你a,b两个数组,a数组初始化为0,b数组告诉你长度和具体值,接下来有q次操作,a ...
- 关于MySQL5.7 这几天的总结(json类型)
一开始,老板让调整一下 innodb_buffer_pool_size 大小,因为这台机器内存大. 看了下内存,16G,再SQL下面命令,得到结果是4G. SELECT @@innodb_buffer ...
- bottle模板中的替换
line是模板中一行的内容,类似: {{x}}testinfo{{x+10}} x=10时,模板输出: 10testinfo20 x = 10 splits = re.split(r'\{\{(.*? ...
- JS快排
- 移动终端设备ID
转自:https://wetest.qq.com/lab/view/116.html 一.前言 对于移动端产品的常规统计分析和运营推广,渠道结算来说,能精准的识别区分并且跟踪一台终端设备(一个终端用户 ...