中文纠错——CRF+N-grams

这是我的web搜索课程的大作业之一,为了这个作业学习了CRF和N-grams的原理,记录以便以后参考。

中文纠错的两步任务

本实验采用CRF模型对文本句子进行错误标注,n-grams模型对错误文本句子进行纠错。

CRF: Conditional Random Field

1. CRF的原理

  1. CRF的原理
    条件随机场由图论发展而来,目前使用最广泛的是线性链条件随机场。
    线性链条件随机场的定义如下:
    定义

其原理如下图所示:

某一刻的状态 y i y_i yi 只与输入的观测序列和相邻的两个状态有关,如上图创建两个特征函数 s l , t k s_l,t_k sl,tk,由图论中的Hammersley-Clifford定理,可以得到:
在这里插入图片描述
其中
在这里插入图片描述

为归一化因子,特征函数 s l , t k s_l,t_k sl,tk为二值函数,函数值为0或1,满足特征条件时取值为1,否则为0; μ l , λ k μ_l,λ_k μl,λk为特征对应权值,其取值为任意值,当取值为正时,表示倾向于此特征,反之表示不倾向。在模型的训练当中,训练的参数为权重 μ l , λ k μ_l,λ_k μl,λk

2. CRF在本实验的应用

可以见本实验的第一个任务看成中文词性标注任务,其中标注类别为2类——“C”和“W”。实验步骤如下:
(1) 对数据中的句子序列进行原子切分,得到原子切分序列;
(2) 对字进行标注;
(3) 确定特征函数;
(4) 训练CRF模型参数
其中,本实验采用的特征函数是
在这里插入图片描述
b表示bias, w i w_i wi表示第i个词。 f j f_j fj表示第j个标注序列的特征函数。设 l j l_j lj为一个序列的标注序列,s为输入的序列,那么此标注的分数为:
在这里插入图片描述
其条件概率:
在这里插入图片描述

3. 数据预处理

本实验中CRF模型训练的用到的数据集都经过了切分和字性标注的处理,句子被切分成一个个字,由出错序列和正确序列一一对比标注字的正误。句子序列的长度限制在5个字以上。但是产生的问题是,当正确序列与出错序列的长度不相同时,就不会标注字的正误,这种序列被跳过了,在实际问题中,无法解决赘余、缺字这样的拼写错误。

N-grams

1. N-grams的原理

N-grams将文本切分为长度等于N的字节片段(gram),统计所有gram的频度,按照一个阈值过滤形成关键gram表,作为文本的向量特征空间。N-grams假设第N个词的出现只与前面N-1个词相关,整句的概率就是各个词出现概率的乘积,例如当N=2时有:
P ( w 1 , w 2 , … , w n ) = ∏ i = 1 n P ( w i ∣ w i − 1 ) P(w_1,w_2,…,w_n) = \prod_{i=1}^{n}P( w_i |w_{i-1}) P(w1,w2,,w

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值