识别同义词的方法、装置和计算设备与流程

文档序号:12666840阅读:356来源:国知局
识别同义词的方法、装置和计算设备与流程

本发明涉及数据处理技术领域,尤其涉及一种识别同义词的方法、装置和计算设备。



背景技术:

由于自然语言中存在大量的同义词、近义词,用户很难列举出一个概念的所有表达形式,因而在检索信息时容易出现漏检,即不能检索到符合用户要求的全部结果。同义词识别技术可以实现同义词扩展检索,从而解决漏检问题,提高信息查全率。

字面相似度算法是一种常用的同义词识别算法。该算法主要根据字面相似性原理,即大多数同义词都含有相同字的特点,通过计算编辑距离或最长公共子串来衡量词与词之间的关联程度,编辑距离越小或最长公共子串越大,词与词之间的关联程度越高,越有可能是同义词。但是,在现实情况中,相同字多的词不一定是同义词,而相同字少的词可能是同义词,甚至有些同义词之间完全没有相同字。基于上述情况,基于字面相似度的同义词识别算法识别率有限,很有可能会造成同义词的错误识别和未识别。



技术实现要素:

为此,本发明提供一种识别同义词的方法、装置和计算设备,以解决或至少缓解上面存在的问题。

根据本发明的一个方面,提供一种识别同义词的方法,该方法在计算设备中执行,计算设备中存储有多个用户的多条查询记录,每条查询记录包括用户标识、查询时间和查询短语,该方法包括:根据已存储的预定时间内的多条查询记录确定多个会话,每个会话包括同一个用户标识的一个或多个查询短语;对于每一个会话,将该会话中的每一个查询短语划分为一个或多个词;根据预设的规则从每一个会话中提取候选同义词对,每一个候选同义词对包括第一候选词和第二候选词;对于每一个候选同义词对:根据词向量模型来确定第一候选词所对应的第一词向量和第二候选词所对应的第二词向量;计算第一词向量和第二词向量的相似度,若相似度大于第一阈值,则将第一候选词和第二候选词作为同义词。

可选地,在根据本发明的识别同义词的方法中,在一个会话中,查询时间相邻的两个查询短语的查询时间之差小于第二阈值。

可选地,在根据本发明的识别同义词的方法中,预设的规则包括:同一个查询短语中的两个词不构成候选同义词对;对于不属于同一个查询短语的两个词:若两个词相同、或至少有一个词为单个英文字母、或至少有一个词为长度大于1的数字,则这两个词不构成候选同义词对;若两个词均为专有词、或均为非中文词、或正向位置差大于1、或逆向位置差大于1,则这两个词不构成候选同义词对,其中,正向位置差为两个词在其所属的查询短语的正向位置之差,逆向位置差为两个词在其所属的查询短语的逆向位置之差;若两个词中至少有一个词为单个汉字或单个数字,且这两个词的相邻词相等且为单个汉字,则分别将这两个词与其相邻词合并,将合并后的两个词作为候选同义词对,其中,相邻词包括前驱词和后继词;若两个词均不是单个汉字、单个字母或单个数字,且不满足以上不构成候选同义词对的条件,则将这两个词作为候选同义词对。

可选地,在根据本发明的识别同义词的方法中,在根据预设的规则从每一个会话中提取候选同义词对的步骤之后,还包括:对提取出的候选同义词对进行筛选:对于每一个候选同义词对,统计该候选同义词对出现的次数;按照公式(1/(1+正向位置差))计算该候选同义词对每一次出现时的权重,并计算权重的平均值;若出现次数大于第三阈值,且(权重的平均值*预设常数)大于出现次数,则将该候选同义词对作为最终的候选同义词对。

可选地,在根据本发明的识别同义词的方法中,词向量模型是根据将查询短语进行分词之后所得的多个会话训练得出的word2vec模型。

可选地,在根据本发明的识别同义词的方法中,根据词向量模型来确定第一候选词所对应的第一词向量和第二候选词所对应的第二词向量的步骤包括:采用词向量模型来确定预设数量的第一相似词、第一相似度以及第二相似词、第二相似度,其中,第一相似词为与第一候选词相似的词,第一相似度为第一相似词与第一候选词的相似度,第二相似词为与第二候选词相似的词,第二相似度为第二相似词与第二候选词的相似度;根据第一相似词、第一相似度、第二相似词、第二相似度确定第一词向量和第二词向量。

