基于同义词和反义词的中文标签推荐修正方法转让专利

申请号 : CN201711055214.9

文献号 : CN107704632B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘元珍韩立新杨忆勾智楠

申请人 : 河海大学

摘要 :

本发明公开了一种基于同义词和反义词的中文标签推荐修正方法,对基于张量分解方法得到的标签推荐列表中的标签在推荐给用户前进行同义词和反义词的判别检查,将同义词词对和反义词词对中排名靠后的标签排在候选标签列表的最后,并取前N个标签推荐给用户,从而消除推荐的标签组内标签语义冗余和语义冲突或者降低语义冗余和语义冲突标签的推荐排名。本发明提供的基于同义词和反义词的中文标签推荐修正方法,可以消除推荐的中文标签组内的标签语义冗余和语义冲突或者降低冗余标签及冲突标签在推荐标签组内的推荐排名。

权利要求 :

1.一种基于同义词和反义词的中文标签推荐修正方法,其特征在于:包括如下步骤:步骤1:获得用户、资源、标签的中文数据集,用张量分解的方法计算得到用户给资源打的标签,将这些标签按概率由大到小排序,得到有序推荐标签列表;

步骤2:对上述由张量分解方法获得的有序推荐标签列表,选取前N+K个概率最大的标签作为候选标签队列,其中,N为计划向用户推荐的标签的数量,K为候补推荐标签的调整个数,若推荐标签列表中标签个数小于N+K,则有序推荐标签列表中标签全部选取作为候选标签队列;

步骤3:将候选标签队列的N+K个标签两两配对,通过中文同义词和反义词判别方法得到语义冗余重复的同义词标签对和语义冲突的反义词标签对;

步骤4:得到同义词标签对和反义词标签对后,首先处理同义词标签对,若同义词标签对为空,则直接跳到步骤5;挑选出所有的同义词标签对,将每对标签对中的第二个标签移出候选标签队列,其它的标签顺次前移,保持移出的标签间相对前后顺序不变,将移出标签按序排列在整个候选标签队列的队尾;若同义词标签对的组成大于两个词即三个或三个以上的标签组成同义词词对,则将除第一个标签外的同义标签都移出队列,并将移出标签一起按序排列在队尾;

步骤5:处理反义词标签对,若反义词标签对为空,则直接跳转到步骤6;从推荐标签列表中移出所有的反义词标签对,将排在后面的标签顺次向前移动,移出的反义词标签对按先前的相对前后顺序排列在推荐标签列表的队尾;

步骤6:将最终获得的候选标签队列的前N个标签推荐给用户;

所述步骤1具体步骤如下:

步骤1.1:将用户、资源、标签的中文数据集的数据用三元组集合{u,i,t}的形式表示,其中,u表示用户user,i表示item即要标注的对象,称为资源,t表示标签tag,然后以张量为模型呈现三元组集合{u,i,t},即以三元组集合{u,i,t}构造初始张量A,对张量A进行n-模矩阵展开,生成3个新的矩阵A1、A2、A3,然后分别在矩阵A1、A2、A3上进行二维矩阵奇异值分解SVD计算,得到3个对应的左奇异矩阵,求解其降秩后的维度参数,再根据维度参数求解3个左奇异矩阵的近似矩阵;根据近似矩阵构造核心张量S的近似张量 根据近似张量 求得张量A的近似张量步骤1.2:张量分解方法是在三维张量上应用HOSVD方法,既能降低张量的维度,又能实现三种类型实体之间潜在的语义分析;近似张量 预测用户、资源、标签间的协同关联;近似张量 中的元素由四元组{u,i,t,p}表示,其中p表示用户u给资源i打标签t的概率,也称关联权重;

步骤1.3:对所有未在最初的用户、资源、标签的中文数据集中出现的用户-资源{u,i}对,按概率p从大到小的顺序对近似张量 中的元素{u,i,t,p}进行排序,得到标签t的有序列表即为有序推荐标签列表;若在初始数据中未出现用户-资源{u,i}对,说明用户u未对资源i标注过标签,则标签推荐系统可以针对资源i向用户u推荐标签t,推荐的概率为p,最终是否推荐标签t则由概率p的大小决定,p越大,被推荐的概率越大。

2.根据权利要求1所述的基于同义词和反义词的中文标签推荐修正方法,其特征在于:所述步骤3中同义词判别方法如下:

步骤3.1.1:首先基于中文语义词典《同义词词林》判断是否为同义词词对:查中文语义词典《同义词词林》,获得标签在词林中的编码,判断词林编码是否相同,相同则相似度为1;

