公开/公告号CN107832288A
专利类型发明专利
公开/公告日2018-03-23
原文格式PDF
申请/专利权人 中国科学院自动化研究所;
申请/专利号CN201710890874.2
申请日2017-09-27
分类号
代理机构北京瀚仁知识产权代理事务所(普通合伙);
代理人郭文浩
地址 100080 北京市海淀区中关村东路95号
入库时间 2023-06-19 04:55:20
法律状态公告日
法律状态信息
法律状态
2020-06-16
授权
授权
2018-04-17
实质审查的生效 IPC(主分类):G06F17/27 申请日:20170927
实质审查的生效
2018-03-23
公开
公开
技术领域
本发明涉及自然语言处理技术领域,具体涉及一种中文词语语义相似度的度量方法及装置。
背景技术
自然语言处理(Natural Language Processing,NLP)是人工智能的一个重要研究领域,其基本目标技术为使计算机具备听、说、读、写等人类的语言功能,而词语语义相似度计算技术又是自然语言处理领域的关键技术。目前,词语语义相似度计算技术主要包括基于语料库统计的方法、基于词典的相似度计算方法和基于词向量的相似度计算方法。
具体地,基于语料库统计的方法是通过统计大规模语料,并利用词汇上下文信息的概率分布进行词语之间的语义相似度计算。该方法虽然能够综合反映词语在句法和语义等方面的相似性与差异性,但是该方法不仅对语料库的依赖性较大,还受制于所选择的语料。基于词典的相似度计算方法主要是基于人工语义词典,并根据概念之间的上下位关系和同义词关系等进行词语之间的语义相似度计算。该方法虽然不依赖于语料库,但是受人的主观意识和人工语义词典的影响,其计算结果准确性较低。基于词向量的相似度计算方法,如基于开源词向量工具Word2vec的相似度计算方法,可以通过词向量的相似度表示词语之间的相似度。该方法不依赖于语料库且具备较高的英文词语相似度计算准确率,但是由于中文词语的一词多义和复杂性特点,并不适用于中文词语语义相似度的计算。
发明内容
为了解决现有技术中的上述问题,即为了解决基于词向量的中文词语语义相似度计算的准确率的技术问题,本发明提供了一种中文词语语义相似度的度量方法及装置。
在第一方面,本发明中的中文词语语义相似度的度量方法,包括:
采用K邻近算法计算中文词语所对应初始词向量的K个近邻词向量;
采用K-mean算法计算所述初始词向量及其K个近邻词向量的中心向量;
依据所述初始词向量和中心向量,以及预设的迁移向量模型g,计算所述中文词语的迁移向量;其中,所述迁移向量模型g=α×m+β×p,所述α和β均为预设参数,所述m为初始词向量,所述p为中心向量;
依据不同中文词语对应的迁移向量,计算所述不同中文词语的语义相似度。
优选地,“依据不同中文词语对应的迁移向量,计算所述不同中文词语的语义相似度”的步骤具体包括按照下式所述的方法计算不同中文词语的语义相似度:
C=cos(E,F)
其中,所述C为两个不同中文词语的语义相似度,所述E为所述的两个不同中文词语中一个中文词语的迁移向量,所述F为所述的两个不同中文词语中另一个中文词语的迁移向量。
优选地,所述方法还包括按照下述步骤优化预设的迁移向量模型g中的预设参数α和β,具体为:
获取预设中文语料库中每个中文词语的初始词向量;
采用K邻近算法计算所述每个初始词向量的K个近邻词向量;
采用K-means算法计算所述每个初始词向量及其K个邻近词向量的中心向量;
依据所述初始词向量和中心向量,以及预设的目标函数,优化所述预设的迁移向量模型g,得到优化后的预设参数α和β。
优选地,“获取预设中文语料库中每个中文词语的初始词向量”的步骤具体为:
对所述预设中文语料库中的中文语料进行分词,得到中文词语;
采用预设的自然语言模型,获取所述中文词语的初始词向量。
优选地,所述预设的目标函数S如下式所示:
S=max(rR(Sgold,Spre(α,β)))
其中,所述rR为斯皮尔曼系数,所述Sgold为对中文词语进行人工标注得到的语义相似度,所述Spre(α,β)为依据中文词语对应的迁移向量,计算得到的语义相似度。
在第二方面,本发明中的中文词语语义相似度的度量装置,包括:
近邻词向量计算模块,配置为采用K邻近算法计算中文词语所对应初始词向量的K个近邻词向量;
中心向量计算模块,配置为采用K-mean算法计算所述初始词向量及其K个近邻词向量的中心向量;
迁移向量计算模块,配置为依据所述初始词向量和中心向量,以及预设的迁移向量模型g,计算所述中文词语的迁移向量;其中,所述迁移向量模型g=α×m+β×p,所述α和β均为预设参数,所述m为初始词向量,所述p为中心向量;
相似度计算模块,配置为依据不同中文词语对应的迁移向量,计算所述不同中文词语的语义相似度。
优选地,所述相似度计算模块还包括相似度计算单元,所述相似度计算单元配置为按照下式所述的方法计算不同中文词语的语义相似度:
C=cos(E,F)
其中,所述C为两个不同中文词语的语义相似度,所述E为所述的两个不同中文词语中一个中文词语的迁移向量,所述F为所述的两个不同中文词语中另一个中文词语的迁移向量。
优选地,所述度量装置还包括迁移向量模型优化模块;所述迁移向量模型优化模块包括::
初始词向量获取单元,配置为获取预设中文语料库中每个中文词语的初始词向量;
近邻词向量计算单元,配置为采用K邻近算法计算所述每个初始词向量的K个近邻词向量;
中心向量计算单元,配置为采用K-means算法计算所述每个初始词向量及其K个邻近词向量的中心向量;
参数优化单元,配置为依据所述初始词向量和中心向量,以及预设的目标函数,优化所述预设的迁移向量模型g,得到优化后的预设参数α和β。
优选地,所述初始词向量获取单元包括:
语料分词子单元,配置为对所述预设中文语料库中的中文语料进行分词,得到中文词语;
初始词向量获取子单元,配置为采用预设的自然语言模型,获取所述中文词语的初始词向量。
在第三方面,本发明中的存储装置,其中存储有多条程序,适用于由处理器加载并执行以实现上述技术方案所述的中文词语语义相似度的度量方法。
在第四方面,本发明中的处理装置,包括:
处理器,适于执行各条程序;以及
存储设备,适于存储多条程序;
所述程序适于由处理器加载并执行以实现上述技术方案所述的中文词语语义相似度的度量方法。
与最接近的现有技术相比,上述技术方案至少具有以下有益效果:
1.本发明的中文词语语义相似度的度量方法中,采用K邻近算法计算中文词语所对应初始词向量的K个近邻词向量并采用K-mean算法计算初始词向量及其K个近邻词向量的中心向量,改进了词向量,使词向量更好的包含中文词语的语义信息,提高了中文词语语义相似度的度量准确率以及容错性。
2.本发明的中文词语语义相似度的度量方法中,该方法基于词向量方法来实现,没有使用词典等大量知识库,使得该方法容易操作,省时省力。
附图说明
图1是本发明实施例的中文词语语义相似度的度量方法的主要步骤示意图;
图2是本发明实施例中两个中文词语的相似度度量方法主要步骤示意图。
具体实施方式
下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。
本发明中设计了自然语言模型和迁移向量模型,分别用于提取中文词语的初始词向量和中文词语的迁移向量,通过K邻近算法以及K-mean算法改进词向量,使词向量更好的包含中文词语的语义信息,通过将中文词语语义的相似度的计算变成中文词语迁移向量的相似度的计算,提高了中文词语语义相似度的准确率。
下面结合附图,对本发明实施例中中文词语语义相似度的度量方法进行说明。
本实施例中自然语言模型可以依据深度卷积神经网络构建,用于获取中文词语的初始词向量。
本实施例中迁移向量模型可以用于获取中文词语对应的迁移向量,具体地,迁移向量模型g=α×m+β×p,其中,α和β均为预设参数,m为初始词向量,p为中心向量。
在自然语言模型和迁移向量模型构建好之后,就需要利用相应的训练样本对迁移向量模型进行训练,以优化迁移向量模型中的参数,进而增加迁移向量模型获取迁移向量的准确度。
本实施例中迁移向量模型的训练优化步骤可以包括步骤A100,步骤A200,步骤A300以及步骤A400。
步骤A100,获取预设中文语料库中每个中文词语的初始词向量。
具体地,本实施例中首先对预设中文语料库中的中文语料进行分词,得到中文词语。然后采用预设的自然语言模型,获取中文词语的初始词向量。
本实施例中预设中文语料库采用百度百科中文语料库,如15.3G的百度百科中文语料库。百度百科中文语料库所涵盖的主题和词汇用法良好,并且按主题清晰地组织文件,因此,基于该语料库得到的词向量能够更好的代表词语的语义。
步骤A200,采用K邻近算法计算每个初始词向量的K个近邻词向量。
具体地,对步骤A100中获取的中文词语的初始词向量,采用采用K邻近算法计算每个初始词向量周围最近的K个近邻词向量。本实施例中K的确定类似K均值算法中K的确定方法。
步骤A300,采用K-means算法计算每个初始词向量及其K个邻近词向量的中心向量。
具体地,采用K-means算法计算中文词语的初始词向量以及步骤A200中获取的初始词向量周围的K个近邻词向量的中心向量。
步骤A400,依据初始词向量和中心向量,以及预设的目标函数,优化预设的迁移向量模型g,得到优化后的预设参数α和β。
具体地,迁移向量模型g=α×m+β×p,其中,α和β均为预设参数,m为初始词向量,p为中心向量。预设的目标函数如下式(1)所示:
S=max(rR(Sgold,Spre(α,β)))(1)
公式(1)中各参数含义为:
rR为斯皮尔曼系数,如下式(2)所示:
其中,n是训练数据集的样本个数,RXi与RYi为两个排行集合,d是由RX与RY中的元素对应相减得到的一个排行差分集合,即di=RXi-RYi。
Sgold为对中文词语进行人工标注得到的语义相似度,如下式(3)所示:
Sgold=(S1,S2,S3,...,Sn)(3)
Spre(α,β)为依据中文词语对应的迁移向量,计算得到的语义相似度,如下式(4)所示:
Spre(α,β)=(C1(α,β),C2(α,β),C3(α,β),...,Cn(α,β))(4)
其中,训练数据集样本数为n。
本实施例中可以采用Nelder-Mead simplex算法优化目标函数求得参数α和β值。
在本技术方案的应用过程中,直接利用上述构建并优化好的自然语言模型以及迁移向量模型进行中文词语语义相似度的度量方法的构建,为了更清晰的对本发明的技术方案进行描述,下面结合本发明的中文词语语义相似度的度量方法的实施例进行详细说明。
参阅图1,图1示例性的示出了中文词语语义相似度的度量方法的主要步骤。如图1所示,本实施例中中文词语语义相似度的度量方法可以包括步骤S100,步骤S200,步骤S300以及步骤S400。
步骤S100,采用K邻近算法计算中文词语所对应初始词向量的k个近邻词向量。
具体地,本实施例中首先利用自然语言模型获取待检测的中文词语所对应的初始词向量,然后采用K邻近算法计算该中文词语所对应初始词向量周围的K个近邻词向量。
步骤S200,采用K-mean算法计算初始词向量及其K个近邻词向量的中心向量。
具体地,本实施例中采用K-mean算法计算中文词语对应的初始词向量及其周围K个近邻词向量共K+1个词向量的中心向量。
步骤S300,依据初始词向量和中心向量,以及预设的迁移向量模型g,计算中文词语的迁移向量;其中,迁移向量模型g=α×m+β×p,α和β均为预设参数,m为初始词向量,p为中心向量。
具体地,本实施例中可以利用优化好的迁移向量模型以及中文词语各自对应的初始词向量和中心向量,得出中文词语各自的对应的迁移向量。
步骤S400,依据不同中文词语对应的迁移向量,计算不同中文词语的语义相似度。
具体地,本实施例中可以根据中文词语对应的迁移向量的相似度求得中文词语之间的相似度,本实施例中可以按照下式(5)中的函数计算不同中文词语的语义相似度:
C=cos(E,F)(5)
其中,C为两个不同中文词语的语义相似度,E为两个不同中文词语中的一个中文词语的迁移向量,F为两个不同中文词语中另一个中文词语的迁移向量。C值越大,中文词语E和F的语义相似度越相似。
下面结合附图对本发明的一个优选地实施例进行详细的描述。参阅图2,图2示例性的示出了两个中文词语语义相似度的度量方法的主要步骤。如图2所示,本实施例中,样本数量为n,选定样本中的第i对中文词语e和f,通过自然语言模型分别得到e和f的初始词向量me和mf;采用K邻近算法分别计算距离初始词向量me和mf最近的K个向量,本实施例中K=3。
本实施例中采用K-means算法计算初始词向量me及其最近的K个向量的中心,记为中心向量pe;采用K-means算法计算初始词向量mf及其最近的K个向量的中心,记为中心向量pf。
本实施例中根据迁移向量模型g=α×m+β×p,中文词语e对应的迁移向量ge为:ge=α×me+β×pe;中文词语f对应的迁移向量gf为:gf=α×mf+β×pf。
本实施例中计算中文词语e和中文词语f的相似度即计算迁移向量ge和迁移向量gf的相似度C,
其中,α和β均为预设参数,me为中文词语e的初始词向量,pe中文词语e对应的中心向量,mf为中文词语f的初始词向量,pf为中文词语f对应的中心向量。
那么预设的目标函数S如下式(7)所示:
其中,α和β均为预设参数;n为样本数量;i为样本中第i对中文词语;
本实施例中将相似度C=cos(ge,gf)的值从[-1,1]映射到[1,10],因此相似度cos(ge,gf)的值越大,迁移向量ge和迁移向量gf越相似,即中文词语e和f的语义相似度就越相似。
初始词向量me与mf不仅分别包含了me和mf的信息,同时也提高了词向量的容错性,因此该方法提高了词语语义相似度的准确率,具有一定的优势。
上述实施例中虽然将各个步骤按照上述先后次序的方式进行了描述,但是本领域技术人员可以理解,为了实现本实施例的效果,不同的步骤之间不必按照这样的次序执行,其可以同时(并行)执行或以颠倒的次序执行,这些简单的变化都在本发明的保护范围之内。
基于与中文词语语义相似度的度量方法实施例相同的技术构思,本发明实施例还提供了一种中文词语语义相似度的度量装置。下面对该中文词语语义相似度的度量装置进行具体说明。
本实施中中文词语语义相似度的度量装置可以包括近邻词向量计算模块,中心向量计算模块,迁移向量计算模块以及相似度计算模块。
其中,近邻词向量计算模块可以配置为采用K邻近算法计算中文词语所对应初始词向量的K个近邻词向量。
中心向量计算模块可以配置为采用K-mean算法计算初始词向量及其K个近邻词向量的中心向量。
迁移向量计算模块可以配置为依据初始词向量和中心向量,以及预设的迁移向量模型g,计算中文词语的迁移向量;其中,迁移向量模型g=α×m+β×p,α和β均为预设参数,m为初始词向量,p为中心向量;
相似度计算模块可以配置为依据不同中文词语对应的迁移向量,计算不同中文词语的语义相似度。
进一步地,本实施例中相似度计算模块还包括相似度计算单元,其可以配置为按照公式(5)中的函数计算不同中文词语的语义相似度。
进一步地,本实施例中度量装置还可以包括迁移向量模型优化模块,该迁移向量模型优化模块包括初始词向量获取单元、近邻词向量计算单元、中心向量计算单元以及参数优化单元。
其中,初始词向量获取单元可以配置为获取预设中文语料库中每个中文词语的初始词向量。
近邻词向量计算单元可以配置为采用K邻近算法计算每个初始词向量的K个近邻词向量。
中心向量计算单元可以配置为采用K-means算法计算每个初始词向量及其K个邻近词向量的中心向量。
参数优化单元可以配置为依据初始词向量和中心向量,以及预设的目标函数,优化预设的迁移向量模型g,得到优化后的预设参数α和β。
进一步地,本实施例中初始词向量获取单元还可以包括语料分词子单元和初始词向量获取子单元。
其中,语料分词子单元可以配置为对预设中文语料库中的中文语料进行分词,得到中文词语。
初始词向量获取子单元可以配置为采用预设的自然语言模型,获取中文词语的初始词向量。
上述中文词语语义相似度的度量方法的实施例,其技术原理、所解决的技术问题及产生的技术效果相似,所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的中文词语语义相似度的度量装置的具体工作过程及有关说明,可以参考前述中文词语语义相似度的度量方法,在此不再赘述。
本领域技术人员可以理解,上述中文词语语义相似度的度量方法还包括一些其他公知结构,例如处理器、控制器、存储器等,其中,存储器包括但不限于随机存储器、闪存、只读存储器、可编程只读存储器、易失性存储器、非易失性存储器、串行存储器、并行存储器或寄存器等,处理器包括但不限于CPLD/FPGA、DSP、ARM处理器、MIPS处理器等,为了不必要地模糊本公开的实施例,这些公知的结构未在图中示出。
本领域技术人员可以理解,可以对实施例中的装置中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个装置中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
基于上述中文词语语义相似度的度量方法的实施例,本发明还提供了一种存储装置。本实施例中存储装置中存储有多条程序,该程序适用于由处理器加载并执行以实现上述中文词语语义相似度的度量方法。
基于上述中文词语语义相似度的度量方法的实施例,本发明还提供了一种处理装置。本实施例中处理装置可以包括处理器和存储设备。其中,处理器适于执行各条程序,存储设备适于存储多条程序,并且这些程序适于由处理器加载并执行以实现上述中文词语语义相似度的度量方法。
所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的存储装置、处理装置的具体工作过程及有关说明,可以参考前述中文词语语义相似度的度量方法实施例中的对应过程,在此不再赘述。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的服务器、客户端中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,PC程序和PC程序产品)。这样的实现本发明的程序可以存储在PC可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在本发明的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的PC来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
机译: 基于语义分析的文本相似度度量方法
机译: 单词语义关系估计装置和单词语义关系估计方法
机译: 词语义关系扣除装置和词语义关系扣除方法