可选地,在根据本发明的识别同义词的方法中,相似度为夹角余弦。

根据本发明的一个方面,提供一种识别同义词的装置,该装置驻留于计算设备中,计算设备中存储有多个用户的多条查询记录,每条查询记录包括用户标识、查询时间和查询短语,该装置包括:会话生成模块,适于根据已存储的预定时间内的多条查询记录确定多个会话,每个会话包括同一个用户标识的一个或多个查询短语;候选同义词提取模块,适于对于每一个会话,将该会话中的每一个查询短语划分为一个或多个词,以及根据预设的规则从每一个会话中提取候选同义词对,每一个候选同义词对包括第一候选词和第二候选词;同义词判定模块,适于对于每一个候选同义词对:根据词向量模型来确定第一候选词所对应的第一词向量和第二候选词所对应的第二词向量;计算第一词向量和第二词向量的相似度,若相似度大于第一阈值,则将第一候选词和第二候选词作为同义词。

根据本发明的一个方面,提供一种计算设备,包括如上所述的识别同义词的装置。

根据本发明的技术方案,根据已有的多条查询记录确定多个会话,将会话中的查询短语进行分词,并根据预设的规则从每一个会话中提取候选同义词对。随后,以分词后的会话作为训练数据训练得出word2vec模型,通过该模型,可以得出候选同义词对中的两个词分别对应的词向量,计算两个词向量的相似度,若相似度大于一定阈值则认为候选同义词对中的两个词为同义词。

本方案在采用预设的规则确定候选同义词对时,综合考虑了词的位置、长度、是否为汉字英文或数字、是否为专有词、前驱词或后继词是否相同等因素,突破了基于词与词之间是否有相同字的限制,保证了同义词的识别率。另外,基于word2vec模型生成候选同义词对所对应的词向量,根据词向量的相似度来判断两个词是否同义,能够从语义上对词进行量化,从而更准确地识别同义词。

附图说明

为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。

图1示出了根据本发明一个实施例的网络系统100的示意图;

图2示出了根据本发明一个实施例的计算设备200的结构图;

图3示出了根据本发明一个实施例的识别同义词的装置300的结构图;

图4示出了根据本发明另一个实施例的识别同义词的装置300的结构图;

图5示出了根据本发明一个实施例的识别同义词的方法500的流程图;以及

图6示出了根据本发明一个实施例的识别同义词的方法600的流程图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的网络系统100的示意图。图1所示的网络系统100包括计算设备200以及终端设备110。应当指出,图1中的网络系统100仅是示例性的,在具体的实践情况中,网络系统100中可以有不同数量的计算设备和终端设备,本发明对网络系统中所包括的计算设备和终端设备的数量不做限制。

计算设备200可以实现为服务器,例如文件服务器、数据库服务器、应用程序服务器和WEB服务器等,也可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。终端设备110可以是诸如PC、笔记本电脑、手机、平板电脑、笔记本电脑、电视盒子、可穿戴设备等可以接入互联网的设备。终端设备110可以通过有线的方式接入互联网,也可以通过3G、4G、WiFi、个人热点、IEEE802.11x、蓝牙等无线的方式接入互联网。

根据一种实施例,计算设备200可以执行信息检索,终端设备110可以经由互联网与计算设备200建立连接,从而使得用户可以经由终端设备110进行信息检索。例如,用户在终端设备110上打开浏览器,在搜索框中输入查询短语,即向计算设备200发起检索请求。计算设备200接收到检索请求后,根据用户输入的查询短语来检索信息,并将检索结果返回至终端设备110。优选地,计算设备200可以将用户标识(用于唯一地表示一个用户)、查询时间和查询短语关联存储,形成多条查询记录,以作为其他数据分析服务的源数据。例如,对于图1所示的检索行为,会在计算设备200中形成一条查询记录:(用户1,t1,马六),表明用户1在时刻t1以“马六”作为查询短语进行了信息检索。