词林编码位的第8位即最后一位的标记有三种,分别是“=”、“#”、“@”;“=”代表“相等”、“同义”;“#”代表“不等”、“同类”,属于相关词语;“@”代表“自我封闭”、“独立”,表示词典中既没有同义词,也没有相关词;如果编码相同且编码位的第8位为“=”时,标记标签对为同义词标签对;

步骤3.1.2:在《同义词词林》查询不到标签对时,检索从网上搜集下载整理得到的同义词词表,判断是否是同义词词对;

步骤3.1.3:以上两种方法都查询不到标签对时,解析查询词对应的百科网页来判断,实体的不同叫法,如别称、昵称、简称都认为是与其等价的同义词;

步骤3.1.4:通过以上方法仍不能确定是同义词的则不按同义词标签对处理。

3.根据权利要求1所述的基于同义词和反义词的中文标签推荐修正方法,其特征在于:步骤3中反义词判别方法如下:

从网上搜集下载并整理得到反义词词表,基于反义词词表判断是否为反义词词对。

4.根据权利要求1所述的基于同义词和反义词的中文标签推荐修正方法,其特征在于:所述步骤6中N个数设置为3-5个。

5.根据权利要求1所述的基于同义词和反义词的中文标签推荐修正方法,其特征在于:所述步骤6中N=K。

说明书 :

基于同义词和反义词的中文标签推荐修正方法

技术领域

[0001] 本发明涉及一种基于同义词和反义词的中文标签推荐修正方法,属于计算机网络推荐系统技术领域。

背景技术

[0002] 随着社交网络的迅速发展,用户为自己感兴趣的内容包括网页、图片、视频、音乐等自由地添加标签变得越来越流行。标签具有一定的社会性,同时存在着诸如同义词、歧义词、错误的拼写等情况,导致标签系统中存在大量的重复、不规范、无效的标签,不利于标签系统的良性循环。标签推荐是指当用户标注一个资源时,系统结合用户的兴趣爱好或者资源本身的内容,自动推荐适当的标签供用户选择,从而节约用户的时间和精力,改善用户体验,促进资源分类及方便用户查找。
[0003] 现有的标签推荐方法主要可以分为两类:(1)基于内容的方法:首先对待标注资源进行内容特征提取,建立资源的模型,计算已有标签的资源与待标注资源的内容特征之间的相似度,得出推荐标签候选集,从候选集中选出相似度最大的Top-N个标签推荐给用户。(2)基于用户行为数据的方法:根据用户对过去某些资源的标注行为,充分挖掘用户、资源与标签之间的关系,推断用户对一个新资源可能打的标签,并将这些可能的标签推荐给用户供其选择。根据具体算法的不同,主要包括两种:①张量分解:将标注数据看成由用户、资源、标签组成的立方体,其中有值的地方表示用户对资源标注了某个标签,然后使用张量分解方法高阶奇异值分解HOSVD挖掘用户、资源、标签之间潜在的语义关联,为用户-资源对推荐关联权重最高的Top-N个标签。②图方法:将标签系统映射成一张由用户、资源、标签组成的三分图,三分图的三个节点分别是用户、资源和标签,算法通过预测三分图的边权,最后根据路径权重来决定用户-资源对的个性化标签推荐排名,推荐出Top-N个标签。
[0004] 无论是基于内容还是基于用户行为数据,现有的中文及外文标签推荐方法都是推荐一组标签,但对推荐给用户的标签组中标签之间的关系并未研究处理,致使有些推荐的标签之间语义冗余重复或者存在完全的语义冲突,推荐的同组标签之间的关系成为标签推荐算法的盲点。本发明拟解决中文标签推荐中同组标签之间的语义冗余及语义冲突问题,在呈现给用户之前对推荐的标签组内标签进行调整修正,从而完善中文标签推荐算法。

发明内容

