对于中文的NLP来说,完成分词和词性标注之后,命名实体识别是接下来重要的一步,其目的是为了识别自然语言中的各部分词性和分类。但是和实际需要的自然语言处理的关系呢?以及其基本的实现原理?包括常用的HMM,CRF和逐渐火热起来的Deep learning用与实体识别。这里做一个初步的探索。$\pi$
命名实体识别的本质是按预计定义对词进行分类,常见的识别目标有人名,地名,货币,时间,商品名,机构名等等。
命名实体识别方法可分为按统计和按规则,因为个人目前对ML领域的兴趣,所以打算从统计方法入手。下面介绍常用的隐性马尔可夫模型(HMM),和学校里学到的markov chain不同,此处HMM的状态是不可见的。思考HMM与命名实体识别(NER)的关系,为什么用HMM来解决NER的问题呢?摘自wiki的一个图:
x(n)表示某一个时间的状态,是不可直接观测的,但是可以通过观测y(n)来间接观测。常用的Viterbi算法就是计算已知y(n)序列下的x(n)序列的概率问题。Viterbi算法之前在学校学习卷积码计算中接触过,现在简单回顾一下。Viterbi算法是个基于动态规划思路的算法,算法的目的是计算概率最大的路径。