但是,由于自然语言中存在大量的同义词、近义词,同一个概念可能有多种表达形式,而用户输入的查询短语可能仅仅是其中的一种。若计算设备200严格基于用户输入的查询短语来进行检索则很容易出现信息漏检,不能检索到符合用户要求的全部结果。因此,在本发明中,计算设备200中包括识别同义词的装置300,装置300可以根据计算设备200中已存储的多条查询记录来识别同义词,得到一个同义词库。在计算设备200接收到用户的检索请求时,首先对用户输入的查询短语进行扩展,即在同义词库中查找出用户输入的查询短语的同义词,随后根据查询短语及其同义词来检索信息,从而可以使检索结果更加全面,避免信息的漏检。

例如,用户1想要查询某款车型的信息,并在终端设备110的浏览器的搜索框中输入查询短语“马六”,向计算设备200发起信息检索请求。计算设备200接收到该请求后,首先基于识别同义词的装置300所得出的同义词库来获取查询短语“马六”的同义词,例如,查询得出“马六”的同义词为“马自达六”。随后,计算设备200根据查询短语及其同义词,即“马六”和“马自达六”来进行信息检索,并将检索结果发送至终端设备110。这样,如图1所示,终端设备110的浏览器中将显示包括“马六”和“马自达六”的搜索结果,提高了信息的查全率。

应当指出,图1所示的网络系统100中,识别同义词的装置300所驻留的计算设备与执行信息检索的计算设备是同一个计算设备,均为计算设备200。但是在其他的实施例中,装置300所驻留的计算设备和执行信息检索的计算设备也可以是不同的计算设备。此外,网络系统100中也可以包括其他装置,例如数据存储装置等,本发明对网络系统100的部署情况不做限制。

例如,网络系统100中还可以包括计算设备120(图1中未示出)和数据存储装置130(图1中未示出)。装置300驻留于计算设备120中,计算设备200执行信息检索。计算设备120中的装置300完成了同义词的识别后,建立同义词库,并将同义词库存储于数据存储装置130。当计算设备200接收到信息检索请求时,首先在数据存储装置130中查询检索请求中的查询短语的同义词,随后根据查询短语及其同义词来进行信息检索。

图2示出了根据本发明一个实施例的计算设备200的结构图。在本发明中,计算设备200的应用222中包括识别同义词的装置300。识别同义词的装置300可以作为一个独立的软件安装于计算设备200中,或仅实现为一段代码,本发明对装置300在计算设备200中的存在形式不做限制。装置300能够进行同义词的识别,建立同义词库,从而为其他应用场景例如信息检索、分析等提供帮助。

图3示出了根据本发明一个实施例的识别同义词的装置300的结构图。如图3所示,装置300包括会话生成模块310,候选同义词提取模块320和同义词判定模块330,其中,同义词判定模块330包括词向量模型332。

计算设备200中存储有多条查询记录,每条查询记录包括用户标识、查询时间和查询短语。会话生成模块310可以根据计算设备200中已存储的预定时间内的多条查询记录确定多个会话,每个会话包括同一个用户标识的一个或多个查询短语。根据一种优选的实施例,会话生成模块310在确定会话时,首先将未得到查询结果的查询记录去掉,根据有查询结果的多条查询记录来确定多个会话。根据一种实施例,在一个会话中,查询时间相邻的两个查询短语的查询时间之差小于第二阈值。应当指出,上述预定时间和第二阈值可以由本领域技术人员自行设置,本发明对此不做限制。

以下是会话生成模块310确定多个会话的一个例子:首先,获取半年内的查询记录,并去掉没有查询结果的查询记录。将剩下的有查询结果的查询记录按照用户标识进行排序,具体的排序规则可以由本领域技术人员自行设置,例如按照字母顺序,笔画多少从小到大、从大到小等等,本发明对排序规则不做限制。排序的结果相当于将多条查询记录按照用户标识进行分组。随后,将同一个用户标识对应的多条查询记录按照查询时间进行排序,排序规则可以是按照查询时间从小到大或从大到小。对于同一个用户标识,将查询时间差小于10分钟的两个相邻的查询短语归于同一个会话。例如,用户1的按照查询时间从小到大排序后的查询记录为:

查询记录1:(用户1,2016-12-26 14:15:27,马六)