[0005] 目的:为了克服现有技术中存在的不足,解决目前中文标签推荐中标签语义冗余重复及语义冲突的问题,本发明提供一种基于同义词和反义词的中文标签推荐修正方法。
[0006] 技术方案:为解决上述技术问题,本发明采用的技术方案为:
[0007] 一种基于同义词和反义词的中文标签推荐修正方法,包括如下步骤:
[0008] 步骤1:获得用户、资源、标签的中文数据集,用张量分解的方法计算得到用户给资源打的标签,将这些标签按概率由大到小排序,得到有序推荐标签列表;
[0009] 步骤2:对上述由张量分解方法获得的有序推荐标签列表,选取前N+K个概率最大的标签作为候选标签队列,其中,N为计划向用户推荐的标签的数量,K为候补推荐标签的调整个数,若推荐标签列表中标签个数小于(N+K),则有序推荐标签列表中标签全部选取作为候选标签队列;
[0010] 步骤3:将候选标签队列的N+K个标签两两配对,通过中文同义词和反义词判别方法得到语义冗余重复的同义词标签对和语义冲突的反义词标签对;
[0011] 步骤4:得到同义词标签对和反义词标签对后,首先处理同义词标签对,若同义词标签对为空,则直接跳到步骤5;挑选出所有的同义词标签对,将每对标签对中的第二个标签移出候选标签队列,其它的标签顺次前移,保持移出的标签间相对前后顺序不变,将移出标签按序排列在整个候选标签队列的队尾;若同义词标签对的组成大于两个词即三个或三个以上的标签组成同义词词对,则将除第一个标签外的同义标签都移出队列,并将移出标签一起按序排列在队尾;
[0012] 步骤5:处理反义词标签对,若反义词标签对为空,则直接跳转到步骤6;从推荐标签列表中移出所有的反义词标签对,将排在后面的标签顺次向前移动,移出的反义词标签对按先前的相对前后顺序排列在推荐标签列表的队尾;
[0013] 步骤6:将最终获得的候选标签队列的前N个标签推荐给用户。
[0014] 作为优选方案,所述步骤1具体步骤如下:
[0015] 步骤1.1:将用户、资源、标签的中文数据集的数据用三元组集合{u,i,t}的形式表示,其中,u表示用户user,i表示item即要标注的对象,称为资源,t表示标签tag,然后以张量为模型呈现三元组集合{u,i,t},即以三元组集合{u,i,t}构造初始张量A,对张量A进行n-模矩阵展开,生成3个新的矩阵A1、A2、A3,然后分别在矩阵A1、A2、A3上进行二维矩阵奇异值分解SVD计算,得到3个对应的左奇异矩阵,求解其降秩后的维度参数,再根据维度参数求解3个左奇异矩阵的近似矩阵;根据近似矩阵构造核心张量S的近似张量 根据近似张量求得张量A的近似张量
[0016] 步骤1.2:张量分解方法是在三维张量上应用HOSVD方法,既能降低张量的维度,又能实现三种类型实体之间潜在的语义分析;近似张量 预测用户、资源、标签间的协同关联;近似张量 中的元素由四元组{u,i,t,p}表示,其中p表示用户u给资源i打标签t的概率,也称关联权重;
[0017] 步骤1.3:对所有未在最初的用户、资源、标签的中文数据集中出现的用户-资源{u,i}对,按概率p从大到小的顺序对近似张量 中的元素{u,i,t,p}进行排序,得到标签t的有序列表即为有序推荐标签列表;若在初始数据中未出现用户-资源{u,i}对,说明用户u未对资源i标注过标签,则标签推荐系统可以针对资源i向用户u推荐标签t,推荐的概率为p,最终是否推荐标签t则由概率p的大小决定,p越大,被推荐的概率越大。
[0018] 作为优选方案,步骤3.1:同义词词对判别方法:
[0019] 步骤3.1.1:首先基于中文语义词典《同义词词林》判断是否为同义词词对:查中文语义词典《同义词词林》,获得标签在词林中的编码,判断词林编码是否相同,相同则相似度为1;词林编码位的第8位即最后一位的标记有三种,分别是“=”、“#”、“@”;“=”代表“相等”、“同义”;“#”代表“不等”、“同类”,属于相关词语;“@”代表“自我封闭”、“独立”,表示词典中既没有同义词,也没有相关词;如果编码相同且编码位的第8位为“=”时,标记标签对为同义词标签对;
[0020] 步骤3.1.2:在《同义词词林》查询不到标签对时,检索从网上搜集下载整理得到的同义词词表,判断是否是同义词词对;
[0021] 步骤3.1.3:以上两种方法都查询不到标签对时,解析查询词对应的百科网页来判断,实体的不同叫法,如别称、昵称、简称都认为是与其等价的同义词;
[0022] 步骤3.1.4:通过以上方法仍不能确定是同义词的则不按同义词标签对处理。
[0023] 作为优选方案,步骤3.2:反义词词对判别方法:
[0024] 从网上搜集下载并整理得到反义词词表,基于反义词词表判断是否为反义词词对。
[0025] 作为优选方案,所述步骤6中N个数设置为3-5个。
[0026] 作为优选方案,所述步骤6中N=K。
[0027] 有益效果:本发明提供的基于同义词和反义词的中文标签推荐修正方法,现有的标签推荐技术推荐出Top-N个标签后,均未为对推荐出的标签组内的标签进行自查,不管标签组的标签是否有语义冗余重复和语义冲突,都直接将前N个标签推荐给用户。其优点如下:
[0028] 本方法针对中文标签推荐修正了这一不足,可使推荐出的中文标签组中无语义重复和语义冲突标签,或者语义重复和语义冲突的标签在推荐标签组内的排名较低,使标签推荐更准确和推荐的标签覆盖面更广。
[0029] 用语义词典及同义词词表和反义词词表的方式来判定是否为同义词或反义词相比用语料库统计的方式更加准确。
[0030] 本修正算法能否完全去除标签之间的语义重复和冲突,取决于K的取值。通常向用户推荐的标签数N为3-5个,可取K=N。当K取值较小,推荐出的N个标签中仍有语义冗余重复或语义冲突时,通过此标签修正算法可以消除标签组内标签的语义冗余重复和语义冲突或者降低重复语义标签的推荐排名。

