1. 隐马尔可夫模型
输入(训练):词(观测,共m个)及对应的实体类型(状态,共n个),
构建:
-
n*n 状态转移概率矩阵A( 表示时刻 处于状态,下一刻转移到的概率)
-
n*m 观测矩阵B(表示处于状态,观测为的概率)
-
初始状态概率向量 π
输出:训练后的 A,B,π
缺点:
-
没有考虑后面的词对前面的词的影响
-
限制了受影响的范围为1
2. 条件随机场
随机场:由若干个位置组成的整体,当给每一个位置中按照某种分布随机赋予一个值之后,其全体就叫做随机场。
马尔科夫随机场:假设随机场中某一个位置的赋值仅仅与和它相邻的位置的赋值有关,和与其不相邻的位置的赋值无关。
条件随机场(CRF):假设马尔科夫随机场中只有X和Y两种变量,X一般是给定的,而Y一般是在给定X的条件下我们的输出。
线性链条件随机场(linear-CRF):X和Y有相同的结构(长度相同)的CRF
CRF模型在训练时,给定训练序列样本集(X,Y),通过极大似然估计、梯度下降等方法确定CRF模型的参数;预测时,给定输入序列X,根据模型,用维特比算法求出P(Y|X)最大的序列y(这里注意,LSTM输出的是一个个独立的类别,CRF输出的是最优的类别序列,也就是CRF全局的优化要更好一些)。
本质思想
某一个时刻状态由所有观测值(在CRF中,X序列作为一个整体看)以及上一个时刻状态决定。具体的,分为
- 节点特征共L个,满足特征为1,表示输入为X的第个位置输出(标记)为在第l个特征的特征值。
- 上下文特征K个,满足特征为1
对各个特征加上权重,得到:
对于满足特征 ,理解为:事先有一些规则,如果满足规则,则为1,如给定:
表示认为第1个上下文特征为:名词+动词形式的权重为1;第1个节点特征为:位置为1是名词的权重为1。
统一特征
表示节点在序列的位置,统一化特征后:
给定x,算某个y的条件概率:遍历,满足特征则为1,然后求和,最后归一化,即可以得到在输入为X序列情况下,输出为y序列的条件概率。
内积形式
进一步,可以将用向量表示:
则,Linear-CRF就是可以化为内积形式:
训练过程
在满足特征那里说了要有一些规则,那么如何在给定一些训练数据的情况下,得到那些规则呢?
我们可以看到,那些规则可以人为制定,但是权重w不好定。可以使用梯度下降法求解极大似然估计概率。
预测过程(解码)——维特比算法
维特比算法:动态规划思想,利用了两个局部状态(当前状态最大值以及当当前状态取最大值时上一个状态的值)和对应的递推公式,从局部递推到整体,进而得解。
输入:模型的k个特征函数及对应的权重,观测序列,标记个数m
输出:最优标记序列
1) 初始化,表示取最大值时,前一时刻的状态。
2)对于,进行递推:
3)终止:
4) 回溯:
总结
根据预料和给定的规则,训练出来每个规则的权重,可以给固定长度的序列打标签,考虑了结构但没有考虑句子语义上的信息,预测时每个3个长度的输入输出都一样?
没有考虑后面的词对前面的词的影响,但是特征里面可以自己定义,比如词长度大于10为名词概率为0.6等等。
3. svm
需要将文本向量化 :分词,然后用pLSA,LDA,word2vec等提取特征。
训练:每个词及上下文特征为输入X,该词实体名词为输出Y
不能使用到上下文分类的结果。
网友评论