查询记录2:(用户1,2016-12-26 14:19:56,马61配置)

查询记录3:(用户1,2016-12-26 14:20:10,马6配置)

查询记录4:(用户1,2016-12-26 14:25:45,马自达六性能)

查询记录5:(用户1,2016-12-26 15:15:22,索纳塔三)

查询记录6:(用户1,2016-12-26 15:20:09,宝马五系)

根据以上查询记录可以得出用户1所对应的会话有两条,分别为(马六,马61配置,马6配置,马自达六性能),(索纳塔三,宝马五系)。同理,会话生成模块310可以继续确定其他用户标识所对应的会话,最终可以得到多个用户标识所对应的多个会话。

会话生成模块310确定了多个会话后,候选同义词提取模块320从每一个会话中提取候选同义词对。以下以一个会话为例来说明提取候选同义词对的步骤,重复该步骤,即可以从多个会话中提取出多个候选同义词对。

对于一个会话,候选同义词提取模块320首先对该会话进行分词,即,将该会话中的每一个查询短语划分为一个或多个词。分词方法有多种,例如基于字符串匹配的分词法、基于词义的分词法、基于频率统计的分词法,等等,本领域技术人员可以依据实际情况自行选用,本发明对分词所采用的具体算法不做限制。例如,会话(马六,马61配置,马6配置,马自达六性能)分词后的结果为(马,六;马,61,配置;马,6,配置;马自达,六,性能)。其中,在分词后的会话中,逗号用来分隔属于同一个查询短语的两个词,分号用于分隔属于不同查询短语的两个词。

随后,候选同义词提取模块320基于分词后的会话,根据预设的规则来提取候选同义词对。具体来说,对于一个分词后的会话,需要根据预设的规则来判断该会话中的任意两个词是否为候选同义词对,即对于分词后的会话(a1,a2,a3;b1;c1,c2)(其中,a1、a2、a3属于查询短语q1,b1属于查询短语q2,c1、c2属于查询短语q3),需要分别判断a1-a2、a1-a3、a1-b1、a1-c1、a1-c2、a2-a3、a2-b1、a2-c1、a2-c2、a3-b1、a3-c1、a3-c2、b1-c1、b1-c2、c1-c2是否为候选同义词对。但是,一般来说,用户输入的一个查询短语仅仅是其想要检索的内容的一种表达方式,一个查询短语中不会出现同义词,因此,根据一种实施例,在提取候选同义词对时,仅判断不属于同一个查询短语的两个词是否为候选同义词对,而直接判定同一个查询短语中的两个词不构成候选同义词对,即,对于上述例子,仅需要判断a1-b1、a1-c1、a1-c2、a2-b1、a2-c1、a2-c2、a3-b1、a3-c1、a3-c2、b1-c1、b1-c2是否为候选同义词对。

根据一种实施例,对于不属于同一个查询短语的两个词,可以按照以下预设的规则来判断这两个词是否构成候选同义词对:

规则1、若两个词相同、或至少有一个词为单个英文字母、或至少有一个词为长度大于1的数字,则这两个词不构成候选同义词对。该规则主要用于排除相同词、以及词为单个英文字母或词为长度大于1的数字的特殊情况。

例如,对于分词后的会话(马,六;马,61,配置;马,6,配置;马自达,六,性能),查询短语“马六”中的词“马”与查询短语“马61配置”中的词“马”不够成候选同义词对,因为二者本来就是相同的词。查询短语“马六”中的“马”和查询短语“马61配置”中的“61”不构成候选同义词,因为“61”为长度大于1的数字。

规则2、若两个词均为专有词、或均为非中文词、或正向位置差大于1、或逆向位置差大于1,则这两个词不构成候选同义词对,其中,正向位置差为两个词在其所属的查询短语的正向位置之差,逆向位置差为两个词在其所属的查询短语的逆向位置之差。该规则的设置主要参考了语义、语言、词的位置等因素。由于专有词通常具有特定的含义,很少会出现两个专有词同义的情况,因而直接判定两个不相同的专有词不构成候选同义词对。此外,同义现象多出现于汉语,因此排除了非中文词构成候选同义词对的情况。另外,考虑到位置相差较远的词同义的概率较小,判定正向位置差大于1或逆向位置差大于1的两个词不构成候选同义词对。

