NLP学习路径(四):NLP词性标注与命名实体识别

1、词性标注
(1)词性标注简介
词性标注是在给定句子中判定每个词的语法范畴,确定其词性并加以标注。但在中文中,一个词的词性很多时候都是不固定的。从整体上看大多数词语,尤其是实词,一般只有1-2个词性,且其中一个词性的使用频次远远大于另一个,即使每次都将高频词性作为词性选择进行标注,也能实现80%以上的准确率。
目前较为主流的方法是同分词方法一样,将句子的词性标注作为一个序列标注问题来解决,即可以用分词的方法用来进行词性标注。
(2)词性标注规范
较为主流的主要为北大的词性标注集和宾州词性标注集两大类。
(3)Jieba分词中的词性标注
结合规则和统计的方式,即词典匹配和HMM共同作用。词性标注流程如下:
1)首先基于正则表达式进行汉字判断:

re_han_internal = re.compile("([\u4E00-\u9FD5a-zA-Z0-9+#&\._]+)")

2)若符合上面的表达式。则被判定为是汉字,然后基于前缀词典构建有向无环图,再基于有向无环图计算最大概率路径,同时在前缀词典中找出它所分出的词性,若在词典中未找到,则赋予词性“x”(代表未知)。若在这个过程中,设置使用HMM,且待标注词为未登录词,则会通过HMM的方式进行词性标注。
3)若不符合表达式,将继续通过正则表达式进行类型判断,分别赋予“x”,“m”(数词)和“eng”(英文)。
例子:

2、命名实体识别
(1)命名实体识别简介
目的:识别语料中人名、地名、组织机构名等命名实体。由于这些命名实体的构成方法具有各自的规律性,因此,通常把对这些词的识别在词汇形态处理(如汉语切分)任务中独立处理,称为命名实体识别(NER)。NER研究的命名实体一般分为三类(实体类、时间类、数字类)和7小类(人名、地名、组织机构名、时间、日期、货币、百分比)。
命名实体识别效果的评判主要看实体的边界是否划分正确以及实体的类型是否标注正确。
中文命名实体识别的难点:
1)各类命名实体的数量众多
2)命名实体的构成规律复杂
3)嵌套情况复杂
4)长度不确定
命名实体识别的方法:
1)基于规则:往往依赖于具体语言、领域和文本风格,可移植性差、更新维护困难。
2)基于统计:隐马尔可夫模型、最大熵模型、条件随机场。主要思想是基于人工标注的语料,将命名实体识别任务作为序列标注问题来解决。此方法对语料库的依赖比较大。
3)混合方法

目前主流方法是序列标注方式。

(2)基于条件随机场的命名实体识别
条件随机场是在给定观察的标记序列下,计算整个标记序列的联合概率,而HMM是在给定当前状态下,定义下一个状态的分布。
线性链条件随机场(CRF):不仅考虑上一状态,还考虑后续的状态结果。HMM处理时每个状态依赖上一个状态,而CRF依赖于当前状态的周围结点状态

CRF的参数化形式如下:
NLP学习路径(四):NLP词性标注与命名实体识别_第1张图片
使用CRF来做命名实体识别时,目标就是求arg maxP(y|x),与HMM求解最大可能序列路径一样,采用veterbi算法。

3、实战
例子:日期识别
日期识别Github完整代码
例子:地名识别

参考:《python自然语言处理实战 核心技术与算法》

你可能感兴趣的:(学习笔记,NLP)