基于语义的社交媒体非规范词纠正方法与流程

文档序号:13446223阅读:251来源:国知局
基于语义的社交媒体非规范词纠正方法与流程

本发明属于数据挖掘领域,特别涉及一种非规范词检测及识别技术。



背景技术:

随着web2.0的兴起,互联网模式由专业人员织网转变为所有用户参与织网,在形式更为民主化的同时,也意味着将有大量来自用户的低成本低质量的信息产生。社交媒体是用户发布和传播信息的重要平台,允许用户不限地点、不限时间分享自己的生活和想法。twitter是一家面向全球范围的社交网站,它的特点在于用户发表推文时有字符数量限制。这就导致了用户可能使用更便捷简短的缩写或网络词汇来表达观点,将产生大量的非规范词汇,影响相关研究者对推文的后续分析。所以,对非规范词汇进行纠正是非常必要的。

张仰森教授提出英文文本中主要出现非词错误和真词错误两种词汇错误情况,非词错误指在字典中无法找到的书写不规范词汇,而真词错误指可在字典中找到但不符语境的语法错误类词汇。本发明仅针对非词错误情况。出现非词错误的非规范词一般指拼写错误词汇、延长词以及无意义词汇。

首先对于非规范词的检测和识别方面,目前并没有很多有效方法。最常用的就是查字典法,也就是通过遍历字典库查找与待识别词相匹配的单词,如果有则判定为规范词,反之则判定为非规范词。也有学者利用查找n-gram表的方法进行非规范词识别,即遍历已有的n-gram表并统计其出现次数,当词频低于某阈值则判定为非规范词。

对于非规范词纠正方面,已有一些较为有效的方法和研究,且已应用于部分搜索引擎、输入法等商业产品中。最常用的有最小编辑距离法、词干法、统计法、总结规则法以及构建字典法等。

要将自然语言交给机器学习中的算法来处理,首先就要将语言数学化,一个最常用的方法就是把每个词表示为一个词向量。词向量是一个很好的表现单词语义的方式。其中one-hotrepresentation最直观,这种方法把每个词表示为一个很长的向量,只有一个维度的值为1,代表了当前的词,其余均为0。此方法虽简单但会带来维度灾难,后来学者提出了distributedrepresentation的方法,表示的一种低维实数向量。当前常用获取词向量的模型有:①word2vector模型②glove模型③lsa矩阵分解模型④plsa潜在语义分析概率模型。

以twitter为例的社交媒体不断产生大量无意义的噪声信息以及重复冗余的信息,比如用户的闲聊及转发。为方便研究者对社交媒体数据的分析,文本信息去噪以及规范化是很有必要的。随着自然语言处理技术的发展以及单词规范化和单词语义表征的深度研究,近些年出现了很多针对于普通文本的规范化系统,然而这些传统方法大多受限于单词的词形,使得其在twitter中的应用效果大大降低。



技术实现要素:

为解决上述技术问题,本申请提出一种基于语义的社交媒体非规范词纠正方法,在常规的拼写纠错技术上,加入了非规范词汇的语义信息作为另一考虑因素,优化了最短编辑距离法难以处理词形差异较大的非规范词的问题。

本发明采用的技术方案为:基于语义的社交媒体非规范词纠正方法,包括:

s1、语义信息构建,采用glove模型获取每个单词的词向量,计算任意两个词向量之间的距离;

s2、非规范词识别,通过对推文进行预处理得到完整单词列表;将列表中的每个单词与字典集合中的单词进行比对;若成功匹配则列表中的该单词为规范词;否则为非规范词;

s3、对于步骤s2判断得到的非规范词,找出与其词向量距离较小的n各词向量对应的单词;找出这些单词中的规范单词,选择其中与非规范词向量最小的规范单词对其进行替换。

进一步地,所述计算任意两个词向量之间的距离的方法为:欧几里得距离或明可夫斯基距离或切比雪夫距离或曼哈顿距离或马哈拉诺比斯距离或余弦夹角。