例如,对于分词后的会话(索纳塔,三;宝马,五,系),“索纳塔”和“宝马”均为专有词,则二者不构成候选同义词对。应当指出,在实践中,判断一个词是否为专有词可以通过查询专有词库来实现。又例如,对于分词后的会话(马,六;马,61,配置;马,6,配置;马自达,六,性能),查询短语“马六”中的“马”与查询短语“马61配置”中的“配置”不构成候选同义词对,因为“马”在“马六”中的正向位置为1,“配置”在“马61配置”中的正向位置为3,二者之差为2,大于1。又例如,对于分词后的会话(马,六;马,61,配置;马,6,配置,优;马自达,六,性能),“马61配置”中的“配置”和“马6配置优”中的“6”也不构成候选同义词对,虽然二者的正向位置差为1,但是“配置”在“马61配置”中的逆向位置为1,而“6”在“马6配置优”中的逆向位置为3,二者的逆向位置差为2,大于1。

规则3、若两个词中至少有一个词为单个汉字或单个数字,且这两个词的相邻词相等且为单个汉字,则分别将这两个词与其相邻词合并,将合并后的两个词作为候选同义词对,其中,相邻词包括前驱词和后继词。该规则的设置主要考虑到位置和相同字的因素。

例如,对于分词后的会话(马,六;马,61,配置;马,6,配置;马自达,六,性能),查询短语“马六”中的“六”和查询短语“马6配置”中的“6”,一个是单个汉字,一个是单个数字,且这两个词的前驱词均为“马”,且“马”是单个汉字,因此,分别将“六”、“6”与前驱词“马”合并,将合并后的两个词“马六”和“马6”作为候选同义词对。

又例如,对于分词后的会话(马,六;马,61,配置;马,6,配置;马自达,六,性能),查询短语“马六”中的“马”和查询短语“马自达六性能”中的“马自达”,有一个是单个汉字,且这两个词的后继词均为“六”,且“六”是单个汉字,因此,分别将“马”、“马自达”与后继词“六”合并,将合并后的两个词“马六”和“马自达六”作为候选同义词对。

规则4、若两个词均不是单个汉字、单个字母或单个数字,且不满足以上不构成候选同义词对的条件,则将这两个词作为候选同义词对。由于前述规则1~3已制定了较为完善的候选同义词对的判定规则,该规则相当于一个保底的规则,用来进一步避免候选同义词对的漏检。

例如,对于分词后的会话(马,六;马,61,配置;马,6,配置;马自达,六,性能),查询短语“马61配置”中的“配置”和查询短语“马自达六性能”中的“性能”,这两个词均不是单个汉字、单个字母或单个数字,并且也不满足前述规则1和规则2所述的不构成候选同义词对的条件,因此,将“配置”和“性能”作为候选同义词对。

应当指出,在上述实施例中,规则1~4是顺序执行的。但是,在其他的实施例中,规则1~4也可以按照其他顺序来执行,本发明对规则1~4的执行顺序不做限制。另外,尽管上述实施例中仅列出了4个规则,但是,上述4个规则并不是一成不变的,在其他的实施例中,本领域技术人员可以依据实际情况对上述规则进行修改,或删除部分规则,或增加新的规则,本发明对判定候选同义词对所采用的具体的判定规则亦不做限制。

应当指出,候选同义词提取模块320在对一个会话提取候选同义词对时,一个会话可能提取出一个或多个候选同义词对,也可能未提取出候选同义词对。另外,也可能会出现某个候选同义词对被提取多次的情况。例如,对于分词后的会话(马,六;马,61,配置;马,6,配置;马自达,六,性能),查询短语“马61配置”中的“配置”和查询短语“马自达六性能”中的“性能”可以构成候选同义词对,查询短语“马6配置”中的“配置”和查询短语“马自达六性能”中的“性能”也可以构成候选同义词对,这样候选同义词对(配置,性能)就被提取了两次。当候选同义词提取模块320完成所有会话的候选同义词对提取工作之后,重复提取的候选同义词对会更多。