附图说明

[0031] 图1为本方法的流程图。

具体实施方式

[0032] 下面结合附图对本发明作更进一步的说明。
[0033] 如图1所示,一种基于同义词和反义词的中文标签推荐修正方法,包括如下步骤:
[0034] 步骤1:获得用户、资源、标签的中文数据集,用张量分解的方法计算得到用户给资源打的标签,将这些标签按概率由大到小排序,得到有序推荐标签列表。
[0035] 所述步骤1具体步骤如下:
[0036] 步骤1.1:将用户、资源、标签的中文数据集的数据用三元组集合{u,i,t}的形式表示,其中,u表示用户user,i表示item即要标注的对象,称为资源,t表示标签tag,然后以张量为模型呈现三元组集合{u,i,t},即以三元组集合{u,i,t}构造初始张量A,对张量A进行n-模矩阵展开,生成3个新的矩阵A1、A2、A3,然后分别在矩阵A1、A2、A3上进行二维矩阵奇异值分解SVD计算,得到3个对应的左奇异矩阵,求解其降秩后的维度参数,再根据维度参数求解3个左奇异矩阵的近似矩阵。根据近似矩阵构造核心张量S的近似张量 根据近似张量求得张量A的近似张量
[0037] 张量也称多维矩阵,向量和矩阵可以分别看做一阶张量和二阶张量。奇异值分解SVD是一种矩阵分解方法,高阶奇异值分解HOSVD是奇异值分解SVD在张量中的推广,张量的HOSVD是指将张量分解成一个与其大小相同的核心张量与多个矩阵的乘积的形式。
[0038] 奇异值分解是线性代数中一种重要的矩阵分解方法,例如一个I1×I2阶矩阵F可以表示成3个矩阵的乘积, 其中,U表示矩阵 的左奇异矩阵,VT表示矩阵 的右奇异矩阵的转置矩阵,S表示由矩阵 奇异值组成的对角矩阵。
[0039] 低秩近似计算:在矩阵降秩过程中,低秩近似计算通常用于过滤由较小的奇异值引起的噪声。因此,可以在二维矩阵SVD计算过程中将对角矩阵S中较小的奇异值以及其对应的左奇异矩阵中的数据全部删除,保留秩为c的奇异值以及其对应的左奇异矩阵,其中U为秩为c的左奇异矩阵U的降秩矩阵。由此得到的矩阵被称为c-秩近似矩阵,其中c的值取决于保留初始对角矩阵S的数据的百分比。实验结果表明,保留初始对角矩阵S数据的90%能够得到最好的近似值。
[0040] 步骤1.2:张量分解方法是在三维张量上应用HOSVD方法,既能降低张量的维度,又能实现三种类型实体之间潜在的语义分析。近似张量 可以预测用户、资源、标签间的协同关联。近似张量 中的元素由四元组{u,i,t,p}表示,其中p表示用户u给资源i打标签t的概率,也称关联权重。
[0041] 步骤1.3:对所有未在最初的用户、资源、标签的中文数据集中出现的用户-资源{u,i}对,按概率p从大到小的顺序对近似张量 中的元素{u,i,t,p}进行排序,得到标签t的有序列表即为有序推荐标签列表。若在初始数据中未出现用户-资源{u,i}对,说明用户u未对资源i标注过标签,则标签推荐系统可以针对资源i向用户u推荐标签t,推荐的概率为p,最终是否推荐标签t则由概率p的大小决定,p越大,被推荐的概率越大。
[0042] 步骤2:对上述由张量分解方法获得的有序推荐标签列表,选取前N+K个概率最大的标签作为候选标签队列,其中,N为计划向用户推荐的标签的数量,K为候补推荐标签的调整个数,若推荐标签列表中标签个数小于(N+K),则有序推荐标签列表中标签全部选取作为候选标签队列。
[0043] 步骤3:将候选标签队列的N+K个标签两两配对,通过中文同义词和反义词判别方法得到语义冗余重复的同义词标签对和语义冲突的反义词标签对。
[0044] 所述中文同义词和反义词判别方法,具体步骤如下:
[0045] 步骤3.1:同义词词对判别方法:
[0046] 步骤3.1.1:首先基于中文语义词典《同义词词林》判断是否为同义词词对:查中文语义词典《同义词词林》,获得标签在词林中的编码,判断词林编码是否相同,相同则相似度为1;词林编码位的第8位即最后一位的标记有三种,分别是“=”、“#”、“@”;“=”代表“相等”、“同义”;“#”代表“不等”、“同类”,属于相关词语;“@”代表“自我封闭”、“独立”,表示词典中既没有同义词,也没有相关词;如果编码相同且编码位的第8位为“=”时,标记标签对为同义词标签对。
[0047] 《同义词词林》编码示例:Aa01A08=每人 各人 每位
[0048]                      Ab03A06#待业青年 务工青年
[0049]                      Aa02A06@愚兄
[0050] 上例中,每人、各人、每位是同义词,待业青年和务工青年为同类词,愚兄则没有同义词或同类词。
[0051] 步骤3.1.2:在《同义词词林》查询不到标签对时,检索从网上搜集下载整理得到的同义词词表,判断是否是同义词词对。
[0052] 步骤3.1.3:以上两种方法都查询不到标签对时,解析查询词对应的百科网页来判断,实体的不同叫法,如别称、昵称、简称等都认为是与其等价的同义词,如孔明与诸葛亮。
[0053] 步骤3.1.4:通过以上方法仍不能确定是同义词的则不按同义词标签对处理。
[0054] 步骤3.2:反义词词对判别方法:
[0055] 从网上搜集下载并整理得到反义词词表,基于反义词词表判断是否为反义词词对。
[0056] 步骤4:得到同义词标签对和反义词标签对后,首先处理同义词标签对,若同义词标签对为空,则直接跳到步骤5;挑选出所有的同义词标签对,将每对标签对中的第二个标签移出候选标签队列,其它的标签顺次前移,保持移出的标签间相对前后顺序不变,将移出标签按序排列在整个候选标签队列的队尾;若同义词标签对的组成大于两个词即三个或三个以上的标签组成同义词词对,则将除第一个标签外的同义标签都移出队列,并将移出标签一起按序排列在队尾。
[0057] 即对同义词标签对,只取排序靠前的一个标签,将另一个同义的标签排在队列的最后,从而使最终推荐给用户的标签组中的标签减少语义冗余重复,并让其它排在后面非重复语义的标签被推荐的概率增加,使推荐标签的覆盖面更广,给用户更多的选择。
[0058] 步骤5:处理反义词标签对,若反义词标签对为空,则直接跳转到步骤6;从推荐标签列表中移出所有的反义词标签对,将排在后面的标签顺次向前移动,移出的反义词标签对按先前的相对前后顺序排列在推荐标签列表的队尾。
[0059] 通常相比同义词标签对,存在反义词标签对的概率较小。若存在反义词标签对,如反对和支持,说明推荐出的标签语义之间存在歧义冲突,容易给用户造成混淆,则将整个反义词标签对移至候选标签队列的最后,降低标签对中的两个反义词被推荐的概率。
[0060] 步骤6:将最终获得的候选标签队列的前N个标签推荐给用户:
[0061] 最终推荐给用户的N个标签之间是否还存在同义词和反义词关系,与候选标签个数K的取值有关,若K取值较小,仍有可能有同义词标签或反义词标签进入前N个候选标签。
由于同义词和反义词的出现概率有限,可根据需要对K取合适的值,如K=N,则基本能满足消除推荐标签间的语义冗余重复和语义冲突的要求。通常向用户推荐的标签数N为3-5个,可取K=N。当K取值较小,推荐出的N个标签中仍有语义冗余重复或语义冲突时,通过此标签修正算法可以消除标签组内标签的语义冗余重复和语义冲突或者降低冗余标签及冲突标
签的推荐排名。
[0062] 经过此修正算法,可以消除推荐的标签组内的标签语义冗余重复和语义冲突或者降低冗余标签及冲突标签在推荐标签组内的排名。
[0063] 以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。