进一步地,步骤s2所述预处理具体为:

a1、过滤推文噪声;所述推文噪声包括:无效字符以及乱码;

a2、提取包含话题的单词以及包含用户名的单词,得到话题话题词和用户名;

a3、去除重复词;

a4、采用所有非字母符号对英文单词进行分词处理。

更进一步地,步骤s2所述的字典集合至少包括:各常用英文字典、通过预处理得到的话题词以及用户名。

进一步地,步骤s3还包括:

b1、采用单词间最小编辑距离d表示词形相似;

b2、通过设置词义参数α来表示词向量的质量,用该α乘以词向量间的距离l表示词义相似性;

b3、根据下式计算与非规范词关系紧密度最高的规范词;并根据该规范词来对费规范词进行纠正;

s(ω1,ω2)=d+β×l×α

其中,s(ω1,ω2)表示两个单词间的关系紧密度,s(ω1,ω2)值越小紧密度越高,β表示语义权重。

基于语义的社交媒体非规范词纠正方法,包括:

s1、语义信息构建,采用glove模型获取每个单词的词向量,计算任意两个词向量之间的距离;

s2、非规范词识别,通过对推文进行预处理得到完整单词列表;将列表中的每个单词与字典集合中的单词进行比对;若成功匹配则列表中的该单词为规范词;否则为非规范词;

s3、对于步骤s2判断得到的非规范词,利用pyenchant和pytypo对各待纠正非规范词进行处理,得到相应的纠错建议词列表;

遍历纠错建议词列表,计算列表中每一个建议单词与待纠正非规范词的最小编辑距离,得到词形相似度;计算各建议词向量与待纠正非规范词向量之间的距离,得到语义相似度;

根据下式结合词形相似度与语义相似度,对每一个建议词与待纠正非规范词计算出一个分值;对每一个待纠正非规范词将纠错建议词列表按照分值由低至高重新排序,最前面的建议词对非规范词进行替换;若纠错建议词列表为空,直接过滤该非规范词;

s(ω1,ω2)=d+β×l×α

其中,s(ω1,ω2)表示两个单词间的关系紧密度,s(ω1,ω2)值越小紧密度越高,β表示语义权重,α为词义参数,l为词向量间的距离。

进一步地,所述计算任意两个词向量之间的距离的方法为:欧几里得距离或明可夫斯基距离或切比雪夫距离或曼哈顿距离或马哈拉诺比斯距离或余弦夹角。

进一步地,步骤s2所述预处理具体为:

a1、过滤推文噪声;所述推文噪声包括:无效字符以及乱码;

a2、提取包含话题的单词以及包含用户名的单词,得到话题话题词和用户名;

a3、去除重复词;

a4、采用所有非字母符号对英文单词进行分词处理。

更进一步地,步骤s2所述的字典集合至少包括:各常用英文字典、通过预处理得到的话题词以及用户名。

本发明的有益效果:本发明的基于语义的社交媒体非规范词纠正方法,利用了最小编辑距离的方式表征单词的词形,以及利用词向量间余弦距离的方式表征单词的语义信息相似度,共同筛选预期正确词来替换非规范词,可以达到以下有益效果:

1、利用了现有的pyenchant工具来获取初步拼写纠错建议单词列表,大大减少了计算量,提高了获取预期正确词集合的速率,帮助更快地定位最佳替换选择;

2、在锁定正确词时,不仅考虑了常见的词形相似问题,还考虑了词向量能够表征单词的语义信息,用余弦距离法表征词向量间语义信息的相似程度,更全面的设计了正确词与非规范词相近程度的判定条件,使得选出的正确词为理想预期词汇的概率大大增加,纠错效果更好;

3、把不同类型非规范词情况都考虑进来,对于许多常用方法纠错效果不理想的延长词利用pytypo进行了处理;无意义词过滤后进行人工判断,加入字典集;推文预处理期间考虑了话题词和用户名对纠错过程的干扰,收集起来加入字典集,使得字典集更加完善。

附图说明

图1为本申请的方案流程图;

