1.一种面向NLP基于GSDPMM和主题模型的Mashup服务谱聚类方法,其特征在于,所述方法包括以下步骤:第一步:通过GSDPMM方法计算出Mashup服务数量的主题个数,步骤如下:
1.1初始化矩阵z,nz,nzv,mz中所有元素为0,z中所有元素为1,设定初始主题数K为1和迭代次数Iter,z统计每个文档所归属的主题,nz统计每个主题下单词的数量,nzv统计不同主
1xN 1xK KxV
题下不同单词的出现的数量,mz统计每个主题下文档数量;其中z∈R ,nz∈R ,nzv∈R ,
1xK
mz∈R ,N为Mashup服务的数量,V表示语料库单词的数量,即不同单词的数量;
1.2遍历所有Mashup服务,计算nz,nzv;
1.3对所有Mashup服务进行Gibbs采样操作;
1.4根据轮盘赌选法,选择文档d的主题;
1.5根据当前文档d的所属主题k,令mz[k]增加1,nz[k]增加Len,Len为文档的长度;
1.6重复步骤1.3‑1.5直至处理完所有Mashup服务;
1.7重复1.3‑1.6直至达到迭代次数Iter;
第二步:根据上下文信息和服务标签信息计算单词的语义权重信息从而得到文档‑单词语义权重信息矩阵D,步骤如下:
2.1使用Python中的自然语言工具包NLTK,对Mashup服务描述文档进行中的单词进行词性标注;
2.2:统计单词词频信息,计算TF‑IDF信息;
2.3:提取Mashup服务标签信息,并基于名词集Nset和TF‑IDF值,重新计算Mashup服务描述文档中的每一个单词的语义权重;
第三步:统计单词共现信息,从而计算出SPPMI矩阵信息,步骤如下:
3.1统计词共现信息,由于Mashup服务描述文档较短,为了能更准确地获取上下文共现信息,将整个服务描述文档作为滑动窗口的长度,计算每个单词和其他单词在上下文中共同出现的次数;
3.2点互信息PMI计算,PMI计算公式如下所示:x和y表示两个单词,P(x,y)表示单词x和y共现的概率,P(x)表示单词x在上下文中出现概率,根据单词wj和其上下文单词wc在语料库中的实际共现次数,可以计算出两者之间的PMI值:#(wj,wc)表示单词wj和上下文单词wc在语料库中的实际共现次数,E为上下文单词对共现的总次数,#(wj)为单词wj和其他单词共现的次数,Voc表示语料库,即不重复单词的集合;
3.3计算偏移正点互信息值SPPMI矩阵,SPPMI矩阵通过PMI值计算,SPPMI矩阵的计算方式为:SPPMI(wj,wc)=max(PMI(wj,wc)‑logκ,0)其中κ为负采样系数,通过上述公式得到单词的上下文SPPMI矩阵M;
第四步:基于第二步,第三步得到Mashup服务文档单词的文档‑单词语义权重矩阵D,单词的上下文SPPMI矩阵M,通过分解M得到词嵌入信息矩阵,进一步将上述两种信息进行结合,计算服务的主题信息,步骤如下:
4.1通过由第二步给定全局文档‑单词语义权重矩阵D,通过NMF将其分解为文档‑主题矩阵θ和主题‑单词矩阵Z乘积,分解矩阵D的函数表示为:NxK VxK
subject to:θ≥0 and Z≥0,θ∈R ,Z∈R其中 代表L2范数,N表示Mashup文档数量,K表示文档的主题数量,V表示语料库单词的数量,R表示实数集,上标T表示矩阵转置;NMF是在矩阵中所有元素均为非负数约束条件之下,将一个非负矩阵表示为另外两个非负矩阵乘积方式的矩阵分解方法;
4.2通过第三步计算得到单词的上下文SPPMI矩阵M,分解矩阵M引入词嵌入信息,分解M的公式如下所示:S是一个额外的对称因子,用于M的近似求解,W为单词的词嵌入矩阵;
4.3利用Mashup服务文档和单词间的关系,可以发现主题信息,通过文档内单词上下文的共现信息,可以学习到词嵌入信息;但是这两个部分并不相互孤立,语义相关的单词属于相似的主题,在嵌入空间中也很接近;可知单词嵌入与它们的主题相关,关系公式如下所示:
4.4在步骤4.3中将主题‑单词矩阵Z分解为主题嵌入矩阵A和词嵌入矩阵W的乘积,将词嵌入与主题信息相联系起来,进一步提高了主题建模的准确性;
结合步骤4.1,4.2和4.3,得到主题模型的目标函数:subject to:θ≥0and Z≥0
求解该目标函数,使用矩阵迹运算将上述公式展开:T T T
J(θ,Z,W,S,A)=λdTr((D‑θZ)(D‑θZ))T T T
+λwTr((M‑WSW)(M‑WSW))
T T T
+λtTr((Z‑WA)(Z‑WA))
其中J(θ,Z,W,S,A)为J4在θ,Z,W,S,A参数下的展开形式,进一步运算得到以下公式:T T T T
J(θ,Z,W,S,A)=λdTr(DD‑2DZθ+θZZθ)T T T T
+λwTr(MM‑2MWSW+WSWWSW)T T T T
+λtTr(ZZ‑2ZAW+WAAW)
Tr表示矩阵求迹,λd,λw和λt为不同部分的权重系数,用于调整各部分计算的误差对结果的影响,根据正则化约束得到以下目标函数:其中α,β,γ , ω为正则化参数,避免过拟合;为使目标函数最小化,对上述目标函数求偏导得到以下公式:令α⊙θ=0,β⊙Z=0,γ ⊙W=0, ω ⊙A=0,⊙表示阿达马乘积,即矩阵对应位置的乘积,利用阿达马乘积,令上述公式偏导为0,进一步得到以下等式方程:T
‑2(DZ)⊙θ+2(θZZ)⊙θ+α⊙θ=0T T T
‑2(λdDθ+λtWA)⊙Z+2(λdZθθ+λtZ)⊙Z+β⊙Z=0T T
‑2(λwMWS+λtZA)⊙W+(λtWAAW+2λwWSWWS)⊙W+γ ⊙W=0T T
‑(ZW)⊙A+(AWW)⊙A+ω ⊙A=0进一步更新参数:
通过上述参数更新方式,求解出Mashup服务文档‑主题矩阵θ和主题‑单词矩阵Z,词嵌入矩阵W,主题嵌入矩阵A;
第五步:将4.4中得到的Mashup服务主题特征,作为谱聚类的输入进行聚类,步骤如下:
5.1计算相似度矩阵SI,服务主题特征之间的相似度通过高斯核函数计算,公式中θi表示Mashup服务i的主题特征,δ为尺度参数,exp表示以自然常数e为底的指数函数,高斯核函数计算公式如下:
5.2将矩阵SI的每一列的元素相加,并将每一列作为元素添加到度矩阵G对角线上,公式如下:Gij=∑jSIij
5.3通过G计算Laplacian矩阵L=G–SI;
5.4利用python中eig函数计算 的特征值和特征向量,得到服务文档特征向量矩阵F,Tr表示矩阵求迹,特征值求解函数如下:T
subjectto:FF=I
其中argminF表示 最小时F的取值;
5.5将特征值从小到大排序,取前C个特征值,C指定的聚类簇的数量,得到前C个特征值的特征向量,作为初始聚类中心;
5.6计算特征向量到聚类中心的欧式距离dist,将Mashup服务划分到距离最小的簇,计算公式如下:其中fi表示特征向量f中第i个值,Cei表示聚类中心Ce向量中的第i个值;
5.7更新聚类中心为每个簇中特征向量累加的平局值;
5.8计算新聚类中心和旧聚类中心的欧式距离作为误差值;
5.9重复步骤5.6‑5.8直至误差小于一定阈值,或者迭代次数到达最大迭代次数。
2.如权利要求1所述的面向NLP基于GSDPMM和主题模型的Mashup服务谱聚类方法,其特征在于,所述1.2的过程如下:
1.2.1根据zd得到当前文档d的所属主题为k,mz[k]增加1,nz[k]增加Len,Len为文档的长度;
1.2.2遍历文档d中的每一个单词w,令,nzv[k][w]增加1;
1.2.3重复1.2.1‑1.2.2直至处理完所有Mashup服务。
3.如权利要求1或2所述的面向NLP基于GSDPMM和主题模型的Mashup服务谱聚类方法,其特征在于,所述1.3的过程如下:
1.3.1根据zd得到当前文档d的所属主题为k,mz[k]减少1,nz[k]减少Len,Len为文档的长度;
1.3.2遍历文档d中的每一个单词w,令,nzv[k][w]减少1;
1.3.3遍历每一个主题,计算文档d在原来主题上的概率,计算公式如下:
1.3.4计算文档d在新主题下的概率,计算公式如下:其中α,β为超参数,zd表示当前文档d的主题, 表示不统计文档d信息的统计结果,表示不统计当前文档d信息每个文档所归属的主题, 表示除去当前文档d信息后每个主题中文档的数量, 表示未统计文档d信息下单词w在主题z中的数量, 表示未统计文档d信息下主题z中单词的数量,Nd表示文档d中单词的数量, 表示文档d中单词w出现的次数。
4.如权利要求1或2所述的面向NLP基于GSDPMM和主题模型的Mashup服务谱聚类方法,其特征在于,所述1.4的过程如下:
1.4.1将文档d在每个主题下的概率进行累加,得到总概率prob;
1.4.2在[0,prob]内随机生成一个随机数thred;
1.4.3累加文档d在每个主题下的概率,若当前主题k上的累加和大于等于thred,则文档d的主题为k。
5.如权利要求1或2所述的面向NLP基于GSDPMM和主题模型的Mashup服务谱聚类方法,其特征在于,所述2.1的过程如下:
2.1.1遍历当前Mashup服务描述文档中的每一个单词,利用NLTK对单词进行词性还原;
2.1.2利用NLTK提取单词词根,并判断单词是否是名词性单词,若是名词性单词加入名词集合Nset;
2.1.3重复步骤2.1.1‑2.1.2直至处理完所有Mashup服务。
6.如权利要求1或2所述的面向NLP基于GSDPMM和主题模型的Mashup服务谱聚类方法,其特征在于,所述2.2的过程如下:
2.2.1遍历Mashup服务描述文档中的每个单词,统计当前文档中每个单词的出现的次数,计算每个单词TF值,计算公式如下:其中TFi,j表示第i个Mashup服务描述文档中第j个单词的词频信息,NUM(j)表示第j个单词出现的次数,LEN(i)表示第i个Mashup文本的长度;
2.2.2统计每个单词出现过的Mashup服务文档数量,计算IDF值,计算公式如下:IDF(x)表示单词x的IDF值,N表示Mashup文档的数量,doc(x)表示包含单词x的Mashup文档数量;
2.2.3遍历所有Mashup文档中的单词,计算单词的TF‑IDF值计算公式如下:TF‑IDF(x)=TF(x)*IDF(x)TF‑IDF(x)表示单词x的TF‑IDF值,TF(x)表示单词x的TF值。
7.如权利要求1或2所述的面向NLP基于GSDPMM和主题模型的Mashup服务谱聚类方法,其特征在于,所述2.3的过程如下:
2.3.1遍历当前Mashup服务文档中每一个单词wx计算其上下文语义权重信息WeightContext(wx),计算公式如下:其中sim(wx,wy)表示单词wx和wy的相似度,通过WordNet工具计算,wy为wx的上下文单词,d表示当前Mashup服务描述文档,Nd表示当前Mashup服务描述文档的长度;WordNet是一种英语词典,通过网状结构来组织词汇,将含义相近的词汇划分到一个组中,通过返回词汇在网络之间的最短路径得到相似度;
2.3.2计算单词的服务标签语义权重信息WeightTag(wx),计算公式如下:其中Tagd表示当前Mashup服务文档的服务标签集合,t表示服务标签中的单词;
2.3.3基于TF‑IDF值,并结合2.3.1和2.3.2中的计算结果,重新计算单词的语义权重。
8.如权利要求7所述的面向NLP基于GSDPMM和主题模型的Mashup服务谱聚类方法,其特征在于,所述2.3.3的操作如下:
2.3.3.1遍历当前Mashup服务描述文档中的每一个单词wx,判断该单词是否在名词集NSet中,若wx在名词集中,通过以下公式重新计算单词语义权重,若wx不在名词集NSet中跳转到步骤3.3.2中;
2.3.3.2赋值单词的语义权重为其TF‑IDF值,计算公式如下:SemWeight(wx)=TF‑IDF(wx)
2.3.3.3重复2.3.3.1‑2.3.3.2直至处理完所有Mashup服务,得到文档‑单词语义权重矩阵D。
9.如权利要求1或2所述的面向NLP基于GSDPMM和主题模型的Mashup服务谱聚类方法,其特征在于,所述3.1的过程如下:
3.1.1对于当前Mashup服务,计算该Mashup服务描述文档长度Len,设定滑动窗口长度为Len;
3.1.2统计Mashup服务描述文档中单词和其他单词的共现情况,若当前单词的其上下文单词,即该单词前后的单词,在滑动窗口Len的距离内,则该单词和其在滑动窗口内的上下文单词共现次数加1;
3.1.3重复3.1.2直至处理完Mashup中的所有单词;
3.1.4重复3.1.1‑3.1.3直至处理完所有Mashup服务。