为了避免候选同义词对的误判,根据一种实施例,候选同义词提取模块320在对所有会话进行候选同义词对提取之后,还要对提取出的候选同义词对进行筛选。根据一种实施例,筛选的方法可以是:对于提取出的每一个候选同义词对,统计该候选同义词对出现的次数,并按照公式(1/(1+正向位置差))计算该候选同义词对每一次出现时的权重,并计算权重的平均值。例如,候选同义词对(t1,t2)出现了三次,第一次的正向位置差为0,第二次和第三次的正向位置差均为1,则按照上述公式计算出这三次的权重分别为1、0.5、0.5,权重的平均值为(1+0.5+0.5)/3=0.667。若该候选同义词对出现的次数大于第三阈值,且(权重的平均值*预设常数)大于出现次数,则将该候选同义词对作为最终的候选同义词对。应当指出,上述第三阈值、预设常数的值可以由本领域技术人员依据实际情况自行设置,本发明对此不做限制,根据一种实施例,第三阈值为150,预设常数为2.1。

候选同义词提取模块320确定了候选同义词对之后,由同义词判定模块330来最终确定候选同义词对中的两个词是否为同义词。以下以一个候选同义词对为例来说明判定两个词是否为同义词的步骤,重复该步骤,即可以从多个候选同义词对中确定多组同义词。

对于一个候选同义词对,将该候选同义词对中的两个词分别记为第一候选词和第二候选词。同义词判定模块330根据词向量模型332首先确定第一候选词所对应的第一词向量和第二候选词所对应的第二词向量。

根据一种实施例,如图4所示,词向量模型332为词向量模型训练模块340根据将查询短语进行分词后所得的多个会话训练得出的word2vec模型。word2vec模型的训练方法为现有技术,此处不再赘述。

根据一种实施例,第一词向量和第二词向量可以按照以下步骤确定:采用词向量模型332来确定预设数量的第一相似词、第一相似度以及第二相似词、第二相似度,其中,第一相似词为与第一候选词相似的词,第一相似度为第一相似词与第一候选词的相似度,第二相似词为与第二候选词相似的词,第二相似度为第二相似词与第二候选词的相似度;随后,同义词判定模块330根据第一相似词、第一相似度、第二相似词、第二相似度确定第一词向量和第二词向量。应当指出,上述预设数量的值可以由本领域技术人员依据实际情况自行设置,本发明对此不做限制。根据一种实施例,预设数量为80。另外,第一词向量与第二次向量的维数相同,维数的取值范围为[预设数量,2*预设数量],维数的具体取值取决于第一相似词与第二相似词是否有重叠,维数=2*预设数量-重叠的词数。第一词向量、第二次向量的值分别由第一相似度、第二相似度来确定。

例如,对于候选同义词对(t1,t2),采用词向量模型332确定80个第一相似词(即与t1相似的词),分别为[M1,M2,…,M80],80个第一相似词所对应的第一相似度分别为[m1,m2,…,m80],同理,可确定80个第二相似词(即与t2相似的词),分别为[M3,M4,…,M82],80个第二相似词所对应的第二相似度分别为[n3,n4,…,n82]。第一相似词和第二相似词重叠的部分为M3~M80,重叠了78个词,那么,同义词判定模块330将第一词向量和第二次向量的维数设置为2*80-78=82。第一词向量的值由词M1~M82与第一候选词t1的相似度构成,由于词M81和M82与t1不相似,则将M81和M82与t1的相似度记为0,第一词向量=[m1,m2,…,m80,0,0]。第二词向量的值由词M1~M82与第二候选词t2的相似度构成,由于词M1和M2与t2不相似,则将M1和M2与t2的相似度记为0,第二词向量=[0,0,n3,n4,…,n82]。

在确定了第一词向量和第二词向量后,同义词判定模块330计算第一词向量和第二词向量的相似度,若相似度大于第一阈值,则将第一候选词和第二候选词作为同义词。根据一种实施例,相似度为夹角余弦,夹角余弦的计算公式如下:

其中,分别表示第一词向量和第二词向量,分别表示第一词向量和第二词向量的模。另外,应当指出,上述第一阈值的值可以由本领域技术人员依据实际情况自行设置,本发明对此不做限制。根据一种实施例,第一阈值为0.28。