图2为非规范词识别流程图;

图3为单词纠错流程图。

具体实施方式

为便于本领域技术人员理解本发明的技术内容,下面结合附图对本发明内容进一步阐释。

如图1所示为本申请的方案流程图,本申请的技术方案为:基于语义的社交媒体非规范词纠正方法,包括:

s1、语义信息构建,采用glove模型获取每个单词的词向量,计算任意两个词向量之间的距离;

glove是将两个词的同现概率比编码为空间中的向量差。如p(k|i)/p(k|j)的值越大,词k的语义就更接近于i,相反,p(k|i)/p(k|j)值越接近0,词k的语义就更接近于j。

定义pij表示单词j出现在单词i上下文的概率:

定义f(ωi,ωj,ωk)表示单词i出现在单词k上下文的概率与单词j出现在单词k上下文的概率的比值:

其中ωi,ωj,ωk分别表示单词i,j,k的词向量,它们的维度是事先设定好的d维空间中的实数向量。

然而,glove的目的是将向量差编码为词共现概率的比值,所以上式修改为:

上式中,左边的变量是两个空间中的向量,右式是一个可以通过语料库统计的共现矩阵得出的实数。为简化上式,通过向量ωk与向量差ωi-ωj的内积运算,可以将等式左边的因变量从向量转化为实数:

为了满足共现矩阵的对称性,将上述等式的左式作如下变形:

这样,可以得到下列等式:

求解方程,得到:

再对上式进行变形,引入偏置,这是由于对数函数性质,防止它发散:

为了上式成立,通过最优化最小平方法,并引入加权函数f(xij),最终得到目标函数:

其中f(xij)与xij相关,当单词之间共现次数较低时,f(xij)取值应较低,以减少f(xij)对目标函数的影响;当共现次数过高时,为避免影响整体训练效果,应在xij到达一定阈值时,保持f(xij)值不变。

常用的衡量向量距离的方式有:欧几里得距离、明可夫斯基距离、切比雪夫距离、曼哈顿距离、马哈拉诺比斯距离,余弦夹角等。最受欢迎的是欧几里得距离法和余弦夹角法。经分析测试,本申请实施例选用计算余弦夹角的方法衡量向量距离。计算公式如下:

s2、非规范词识别,通过对推文进行预处理得到完整单词列表;将列表中的每个单词与字典集合中的单词进行比对;若成功匹配则列表中的该单词为规范词;否则为非规范词;

如图2所示,从twitterapi接口获取到大量推文信息,从数据库里提取推文的原始文本数据,首先进行一定的预处理:

①过滤无效的字符及乱码等文本噪声;

②提取包含“#”(话题)的单词及“@”(提及)的用户名,作为备用材料;

③去重;

④分词;

⑤过滤符号及阿拉伯数字等。

在处理包含数字的单词时,本发明利用所有非字母符号来对英文单词进行分词处理。由于过滤了阿拉伯数字,并加大了分词的力度,有效地分解了复合词和含数字词,其实也可以看作一种规范化的过程。本发明使用了python的wordsegment开源库来分解复合词。

预处理后将得到一个完整单词列表,通过列表再判断每个单词是否规范。前面提到目前没有很好的识别单词的方法,只有采用最基本的遍历字典的方法。将单词列表每一个单词与字典里每个单词进行比对,如果在字典成功匹配到相同单词,认为待检测单词为规范词,反之则认为是非规范词。本发明中的字典集合不但有网上搜集的多个常用英文字典,还添加了预处理过程中得到的话题词及用户名。考虑社交媒体的特殊性,会不断有新产生的网络用语或生僻词等,本发明通过人工判断单词的规范性来完善字典集。常用英文字典包括:朗文字典,牛津字典,柯林斯字典等。

最后得到非规范词的列表,再进行后续纠错处理。

s3、对于步骤s2判断得到的非规范词进行纠错,本申请提出了两种解决方案:

方案一:找出与其词向量距离较小的n各词向量对应的单词;找出这些单词中的规范单词,选择其中与非规范词向量最小的规范单词对其进行替换;具体为:

前文预处理中已经将复合词及含数字词规范化了,剩余拼写错误词、延长词及无意义词未处理。针对无意义词,本发明采用过滤的方式进行处理。对于拼写错误词和延长词,利用前文讲述的词向量间余弦距离方法进行纠错,也就是对于每一个错误单词,找到与其词向量余弦距离最接近的那些词向量对应的单词,用其中的正确词对非规范词进行替换。

然而如果直接使用余弦距离来选择选择对应正确词的效果不是很理想,单词之间的相似度可以分为词形的相似和词义的相似。根据传统的单词纠错方法,最小编辑距离法是衡量词汇间词形相似程度的有效参数,单词间最小编辑距离用d表示。由前文可知,词向量间的余弦距离可表示词汇的语义相似情况,用词向量间的余弦距离l乘上一个参数α来表示词义相似性。参数α可以人为调整,表示词向量的质量。

得到下面的计分公式:

s(ω1,ω2)=d+β×l×α(11)

式中的β表示语义权重。若两个单词间的计分公司的值越低,则表示这两个单词关系越紧密。由于参数α与语义权重β相关,为简化公式,令h=α×β,计分公式变为:

s(ω1,ω2)=d+h×l(12)

利用上述公式使非规范词与正确词之间的得分值最低,进行替换来达到纠正目的。这个公式不仅考虑了词形的特征,有效处理非规范词与正确词间词形差异大的问题,还结合了语义信息,可以通过调整参数来避免词汇语义信息不准确对纠错效果的影响。

方案二:若单单利用公式直接判断,检索的范围太大,导致工作量剧增,用时太长。前文介绍过python有一个开源库pyenchant,具有处理错误单词,并返回一个纠错建议单词列表的功能。而pytypo具有很好的直接处理延长词的功能。

如图3所示,先利用pyenchant和pytypo对待纠正的非规范词进行处理,得到相应的纠错建议词列表。再遍历纠错建议列表,计算列表中每一个建议单词与待纠正词的最小编辑距离,得到词形相似度;还要计算他们的词向量之间的余弦距离,得到语义相似度。通过公式(12)结合词形相似度和语义相似度,算出一个得分值。将纠正建议列表按得分数由低至高重新排序,得分越低的建议词排序越靠前,这样就得到一个新的纠错建议列表。选取每个新列表最前面的单词对非规范词进行替换,达到纠错目的。但如果纠错建议单词列表为空,说明待纠正词为无意义词,本发明选择直接过滤,并后期人工判断这些无意义词是否可作为正确词,如果是,加入字典集。

pyenchant基于enchant库,是一个功能十分强大的开源python工具包,主要被用于单词检测、拼写纠错等功能。它会返回一个纠错建议列表,通常这个纠错建议列表是一个由多个正确词语组成的列表,排序靠前的单词为系统建议的最佳纠错选择对象。

pytypo是python的一个开源库,被设计为专门针对推文中非规范单词(尤其为延长词)处理的python工具包。它不但用了构建字典法,还增加了去除重复子串的功能,有效的处理了延长词。但它对于拼写错误词汇和无意义词汇的纠错效果不理想。

利用了现有的pyenchant工具来获取初步拼写纠错建议单词列表,大大减少了计算量,提高了获取预期正确词集合的速率,帮助更快地定位最佳替换选择;

锁定正确词时,不仅考虑了常见的词形相似问题,还考虑了词向量能够表征单词的语义信息,用余弦距离法表征词向量间语义信息的相似程度,更全面的设计了正确词与非规范词相近程度的判定条件,使得选出的正确词为理想预期词汇的概率大大增加,纠错效果更好;把不同类型非规范词情况都考虑进来,对于许多常用方法纠错效果不理想的延长词利用pytypo进行了处理;无意义词过滤后进行人工判断,加入字典集;推文预处理期间考虑了话题词和用户名对纠错过程的干扰,收集起来加入字典集,使得字典集更加完善。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1