1.一种面向服务数据聚类的短文本优化主题模型方法,其特征在于,所述方法包括以下步骤:第一步:对文档进行分词处理,并进行停止词去除与时态归一化;
第二步:将分词结果转换为词对集合;
第三步:利用预训练的词向量模型,计算词对相似度,对词对集合进行筛选;
第四步:在主题模型的迭代过程中计算代表词对,并利用代表词对实现概率采样算法,完成主题模型训练,输出服务描述文档的文档主题分布;
所述第四步的过程如下:
4.1设置一个大小为k*1的零矩阵nz,用来存放每个主题对应的词对数,其中k为主题数量,设置一个大小为k*|Voc|的零矩阵nwz,用来存放每个词汇被分入每个主题的次数,其中|Voc|表示词汇表中词汇数量,零矩阵指矩阵元素全为0的矩阵;
4.2随机对词对赋予主题,初始化nz与nwz;
4.3设置迭代次数iteration,设置当前迭代次数为iter;
4.4开始第一次迭代,遍历筛选后的词对集合B_sim,对每个词对b进行采样操作;
4.5计算代表词对矩阵S;
4.6继续进行迭代,将当前迭代次数iter加1,遍历筛选后的词对集合B_sim,对每个词对b进行采样操作;
4.7重复步骤4.5操作;
4.8判断iter大小,当其等于iteration时,停止迭代;
4.9根据公式,计算文档主题分布theta,公式如下:
P(z|d)表示文档d对于主题z的概率,ndz表示该文档中被分入主题z的单词数量,|B_sim|表示筛选后的词对集合中的词对数量;
第五步:以文档主题分布为特征向量,调用sDPC聚类算法,完成服务聚类;
所述第五步的过程如下:
5.1计算截断距离dc;
5.2将文档主题分布theta作为服务的特征向量,计算所有特征向量对应的局部密度density;
5.3计算所有特征向量对应的元素距离edistance;
5.4设置cluter为聚类簇数量,计算所有特征向量对应的局部密度density与对应的元素距离edistance的乘积r,选取r最大的cluster个向量作为聚类中心点集合center;
5.5以center作为初始聚类中心,使用Kmeans聚类算法,完成聚类操作,Kmeans是一种常用的划分聚类算法,其目标函数为元素和聚类中心的残差平方和(RSS),公式可如下表示:其中cluster表示聚类簇数量,ωi表示第i个聚类簇,x表示被归为第i个聚类簇中的特2
征向量,c表示第i个聚类簇对应的聚类中心向量,|x‑c|表示向量x与向量c各分量差值的平方和。
2.如权利要求1所述的一种面向服务数据聚类的短文本优化主题模型方法,其特征在于,所述第一步的过程如下:
1.1读取服务描述文档信息,以服务名称为键,文档内容为值,转换为值键对D;
1.2遍历D中文档内容,将当前文档内容设置为d,设置空集合word_list,对d进行分句处理并剔除标点符号,之后对每句进行分词;
1.3遍历过程中,对分词后的每个单词进行判断,如果该单词不为特殊符号组成,不为纯数字且不存在于停止词列表中,则对该单词进行归一化处理,存入步骤1.2中设置的word_list集合中,对每个单词完成判断后,使用word_list代替d作为值键对D中的值进行存储。
3.如权利要求1或2所述的一种面向服务数据聚类的短文本优化主题模型方法,其特征在于,所述第二步的过程如下:
2.1对步骤1中获取的分词结果进行遍历,生成不重复的词汇表Voc;
2.2定义词对biterm结构,其中包含两个不同单词在Voc中的序号,且较小的序号设置为word1,较大的序号设置为word2;
2.3设置空集合whole_words作为所有分词结果的存储集合,遍历值键对D,将每个键对应的word_list集合按顺序存入wole_words中;
2.4遍历whole_words中所有单词信息,将其转换为词汇表Voc中对应的单词序号;
2.5生成词对集合B。
4.如权利要求3所述的一种面向服务数据聚类的短文本优化主题模型方法,其特征在于,所述2.5的步骤如下:
2.5.1遍历whole_words集合,将当前对应的文档分词的词汇表序号结果集合设置为single_list;
2.5.2设置词对集合B用来存放词对信息;
2.5.3对single_list进行遍历,当前对象为single_list(i),single_list(i)表示single_list中第i个单词的词汇表序号,其中0≤i<single_list.length,对每一个single_list(i),将其与single_list(j)对应的第j个单词的词汇表序号进行组合,生成词对b,其中,i
2.5.4将生成的词对存入词对集合B,并按顺序为每个词对b设置一个词对序号,记为b.index。
5.如权利要求1或2所述的一种面向服务数据聚类的短文本优化主题模型方法,其特征在于,所述第三步的过程如下:
3.1读取预训练的词向量模型,其包含单词信息与对应的词向量结果,基于Skip‑gram模型实现词向量的计算,Skip‑gram模型利用中心词去预测它前后若干个词出现的条件概率,最终输出的词向量为训练后的神经网络中隐层的权重矩阵,Skip‑gram的目标函数如下表示:其中N为文本大小,Vw为单词w的词向量,c为窗口大小,即中心词前后预测词汇的数量,T表示矩阵的倒置,exp()表示以自然常数e为底的指数函数,|V|表示单词数量,在经过模型训练后,词义相近的单词会获得更为接近的权重,可通过计算向量间距离即可衡量单词间的相似度;
3.2设置η为相似度阈值,设置筛选后词对集合为B_sim,遍历词对集合B,设置当前词对为b,获取b.word1对应的词汇表Voc中单词W1,获取b.word2对应的词汇表Voc中单词W2,当W1与W2相等时,词对相似度sim设置为1,当W1或W2不存在于词向量模型中时,词对相似度sim设置为1,当W1与W2不相等且W1与W2都存在于词向量模型中时,利用词向量模型,获取W1对应的词向量V1,获取W2对应的词向量V2,利用余弦相似度计算两个向量间的相似度,作为词对相似度sim,计算公式如下:其中T表示矩阵的倒置,||V||表示向量的模;
3.3将词对b计算得到的词对相似度sim与η进行对比,当sim大于或等于η时,将b存入筛选后的词对集合B_sim中。
6.如权利要求1所述的一种面向服务数据聚类的短文本优化主题模型方法,其特征在于,所述4.2的步骤如下:
4.2.1遍历筛选后的词对集合B_sim,对每个词对b,随机获取一个整数值t,其中0≤t<k,将t作为词对b的主题,记为b.topic;
4.2.2对随机赋予主题后的B_sim进行遍历,设当前词对为b,将矩阵nz中nz[b.topic]位置的值加1,同时将矩阵nwz中nwz[b.topic][b.word1]位置与nwz[b.topic][b.word2]位置的值分别加1,b.word1表示该词对中word1的值,b.word2表示该词对中word2的值,完成矩阵初始化;
所述4.4的步骤如下:
4.4.1将nz[b.topic],nwz[b.topic][b.word1]与nwz[b.topic][b.word2]的值分别减
1,以排除当前词对b的影响;
4.4.2调用如下公式对每一个主题z进行采样:
其中 表示去除了当前词对b影响后,词对b属于主题z的概率,nz表示属于主题z的词汇数量,即为矩阵nz中nz[z]的数值,∝表示成正比例,α与β为超参数,nwi|z表示词汇表中序号为b.word1的单词wi被归为主题z的次数,即矩阵nwz中nwz[z][b.word1]的数值,nwj|z表示词汇表中序号为b.word2的单词wj被归为主题z的次数,即矩阵nwz中nwz[z][b.word2]的数值,M为词汇表中单词数量,将所有主题求得的概率按顺序存入列表distribution;
4.4.3对上一步中求出的概率分布distribution使用轮盘赌操作,获取词对b对应的新主题,将其设为b.topic,轮盘赌算法又称比例选择算法,通过将概率分布分段累加,获得每个个体对应的累积概率,在[0,1]区间内产生一个随机数,选择累积概率大于或等于该随机数且与其差距最小的个体作为轮盘赌输出结果;
4.4.4将矩阵nz中nz[b.topic]位置的值加1,同时将矩阵nwz中nwz[b.topic][b.word1]位置与nwz[b.topic][b.word2]位置的值分别加1,使矩阵接受采样结果;
所述4.5的步骤如下:
4.5.1设置一个大小为|B_sim|*k的矩阵λ,表示代表词对判别矩阵,其中|B_sim|表示词对集合中词对数量,设置一个大小为|B_sim|*k的矩阵S,表示代表词对矩阵;
4.5.2遍历筛选后的词对集合B_sim,当前词对设置为b,对所有主题进行遍历,根据公式计算词对b针对主题z的词对概率,该公式如下:符号意义与步骤4.4.2相同,找出词对b针对各主题的概率p(z|b)中的最大值,设置为max(p(z|b)),对每个主题z分别计算比值p(z|b)/max(p(z|b)),将该比值存入矩阵λ中λ[b.index][z]位置;
4.5.3对矩阵λ中所有值进行遍历,根据设定概率为0.5的伯努利分布判断λ[b.index][z]的对应值,将结果的0或1存入代表词对矩阵S中,伯努利分布是一个离散型概率分布,当输入概率大于设定概率时,返回1,当小于或等于设定概率时,返回0;
所述4.6的步骤如下:
4.6.1将nz[b.topic],nwz[b.topic][b.word1]与nwz[b.topic][b.word2]的值分别减
1,以排除当前词对b的影响;
4.6.2对每个主题进行遍历,设当前主题为z,进行判断,若S[b.index][t]对应值为0,则重复步骤4.4.2,4.4.3与4.4.4操作,若S[b.index][t]对应值为1,则将步骤4.4.2中公式替换为以下公式:其中μ为代表词对权重参数,在训练前设置,进行调节以改变模型训练效果,之后重复
4.4.3与4.4.4步骤操作。
7.如权利要求1所述的一种面向服务数据聚类的短文本优化主题模型方法,其特征在于,所述5.1的步骤如下:
5.1.1设置大小为|D|*(|D|‑1)的零矩阵Cd,用来存放向量之间的距离,其中|D|表示服务文档数量,设置列表d_backup,存放候选的截断距离;
5.1.2遍历theta中向量,将当前对应的文档主题分布向量设置为Vecm,表示序号为m的主题分布向量,计算Vec与theta中除自身以外的向量之间的距离,距离计算采用欧式距离,计算公式如下:其中Vecmi表示序号为m的主题分布向量的第i个分量,k表示主题数,将Vec与除自身外的向量之间距离从大到小排序后,存入矩阵Cd的第m行中;
5.1.3遍历Cd中的每一行,将当前行设置为SD,计算SD中所有相邻分量间的差值,并从中找出最大值,获取计算出该最大值的两个分量中较小的一个,设置为md,计算过程可如下表示:md=SDj|max(SDj+1‑SDj)
SDj表示SD中第j个分量,其中0≤j<|D|‑1,|D|表示服务文档数量,max()表示获取差值最大的一对组合,之后将md依次存入d_backup;
5.1.4获取d_backup中最小值,即为截断距离dc;
所述5.2的步骤如下:
5.2.1设置列表density,存放各向量的局部密度;
5.2.2遍历步骤5.1.2中计算得到的距离矩阵Cd中的每一行,将当前行设置为SD,设置计数值count为0;
5.2.3遍历SD,将当前距离值设置为sd,当sd小于截断距离dc时,count值加1,完成一次对SD的遍历后,将count当前值存入density,之后count重新设置为0;
5.2.4重复5.2.3,直到完成Cd的遍历,最终获得的density即包含所有服务文档对象对应的局部密度值。
8.如权利要求1所述的一种面向服务数据聚类的短文本优化主题模型方法,其特征在于,所述5.3的步骤如下:
5.3.1获取density中最大值,设置为des_max;
5.3.2设置列表edistance用来存放元素距离;
5.3.3对density进行遍历,设当前对象值为dens,当dens与des_max相等时,计算与当前值对应的特征向量与其他服务特征向量之间最大的欧式距离d_max,将d_max存入edistance,当dens与des_max不相等时,计算局部密度比当前对象大的特征向量与自身对应特征向量间的欧式距离,并获取其中最小的值d_min,将d_min存入edistance。