同义词判定模块330对所有候选同义词对完成判定后,会得到多个同义词对。基于这多个同义词对,可以建立一个同义词库,从而能够查询得出一个词的同义词。

图5示出了根据本发明一个实施例的识别同义词的方法500的流程图。方法500可以在如图3所示的装置300中执行。如图5所示,方法500始于步骤S510。

在步骤S510中,根据已存储的预定时间内的多条查询记录确定多个会话,每个会话包括同一个用户标识的一个或多个查询短语。该步骤的具体过程可以参考前述对会话生成模块310的描述,此处不再赘述。

随后,在步骤S520中,对于每一个会话,将该会话中的每一个查询短语划分为一个或多个词。

随后,在步骤S530中,根据预设的规则从每一个会话中提取候选同义词对,每一个候选同义词对包括第一候选词和第二候选词。步骤S520和步骤S530的具体过程可以参考前述对候选同义词提取模块320的描述,此处不再赘述。

随后,在步骤S540中,对于每一个候选同义词对:根据词向量模型来确定第一候选词所对应的第一词向量和第二候选词所对应的第二词向量;计算第一词向量和第二词向量的相似度,若相似度大于第一阈值,则将第一候选词和第二候选词作为同义词。该步骤的具体过程可以参考前述对同义词判定模块330的描述,此处不再赘述。

图6示出了根据本发明一个实施例的识别同义词的方法600的流程图。方法600可以再如图4所示的装置300中执行。如图6所示,方法600始于步骤S610。

在步骤S610中,根据已存储的预定时间内的多条查询记录确定多个会话,每个会话包括同一个用户标识的一个或多个查询短语。该步骤的具体过程可以参考前述对会话生成模块310的描述,此处不再赘述。

随后,在步骤S620中,对于每一个会话,将该会话中的每一个查询短语划分为一个或多个词。

随后,同时执行步骤S630和步骤S640,在步骤S630中,根据步骤S620得出的分词后的多个会话训练得出词向量模型。步骤S630的具体过程可以参考前述对词向量模型训练模块340的描述,此处不再赘述。在步骤S640中,根据预设的规则从每一个会话中提取候选同义词对,每一个候选同义词对包括第一候选词和第二候选词。步骤S640的具体过程可以参考前述对候选同义词提取模块320的描述,此处不再赘述。

随后,在步骤S650中,对于每一个候选同义词对:根据词向量模型来确定第一候选词所对应的第一词向量和第二候选词所对应的第二词向量;计算第一词向量和第二词向量的相似度,若相似度大于第一阈值,则将第一候选词和第二候选词作为同义词。该步骤的具体过程可以参考前述对同义词判定模块330的描述,此处不再赘述。

A6:A1或5所述的方法,其中,所述根据词向量模型来确定第一候选词所对应的第一词向量和第二候选词所对应的第二词向量的步骤包括:采用词向量模型来确定预设数量的第一相似词、第一相似度以及第二相似词、第二相似度,其中,所述第一相似词为与第一候选词相似的词,第一相似度为第一相似词与第一候选词的相似度,第二相似词为与第二候选词相似的词,第二相似度为第二相似词与第二候选词的相似度;根据第一相似词、第一相似度、第二相似词、第二相似度确定第一词向量和第二词向量。A7:A1所述的方法,其中,所述相似度为夹角余弦。

B12:B8所述的装置,其中,还包括词向量模型训练模块,适于根据将查询短语进行分词之后所得的多个会话训练得出word2vec模型,以及将所述word2vec模型作为词向量模型。B13:B8或12所述的装置,其中,所述同义词判定模块适于按照以下步骤确定第一词向量和第二词向量:采用词向量模型来确定预设数量的第一相似词、第一相似度以及第二相似词、第二相似度,其中,所述第一相似词为与第一候选词相似的词,第一相似度为第一相似词与第一候选词的相似度,第二相似词为与第二候选词相似的词,第二相似度为第二相似词与第二候选词的相似度;根据第一相似词、第一相似度、第二相似词、第二相似度确定第一词向量和第二词向量。B14:B8所述的装置,其中,所述相似度为夹角余弦。

在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。

如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。

尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

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