CRF系列——一个简单的例子
CRF可以应用于对一串序列进行自动标注的问题。例如对文字序列进行词性标,即要自动判断句子中每个单词的词性。在这样的问题中,每一个词的标注结果,不仅依赖于该词语本身,还会依赖于其他词语的标注结果。CRF可以考虑到这样的依赖关系。 本文会以一个词性标注的应用为例,介绍CRF所解决的问题以及CRF模型的建立,学习与预测过程。 任务描述 词性标注 (part-of-speech tagging),其目标就是对一个句子即一串单词的序列进行打标签(tagging),标注每个词的词性(ADJECTIVE, NOUN, PREPOSITION, VERB, ADVERB, ARTICLE)。我们假设在词性标准任务中, 每个单词的词性不仅依赖其本身,而且也会依赖其前一个单词 (这里做了简化,实际上每个单词的标注结果依赖更多东西)。 下面,我将针对对这个问题,建立一个简单的线性链条件随机场(linear-chain CRF)。并介绍这个CRF是如何表示上述的依赖关系,以及如何利用这个CRF来求解这个问题。 实际上,和其他的统计机器学习模型一样,我们有三个任务要完成: 1)指定模型参数(建立模型) 2)估计这些参数(学习) 3)利用这些参数进行预测(预测) 第一个任务——建立模型 特征函数 为了评价序列中每个单词属于各个tag的可能性,我们要根据单词的位置定义一系列 特征函数 (feature