1.一种识别同义词的方法,在计算设备中执行,所述计算设备中存储有多个用户的多条查询记录,每条查询记录包括用户标识、查询时间和查询短语,所述方法包括:
根据已存储的预定时间内的多条查询记录确定多个会话,每个会话包括同一个用户标识的一个或多个查询短语;
对于每一个会话,将该会话中的每一个查询短语划分为一个或多个词;
根据预设的规则从每一个会话中提取候选同义词对,每一个候选同义词对包括第一候选词和第二候选词;
对于每一个候选同义词对:
根据词向量模型来确定第一候选词所对应的第一词向量和第二候选词所对应的第二词向量;
计算第一词向量和第二词向量的相似度,若相似度大于第一阈值,
则将第一候选词和第二候选词作为同义词。
2.如权利要求1所述的方法,其中,在一个所述会话中,查询时间相邻的两个查询短语的查询时间之差小于第二阈值。
3.如权利要求1所述的方法,其中,所述预设的规则包括:
同一个查询短语中的两个词不构成候选同义词对;
对于不属于同一个查询短语的两个词:
若两个词相同、或至少有一个词为单个英文字母、或至少有一个词为长度大于1的数字,则这两个词不构成候选同义词对;
若两个词均为专有词、或均为非中文词、或正向位置差大于1、或逆向位置差大于1,则这两个词不构成候选同义词对,其中,所述正向位置差为两个词在其所属的查询短语的正向位置之差,所述逆向位置差为两个词在其所属的查询短语的逆向位置之差;
若两个词中至少有一个词为单个汉字或单个数字,且这两个词的相邻词相等且为单个汉字,则分别将这两个词与其相邻词合并,将合并后的两个词作为候选同义词对,其中,所述相邻词包括前驱词和后继词;
若两个词均不是单个汉字、单个字母或单个数字,且不满足以上不构成候选同义词对的条件,则将这两个词作为候选同义词对。
4.如权利要求1-3中任一项所述的方法,其中,在所述根据预设的规则从每一个会话中提取候选同义词对的步骤之后,还包括:
对提取出的候选同义词对进行筛选:
对于每一个候选同义词对,
统计该候选同义词对出现的次数;
按照公式(1/(1+正向位置差))计算该候选同义词对每一次出现时的权重,并计算权重的平均值;
若所述次数大于第三阈值,且(权重的平均值*预设常数)大于所述次数,则将该候选同义词对作为最终的候选同义词对。
5.如权利要求1所述的方法,其中,所述词向量模型是根据将查询短语进行分词之后所得的多个会话训练得出的word2vec模型。
6.一种识别同义词的装置,驻留于计算设备中,所述计算设备中存储有多个用户的多条查询记录,每条查询记录包括用户标识、查询时间和查询短语,所述装置包括:
会话生成模块,适于根据已存储的预定时间内的多条查询记录确定多个会话,每个会话包括同一个用户标识的一个或多个查询短语;
候选同义词提取模块,适于对于每一个会话,将该会话中的每一个查询短语划分为一个或多个词,以及根据预设的规则从每一个会话中提取候选同义词对,每一个候选同义词对包括第一候选词和第二候选词;
同义词判定模块,适于对于每一个候选同义词对:根据词向量模型来确定第一候选词所对应的第一词向量和第二候选词所对应的第二词向量;计算第一词向量和第二词向量的相似度,若相似度大于第一阈值,则将第一候选词和第二候选词作为同义词。
7.如权利要求6所述的装置,其中,在一个所述会话中,查询时间相邻的两个查询短语的查询时间之差小于第二阈值。
8.如权利要求6所述的装置,其中,所述预设的规则包括:
同一个查询短语中的两个词不构成候选同义词对;
对于不属于同一个查询短语的两个词:
若两个词相同、或至少有一个词为单个英文字母、或至少有一个词为长度大于1的数字,则这两个词不构成候选同义词对;
若两个词均为专有词、或均为非中文词、或正向位置差大于1、或逆向位置差大于1,则这两个词不构成候选同义词对,其中,所述正向位置差为两个词在其所属的查询短语的正向位置之差,所述逆向位置差为两个词在其所属的查询短语的逆向位置之差;
若两个词中至少有一个词为单个汉字或单个数字,且这两个词的相邻词相等且为单个汉字,则分别将这两个词与其相邻词合并,将合并后的两个词作为候选同义词对,其中,所述相邻词包括前驱词和后继词;
若两个词均不是单个汉字、单个字母或单个数字,且不满足以上不构成候选同义词对的条件,则将这两个词作为候选同义词对。
9.如权利要求6-8中任一项所述的装置,其中,所述候选同义词提取模块还适于对提取出的候选同义词对进行筛选:
对于每一个候选同义词对,
统计该候选同义词对出现的次数;
按照公式(1/(1+正向位置差))计算该候选同义词对每一次出现时的权重,并计算权重的平均值;
若所述次数大于第三阈值,且(权重的平均值*预设常数)大于所述次数,则将该候选同义词对作为最终的候选同义词对。
10.一种计算设备,包括如权利要求6-9中任一项所述的识别同义词的装置。