一种Web服务构件库动态构造方法及其服务检索方法转让专利

申请号 : CN200910092767.0

文献号 : CN101650729B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邢少敏周伯生孙奎英

申请人 : 北京赛柏科技有限责任公司

摘要 :

本发明提供一种通过对Web服务描述文档进行语义标注,从而实现基于潜在语义匹配检索的Web服务构件库动态构造方法。同时,还包括根据该构造方法所设计的服务检索方法。由于本发明所设计的Web服务构件库的构造方法及其检索方法是根据词汇语义相似度进行比较,这样一词多义、多词同义、单词单复数、误拼等问题都在一定程度上得到了解决,因此使得该Web服务检索方法的各项技术指标得到了改善。

权利要求 :

1.一种Web服务构件库动态构造方法,其特征在于:具体包括如下步骤:(1)通过网络爬虫从互联网上含有Web服务的站点抓取网页;

(2)从网页中解析出Web服务地址信息;

(3)验证Web服务地址信息,根据有效地址提取Web服务基本信息并存储;

(4)依据WordNet词库,对Web服务基本信息中的输出参数进行分词和本体标注,输出参数经过分词和本体标注,产生一个集合,称为输出参数的标注集,标注集中的每个元素称为输出参数的标注项;

(5)重复前述步骤(1)至步骤(4),直至形成经过分词和本体标注的Web服务集合;

(6)将所述经过分词和本体标注后的Web服务集合组织形成一个特征项-文档矩阵;该特征项-文档矩阵的行和列分别由Web服务集合的所有Web服务和所有Web服务输出参数的标注项组成;该特征项-文档矩阵中的具体权重值Qij,依据计算式Qij=TFij*Log(N/ni)计算得出,该TFij=tij/aj;其中Qij为标注项i在服务j中的权重值,TFij为标注项i在服务j中出现的频率,N为Web服务集合中的服务数量,aj为服务j中输出参数的标注项总数,tij为在服务j输出参数的标注集中与标注项i相似度大于阈值的标注项的数目,ni为该输出参数标注集中含有与标注项i相似度大于阈值的服务的个数;所述特征项-文档矩阵即为Web服务的构件库;

该步骤(6)中所述标注项与标注项的相似度计算步骤如下:

(6a)检查比较相似度的两个标注项是否均与WordNet词库中的词汇本体相对应;如果是,则通过步骤(6b)计算两个标注项间的相似度;如果不是,则通过步骤(6c)计算两个标注项间的相似度;

(6b)所述两个标注项之间的相似度依据下述计算公式进行计算:

Simres(c1,c2)=maxc∈S(c1,c2)IC(c)IC(c)=-log p(c)

p(c)=count /sum

其中,c1、c2分别为进行比较的两个标注项,p(c)为WordNet词库中的词汇本体c在某个特定领域词汇本体实例集合C中的出现概率,某个特定领域词汇本体实例集合C在WordNet词库中的词汇本体实例总数为sum,某个特定领域词汇本体实例集合C中词汇本体c的本体实例数目为count;IC(c)为词汇本体c包含的信息内容;

(6c)所述两个标注项之间的相似度依据下述计算公式进行计算:

EditSimilarity=(maxLen-dis)/maxLen其中,EditSimilarity为编辑距离相似度,是指两个字符串之间较长的字符串的长度与两个字符串编辑距离之差占较长的字符串长度的比例;dis为编辑距离,maxLen为两个字符串中较长的字符串的长度。

2.如权利要求1所述的Web服务构件库动态构造方法,其特征在于:还包括如下步骤:(7a)对所建立的特征项-文档矩阵指定分类的数量;

(7b)将所述特征项-文档矩阵代入PLSA模型,经过EM算法迭代计算后得到P(d|z)、P(w|z)、P(z);该P(d|z)表示服务d属于类别z的概率;P(w|z)表示标注项w在类别z中出现的概率;P(z)表示类别z出现的概率;

(7c)根据计算公式 计算p(z|d);该

p(z|d)表示某一类别在某个Web服务中所占的比重;根据该p(z|d)值最大的那个类对各个Web服务进行分类。

3.如权利要求2所述的Web服务构件库动态构造方法,其特征在于:还包括如下步骤:(8a)对每个类别的所有服务以输出参数标注项为关键词key建立索引表;

(8b)该索引表中的内容为与对应关键词key所述权重值Qij不为0的Web服务。

4.如权利要求3所述的Web服务构件库动态构造方法,其特征在于:还包括如下步骤:(8c)根据索引表中各个Web服务的Qos属性值大小对Web服务进行排序。

5.如权利要求1至4中任一所述的Web服务构件库动态构造方法,其特征在于:在所述步骤(4)中在依据WordNet词库,对Web服务基本信息中的输出参数进行分词和本体标注的同时,也对Web服务基本信息中的操作名或输入参数进行分词和本体标注。

6.一种Web服务构件库的服务检索方法,基于权利要求2所述的Web服务构件库动态构造方法所构建的结构库实现,其特征在于:具体包括如下步骤:(1)用户提出Web服务检索请求,并将所需Web服务的信息发送给Web服务构件库;

(2)Web服务构件库响应用户提出的Web服务检索请求,从所述请求检索的Web服务信息中提取出输出参数信息;

(3)依据WordNet词库,对所述请求检索的Web服务信息中的输出参数进行分词和本体标注,输出参数经过分词和本体标注,产生一个集合,称为输出参数的标注集,标注集中的每个元素称为输出参数的标注项;

(4)将所述经过分词和本体标注后的请求检索Web服务的输出参数视为一个向量代入特征项-文档矩阵中;该向量中的具体权重值Qij,依据计算式Qij=TFij*Log(N/ni)计算得出,该TFij=tij/aj;其中Qij为标注项i在服务j中的权重值,TFij为标注项i在服务j中出现的频率,N为Web服务集合中的服务数量,aj为服务j中输出参数的标注项总数,tij为在服务j输出参数的标注集中与标注项i相似度大于阈值的标注项的数目,ni为该输出参数标注集中含有与标注项i相似度大于阈值的服务的个数;

(5)将代入请求检索Web服务输出参数向量的特征项-文档矩阵代入PLSA模型,经过EM算法迭代计算后得到P(q|z)、P(w|z)、P(z);该P(q|z)表示请求服务q属于类别z的概率;P(w|z)表示标注项w属于类别z的概率;P(z)表示类别z出现的概率;

(6)根据计算公式 计算p(z|q);该

p(z|q)表示某一类别在该请求检索的Web服务中所占的比重;根据该p(z|q)值最大的那个类对该请求检索Web服务进行分类;

(7)知道了q的分类,就可以使用向量相似度计算方法在分类中计算q和其他文章的相似程度,并且依照相似程度输出最后的结果;

该步骤(4)中所述标注项与标注项的相似度计算步骤如下:

(4a)检查比较相似度的两个标注项是否均与WordNet词库中的词汇本体相对应;如果是,则通过步骤(4b)计算两个标注项间的相似度;如果不是,则通过步骤(4c)计算两个标注项间的相似度;

(4b)所述两个标注项之间的相似度依据下述计算公式进行计算:

Simres(c1,c2)=maXc∈S(c1,c2)IC(c)IC(c)=-log p(c)

p(c)=count/sum

其中,c 1、c2分别为进行比较的两个标注项,p(c)为WordNet词库中的词汇本体c在某个特定领域词汇本体实例集合C中的出现概率,某个特定领域词汇本体实例集合C在WordNet词库中的词汇本体实例总数为sum,某个特定领域词汇本体实例集合C中词汇本体c的本体实例数目为count;IC(c)为词汇本体c包含的信息内容;

(4c)所述两个标注项之间的相似度依据下述计算公式进行计算:

EditSimilarity=(maxLen-dis)/maxLen其中,EditSimilarity为编辑距离相似度,是指两个字符串之间较长的字符串的长度与两个字符串编辑距离之差占较长的字符串长度的比例;dis为编辑距离,maxLen为两个字符串中较长的字符串的长度。

7.如权利要求6所述的Web服务构件库的服务检索方法,基于权利要求3所述的Web服务构件库动态构造方法所构建的结构库实现,其特征在于:还包括了如下步骤:(8a)将检索请求Web服务的输出参数标注项与该检索请求Web服务所属分类的索引表中的关键词key进行相似度比较;

(8b)将与检索请求Web服务的输出参数标注项相似度大于一定阀值的索引表中关键词key所对应的Web服务列表集合取出来,并求交集得到检索结果。

8.如权利要求7所述的Web服务构件库的服务检索方法,基于权利要求4所述的Web服务构件库动态构造方法所构建的结构库实现,其特征在于:还包括如下步骤:(8c)根据用户检索请求对Web服务的Qos需求对所述检索结果中的各个Web服务进行过滤。

9.如权利要求6、7或8所述的Web服务构件库的服务检索方法,其特征在于:还包括如下步骤:(9a)通过向量夹角余弦距离计算公式cosα=a·b/|a|*|b|计算每个Web服务向量与检索请求向量的夹角余弦距离,其中a,b是向量,|a|和|b|分别是向量a和b的模,a·b是a和b的点积;

(9b)根据该夹角余弦距离的计算结果对输出的Web服务检索结果进行排序。

10.如权利要求6、7或8所述的Web服务构件库的服务检索方法,基于权利要求5所述的Web服务构件库动态构造方法所构建的结构库实现,其特征在于:在所述步骤(3)中在依据WordNet词库,对所述请求检索的Web服务信息中的输出参数进行分词和本体标注的同时,也对请求检索的Web服务信息中的操作名或输入参数进行分词和本体标注;

在前述所有步骤之后还包括下述步骤:

(10)将所述步骤(3)中标注的请求检索的Web服务信息中的操作名或输入参数,与所述检索结果Web服务集合中各Web服务的操作名或输入参数进行相似度比较;

(11)删除检索结果Web服务集合中,操作名或输入参数与请求检索的Web服务信息中的操作名或输入参数相似度低于一定阀值的Web服务;

该步骤(11)中所述标注项与标注项的相似度计算步骤如下:

(11a)检查比较相似度的两个标注项是否均与WordNet词库中的词汇本体相对应;如果是,则通过步骤(11b)计算两个标注项间的相似度;如果不是,则通过步骤(11c)计算两个标注项间的相似度;

(11b)所述两个标注项之间的相似度依据下述计算公式进行计算:Simres(c1,c2)=maxc∈S(c1,c2)IC(c)IC(c)=-log p(c)

p(c)=count /sum

其中,c1、c2分别为进行比较的两个标注项,p(c)为WordNet词库中的词汇本体c在某个特定领域词汇本体实例集合C中的出现概率,某个特定领域词汇本体实例集合C在WordNet词库中的词汇本体实例总数为sum,某个特定领域词汇本体实例集合C中词汇本体c的本体实例数目为count;IC(c)为词汇本体c包含的信息内容;

(11c)所述两个标注项之间的相似度依据下述计算公式进行计算:EditSimilarity=(maxLen-dis)/maxLen其中,EditSimilarity为编辑距离相似度,是指两个字符串之间较长的字符串的长度与两个字符串编辑距离之差占较长的字符串长度的比例;dis为编辑距离,maxLen为两个字符串中较长的字符串的长度。

说明书 :

一种Web服务构件库动态构造方法及其服务检索方法

技术领域

[0001] 本发明涉及一种Web服务构件库动态构造方法及其服务检索方法。该Web服务构件库动态构造方法主要是通过对Web服务描述文档进行语义标注,从而实现基于潜在语义匹配的检索,这大大改善了传统基于具体关键字检索的检索效果和性能。属于信息检索技术领域。

背景技术

[0002] Web服务是一个崭新的分布式计算模型,是Web上数据和信息集成的有效机制。开发Web服务并开放出来,是一种非常有效的软件复用方式,不但可以达到软件复用的目的,也利用Web平台扩大了软件复用的范围,还可以利用开发Web服务打造出软件复用的产业链,探索软件复用商业模式。但是随着Internet上Web服务的快速增长,自动、准确地发现Web服务已经是Web服务技术中的难点和关键问题。于是,Web服务发现和搜索成为一个重要的研究方向。
[0003] 现有的Web服务检索技术大多是基于关键字匹配进行检索,如UDDI等。这种基于关键字匹配的检索方法的发现精度不高,处理大量的Web服务时运算量过大,而且缺乏语义,只能做语法层面的处理,无法准确刻画服务的特性。例如,无法处理一词多义和多词同义的情况。再加上Web服务描述文档本身的词汇数量相对于一般文本来说相当少,所以这种基于关键字匹配的检索方法应用在Web服务发现上的实际效果并不理想。
[0004] 作为对关键字检索方法的改进,语义Web服务发现技术能够准确刻画服务的功能和属性,发现精度高。于是,大量基于语义的方法被提出来。然而,在基于语义的方法中,很大一部分是基于OWL-S,WSMO或者自定义的WSDL语言,虽然这些方法在特性应用场景中取得了很好的效果,但是使用这些语言定义的服务非常少,几乎所有的Web服务都是使用标准WSDL定义的,真正使用时,需要将这些WSDL定义的Web服务转换成上述语言,这就增加了很大的难度和复杂度,所以这一类方法的实用性有限。
[0005] 另外,Web服务本身所具有的自身特征也限制了对其应用基于语义匹配的检索方法。首先,Web服务描述文档词汇量少;其次,Web服务本身的参数名和操作名一般都不是完整词汇,要么是词汇简化,要么词汇组合。所以,如果只是将Web服务描述文件当作普通文本来对待,不考虑Web服务描述文件自身的特征,采用一般的基于语义匹配的检索方法效果就会受到一定的限制。因此,我们也有必要针对Web服务的自身特征对其语义匹配的检索方法进行改进和优化。

发明内容

[0006] 本发明的主要目的在于解决现有Web服务检索技术中存在的问题,提供一种通过对Web服务描述文档进行语义标注,从而实现基于潜在语义匹配检索的Web服务构件库动态构造方法。同时,还包括根据该构造方法所设计的服务检索方法。
[0007] 本发明的发明目的是通过下述技术方案予以实现的:
[0008] 一种Web服务构件库动态构造方法,其特征在于:具体包括如下步骤:
[0009] (1)通过网络爬虫从互联网上含有Web服务的站点抓取网页;
[0010] (2)从网页中解析出Web服务地址信息;
[0011] (3)验证Web服务地址信息,根据有效地址提取Web服务基本信息并存储;
[0012] (4)依据WordNet词库,对Web服务基本信息中的输出参数进行分词和本体标注,输出参数经过分词和本体标注,产生一个集合,称为输出参数的标注集,标注集中的每个元素称为输出参数的标注项;
[0013] (5)重复前述步骤(1)至步骤(4),直至形成一定规模经过分词和本体标注的Web服务集合;
[0014] (6)将所述经过分词和本体标注后的Web服务集合组织形成一个特征项-文档矩阵;该特征项-文档矩阵的行和列分别由Web服务集合的所有Web服务和所有Web服务输出参数的标注项组成;该特征项-文档矩阵中的具体权重值Qij,依据计算式Qij=TFij*Log(N/ni)计算得出,该TFij=tij/aj;其中Qij为标注项i在服务j中的权重值,TFij为标注项i在服务j中出现的频率,N为Web服务集合中的服务数量,aj为服务j中输出参数的标注项总数,tij为在服务j输出参数的标注集中与标注项i相似度大于阈值的标注项的数目,ni为该输出参数标注集中含有与标注项i相似度大于阈值的服务的个数;
[0015] 该步骤(6)中所述标注项与标注项的相似度计算步骤如下:
[0016] (6a)检查比较相似度的两个标注项是否均与WordNet词库中的词汇本体相对应;如果是,则通过步骤(6b)计算两个标注项间的相似度;如果不是,则通过步骤(6c)计算两个标注项间的相似度;
[0017] (6b)所述两个标注项之间的相似度依据下述计算公式进行计算:
[0018]
[0019] Simres(c1,c2)=maxc∈S(c1,c2)IC(c)
[0020] IC(c)=-logp(c)
[0021] p(c)=count/sum
[0022] 其中,c 、c2分别为进行比较的两个标注项,p(c)为WordNet词库中的词汇本体c在某个特定领域词汇本体实例集合C中的出现概率,某个特定领域词汇本体实例集合C在WordNet词库中的词汇本体实例总数为sum,某个特定领域词汇本体实例集合C中词汇本体c的本体实例数目为count;IC(c)为词汇本体c包含的信息内容;
[0023] (6c)所述两个标注项之间的相似度依据下述计算公式进行计算:
[0024] EditSimilarity=(maxLen-dis)/maxLen
[0025] 其中,EditSimilarity为编辑距离相似度,是指两个字符串之间较长的字符串的长度与两个字符串编辑距离之差占较长的字符串长度的比例;dis为编辑距离,maxLen为两个字符串中较长的字符串的长度。
[0026] 一种Web服务构件库的服务检索方法,基于上述的Web服务构件库动态构造方法所构建的结构库实现,其特征在于:具体包括如下步骤:
[0027] (1)用户提出Web服务检索请求,并将所需Web服务的信息发送给Web服务构件库;
[0028] (2)Web服务构件库响应用户提出的Web服务检索请求,从所述请求检索的Web服务信息中提取出输出参数信息;
[0029] (3)依据WordNet词库,对所述请求检索的Web服务信息中的输出参数进行分词和本体标注,输出参数经过分词和本体标注,产生一个集合,称为输出参数的标注集,标注集中的每个元素称为输出参数的标注项;
[0030] (4)将所述经过分词和本体标注后的请求检索Web服务的输出参数视为一个向量代入特征项-文档矩阵中;该向量中的具体权重值Qij,依据计算式Qij=TFij*Log(N/ni)计算得出,该TFij=tij/aj;其中Qij为标注项i在服务j中的权重值,TFij为标注项i在服务j中出现的频率,N为Web服务集合中的服务数量,aj为服务j中输出参数的标注项总数,tij为在服务j输出参数的标注集中与标注项i相似度大于阈值的标注项的数目,ni为该输出参数标注集中含有与标注项i相似度大于阈值的服务的个数;
[0031] (5)将代入请求检索Web服务输出参数向量的特征项-文档矩阵代入PLSA模型,经过适当的EM算法迭代计算后得到P(q|z)、P(w|z)、P(z);该P(q|z)表示请求服务q属于类别z的概率;P(w|z)表示标注项w属于类别z的概率;P(z)表示类别z出现的概率;
[0032] (6)根据计算公式 计算p(z|q);该p(z|q)表示某一类型在该请求检索的Web服务中所占的比重;根据该p(z|q)值最大的那个类对该请求检索Web服务进行分类;
[0033] (7)知道了q的分类,就可以使用向量相似度计算方法在分类中计算q和其他文章的相似程度,并且依照相似程度输出最后的结果;
[0034] 该步骤(4)中所述标注项与标注项的相似度计算步骤如下:
[0035] (4a)检查比较相似度的两个标注项是否均与WordNet词库中的词汇本体相对应;如果是,则通过步骤(4b)计算两个标注项间的相似度;如果不是,则通过步骤(4c)计算两个标注项间的相似度;
[0036] (4b)所述两个标注项之间的相似度依据下述计算公式进行计算:
[0037]
[0038] Simres(c1,c2)=maxc∈S(c1,c2)IC(c)
[0039] IC(c)=-log p(c)
[0040] p(c)=count/sum
[0041] 其中,c1、c2分别为进行比较的两个标注项,p(c)为WordNet词库中的词汇本体c在某个特定领域词汇本体实例集合C中的出现概率,某个特定领域词汇本体实例集合C在WordNet词库中的词汇本体实例总数为sum,某个特定领域词汇本体实例集合C中词汇本体c的本体实例数目为count;IC(c)为词汇本体c包含的信息内容;
[0042] (4c)所述两个标注项之间的相似度依据下述计算公式进行计算:
[0043] EditSimilarity=(maxLen-dis)/maxLen
[0044] 其中,EditSimilarity为编辑距离相似度,是指两个字符串之间较长的字符串的长度与两个字符串编辑距离之差占较长的字符串长度的比例;dis为编辑距离,maxLen为两个字符串中较长的字符串的长度。
[0045] 本发明的有益效果是:由于本发明所设计的Web服务构件库的构造方法及其检索方法是根据词汇语义相似度进行比较,这样一词多义、多词同义、单词单复数、误拼等问题都在一定程度上得到了解决,因此使得该Web服务检索方法的各项技术指标得到了改善。

附图说明

[0046] 图1为Web服务构件库动态构造方法第一实施例的流程图;
[0047] 图2为特征项-文档矩阵示例图;
[0048] 图3为标注项与标注项之间语义相似度计算流程图;
[0049] 图4为PLSA迭代计算模型示意图;
[0050] 图5为Web服务构件库服务检索方法第一实施例的流程图;
[0051] 图6为Web服务检索技术指标对比图。

具体实施方式

[0052] 下面结合附图和实施例对本发明作进一步描述。
[0053] 如前所述,现有的Web服务检索技术大多是基于关键字匹配进行检索。但是,这种基于关键字匹配的检索方法的发现精度不高,无法处理一词多义和多词同义的情况。并且,Web服务本身的参数名和操作名一般都不是完整词汇,要么是词汇简化,要么是词汇组合。这就进一步增加了通过关键字一一对应的方法进行检索的难度。
[0054] 本发明为了解决上述问题,对Web服务检索技术引入了语义匹配的概念。所谓语义匹配就是对Web服务描述文档中所出现的词汇不仅做简单的语法层面的处理,还要分析该词汇所表达的语义,进而针对检索关键词所表达的语义进行匹配检索。这样可以有效的解决一词多义或者多词同义的问题。
[0055] 本发明所设计的Web服务构件库动态构造方法主要是借助了既有的WordNet词库从而实现上述基于语义匹配检索的。
[0056] WordNet词库是由普林斯顿大学的心理学家、语言学家和计算机工程师联合设计的一种基于认知语言学的英语词典。它不是如传统词典那样,仅把单词以字母顺序进行简单排列,而是按照语义和语义之间的关系来组织词汇。其中包括名词、动词、形容词和副词四种词汇,词汇之间的关系有同义关系、反义关系、上位关系、下位关系、整体关系和部分关系。它作为语言学本体库,同时又是一部语义词典。例如,在WordNet的2.0版本中,共有115424个同义词集合,其中名词同义词集合就有79685个,基本上涵盖了常用的英语名词词汇。
[0057] 本发明正是借助了WordNet词库中既有的词汇与词汇间的语义联系,建立了Web服务描述文档中所出现的词汇与用户检索关键词之间的语义联系,进而最终实现前述基于语义匹配的检索方法。
[0058] 实施例一:
[0059] 下面具体介绍本发明所设计的Web服务构件库动态构造的具体方法。图1为Web服务构件库动态构造方法第一实施例的流程图。如图所示,该构件库动态构造方法具体包括如下步骤:
[0060] (1)通过网络爬虫从互联网上含有Web服务的站点抓取网页;
[0061] (2)从网页中解析出Web服务地址信息;
[0062] (3)验证Web服务地址信息,根据有效地址提取Web服务基本信息并存储;
[0063] (4)依据WordNet词库,对Web服务基本信息中的输出参数进行分词和本体标注,输出参数经过分词和本体标注后,产生一个集合,称为输出参数的标注集,标注集中的每个元素称为输出参数的标注项;
[0064] 所谓本体标注是通过WordNet词库中既有的词汇之间的语义关系,把服务中的某些词汇选择语义相近的本体进行标识,表示这些词汇和本体之间语义相近。
[0065] 这里之所以只对Web服务基本信息中的输出参数进行分词和本体标注,是因为用户查询服务最关注的是输出,只有当输出满足需求时,考虑其他信息,比如操作名,输入参数等才有意义。而在输出没有满足需求时,通过操作名或输入参数等来做索引,会干扰查询质量,降低准确率。
[0066] 另外,根据Web服务的命名习惯,Web服务描述文档中所使用的操作名或者参数往往不是一个正确的英文词汇,而只是组合的标识符,所以在进行本体标注之前还需要对操作名和参数进行分词处理。下面具体给出本实施例所采用的分词及本体标注的规则:
[0067] a)单个英文单词:直接用其对应的本体标注;
[0068] b)英文名词复数:比如days:变为单数形式,再进行本体标注;
[0069] c)英文词组,如Stock Quote:分成两个单词,对每个单词都进行本体标注;
[0070] d)词组连写,如StockQuote、Stock_Quote、URL2IP、XML to URL:用各种分隔符(如下划线、短线等)、分割词(数字、&、to、from、and、for、of、by等)和大小写将词组分割成单词,并去掉分隔符和分割词,再对每个正确的英文单词进行标注;
[0071] e)简写词,如SMS、DNS、URL、XML等:不作标注,直接使用原词;
[0072] f)误拼单词,如Weether(Weather)等:不作标注,直接使用原词;
[0073] g)动作前缀,如GetWeather、AddWeather:用大小写分隔成单词,动词直接使用原词,名词用本体标注;
[0074] h)其它找不到对应本体的单词:保留原词。
[0075] 但应指出的是,这里所给出的分词及本体标注的规则仅是为了适应Web服务描述文档中的构词方式所设计出的一种分词及本体标注的规则,以便于后续与WordNet词库中的本体相对应。在实际使用中,依据软件程序设计的不同,该分词及本体标注规则可能有多种不同的变换方式。但无论该分词及本体标注规则如何设计,只要是其为与WordNet词库中的本体相对应所设计,均应视为在本发明的保护范围之内。
[0076] (5)重复前述步骤(1)至步骤(4),直至形成一定规模经过分词和本体标注的Web服务集合;
[0077] 由于本发明所设计的Web服务构件库的构造方法需要一定数量的Web服务才能获得比较可信的构件库矩阵。因此,这里需要积攒到一定规模的Web服务才能进行后续的构件库矩阵建立过程。但是,这里所需要的规模具体多大,根据实际需要并不一定。
[0078] (6)将所述经过分词和本体标注后的Web服务集合组织形成一个特征项-文档矩阵;如图2所示,该特征项-文档矩阵的行和列分别由Web服务集合的所有Web服务和所有Web服务输出参数的标注项组成;该特征项-文档矩阵中的具体权重值Qij,依据计算式Qij=TFij*Log(N/ni)计算得出,该TFij=tij/aj;其中Qij为标注项i在服务j中的权重值,TFij为标注项i在服务j中出现的频率,N为Web服务集合中的服务数量,aj为服务j中输出参数的标注项总数,tij为在服务j输出参数的标注集中与标注项i相似度大于阈值(例如:取值0.8)的标注项的数目,ni为该输出参数标注集中含有与标注项i相似度大于阈值(例如:取值0.8)的服务的个数。
[0079] 这里所采用的权重值Qij的计算式Qij=TFij*Log(N/ni)是一种在向量空间模型中较为常见的权值计算公式TF-IDF公式。该TF-IDF公式是一种用于信息检索的加权技术,常用以评估一个字词对于一个文件集或一个语料库中的其中一份文件的重要程度。
[0080] 但是,本发明针对前述基于语义匹配的设计意图,对该公式进行了修改。这主要体现在该tij为在服务j输出参数的标注集中与标注项i相似度大于阈值的标注项的数目,而不是传统TF-IDF公式中标注项i在服务j输出参数标注集中的出现次数;该ni为该输出参数标注集中含有与标注项i相似度大于阈值的服务的个数,而不是传统TF-IDF公式中输出参数标注集中含有标注项i的服务的个数。通过这样的修改,使得对于权重值Qij的计算不再只是简单的使用字符串匹配,而是引入了标注项与标注项之间的语义相似度计算,从词汇语义的匹配进行统计。因此,这样计算出来的词汇在服务中的权重值才更为可信。
[0081] 可见,对于上述权重值Qij的计算而言,其中标注项与标注项之间语义相似度的计算尤为重要。参见图3,下面就具体给出该相似度的计算步骤:
[0082] (6a)检查比较相似度的两个标注项是否均能在WordNet词库中找到相对应的本体;如果是,则通过步骤(6b)计算两个标注项间的相似度;如果不是,则通过步骤(6c)计算两个标注项间的相似度;
[0083] (6b)所述两个标注项之间的相似度依据下述计算公式进行计算:
[0084]
[0085] Simres(c1,c2)=maxc∈S(c1,c2)IC(c)
[0086] IC(c)=-log p(c)
[0087] p(c)=count/sum
[0088] 其中,c1、c2分别为进行比较的两个标注项,p(c)为WordNet词库中的词汇本体c在某个特定领域词汇本体实例集合C中的出现概率,某个特定领域词汇本体实例集合C在WordNet词库中的词汇本体实例总数为sum,某个特定领域词汇本体实例集合C中词汇本体c的本体实例数目为count;IC(c)为词汇本体c包含的信息内容,也称为信息量。所谓信息量是信息理论中的一个基本概念,是指从N个相等可能事件中选出一个事件所需要的信息含量,也就是在辩识N个事件中特定的一个事件的过程中所需要提问″是或否″的最少次数。事件出现得概率越小,信息量愈大,反之则愈小。某事件Xi的信息量的计算公式为H(Xi)=-logP(Xi)。
[0089] (6c)所述两个标注项之间的相似度依据下述计算公式进行计算:
[0090] EditSimilarity=(maxLen-dis)/maxLen
[0091] 其中,EditSimilarity称为编辑距离相似度,是指两个字符串之间较长的字符串的长度与两个字符串编辑距离之差占较长的字符串长度的比例。dis为编辑距离,maxLen为两个字符串中较长的字符串的长度。
[0092] 这里应该说明的是,编辑距离这个概念是在1965年由俄国VladimirLevenshtein提出的一种字符串间的相似度计算方式。所谓字符串A到B的编辑距离是指,只用插入、删除和替换三种操作,最少需要多少步可以把A变成B。例如,从FAME到GATE需要两步(两次替换),从GAME到ACM则需要三步(删除G和E再添加C)。要比较两个不同拼写的字符串是否相似,只要判断两个字符串之间的编辑距离是否足够小即可。
[0093] 本发明引入这种相似度计算方法,主要是针对在Web服务描述文档中存在一些拼写错误或其他无法与WordNet词库中词汇本体相对应的情况。通过编辑距离相似度的计算可以有效地完成对这些标注项相似度的计算。
[0094] 通过上述构造方法所构造的特征项-文档矩阵即为Web服务的构件库。用户可以通过该特征项-文档矩阵对所要查找的Web服务进行检索。从上述的构件库构造方法的描述中我们不难看出,本发明所设计的Web服务构件库构造方法,首先是在构件库构造工程中引入了WordNet词库,通过对Web服务描述文档中的词汇进行分词和本体标注,使之与WordNet词库中的词汇本体相对应,从而继承WordNet词库本身所具有的词汇之间的语义关系。然后是在特征项-文档矩阵的构建过程中,对其中权重值Qij的计算公式进行修改,在该计算公式中引入标注项间相似度的计算,从而使得词汇之间的语义联系可通过定量化的计算得出,进而修正所计算的权重值Qij,使其更具可信性。
[0095] 实施例二:
[0096] 在前述第一实施例中,该构造方法最终所构建出的特征项-文档矩阵是一个基于所有所找到的Web服务的庞大矩阵。因此,直接应用这样的矩阵进行检索的计算量非常大,为了提高检索的效率我们有必要对该特征项-文档矩阵进行分类化简。目前,对检索矩阵进行分类化简的方法有很多,在本发明的第二实施例中我们具体采用了PLSA模型(概率潜在语义模型)对上述特征项-文档矩阵进行分类化简。
[0097] PLSA模型是一种把文档和关键词映射到一个潜在的语义空间,这个空间由一些话题组成,每个话题关联了一些关键词。在为文档建模的过程中,PLSA模型为每个文档d和关键词w的同时出现关联了一个话题z。假设W,Z,D分别表示关键词向量,话题向量和文档向量,|W|,|Z|,|D|分别表示各个向量的范数,那么PLSA模型的生成过程如图4所示。PLSA是通过Expectation Maximization算法(简称:EM算法)来最大化数据似然度从而求出模型的参数P(w|z),P(d|z)和P(d)的。其中,P(w|z)表示关键词w属于主题z的概率;P(d|z)表示文档d属于主题z的概率;P(d)表示文档d出现的概率。
[0098] PLSA模型使用话题(Z={z1,z2…zf},1<f<k,k=|Z|为向量Z的范数,即话题总数)将关键词和文档间接的联系起来,并且假设当话题指定时,关键词和文档是条件独立的,则如下公式成立:
[0099] P(d,w)=P(d)P(w|d)
[0100]
[0101] 由此可以得出:
[0102]
[0103] 上式中,d表示文档,w表示关键词。PLSA使用概率及统计模型来完成文档分类。它使用EM算法来迭代计算概率分布,在每一个迭代中E-步骤中的每一项都可以直接由上一次M-步骤中求得的数值来推算。接下来使用EM来求出P(z)、P(w|z)及P(d|z)。对数似然函数为: 其中n(d,w)是文档-关键词矩阵N中的元素,
N为前述特征项-文档矩阵的转秩矩阵。
[0104] E-步骤:
[0105]
[0106] M-步骤:
[0107]
[0108]
[0109]
[0110] 经过适当的迭代后,其概率会收敛到一定的值。最后我们可以算出不同类别在每篇文档中所占的比重:
[0111]
[0112] 本发明即是利用了PLSA模型的上述迭代计算特性,将其应用到本发明所建立的特征项-文档矩阵中,对其中的各个Web服务进行分类。其具体的代入PLSA模型对Web服务进行分类的步骤如下:
[0113] (7a)对所建立的特征项-文档矩阵指定分类的数量;
[0114] (7b)将所述特征项-文档矩阵代入PLSA模型,经过适当的EM算法迭代计算后得到P(d|z)、P(w|z)、P(z);该P(d|z)表示服务d属于类别z的概率;P(w|z)表示标注项w在类别z中出现的概率;P(z)表示类别z出现的概率;
[0115] (7c)根 据 计 算 公 式 计 算p(z|d);该p(z|d)表示某一类型在某个Web服务中所占的比重;该p(z|d)值最大的那个类即为该Web服务的分类。
[0116] 通过上述将特征项-文档矩阵代入PLSA模型的方法,本发明实现了对各个Web服务进行分类,从而简化了特征项-文档矩阵结构,使其所需的检索计算量得以降低。
[0117] 实施例三:
[0118] 为了进一步提高检索效率和性能,在上述实施例二利用PLSA为服务建立分类的基础上,本实施例还对每个类中的Web服务以其输出参数标注项为key建立索引表,具体步骤如下:
[0119] (8a)对每个类别的所有服务以输出参数标注项为关键词key建立索引表;
[0120] (8b)该索引表中的内容为与对应关键词key所述权重值Qij不为0的Web服务。
[0121] 由此建立的索引表在检索过程中,可以根据所要检索Web服务的输出参数为关键词key,仅在与该关键词key有相关联性的Web服务中进行比对,从而进一步提高了检索效率。
[0122] 不仅如此,由于检索结果的排列顺序也是评价一个检索方法质量的重要因素。因此,我们在这里还对该索引表设置了基于Qos属性值的排序步骤,具体步骤如下:
[0123] (8c)根据索引表中各个Web服务的Qos属性值大小对Web服务进行排序。该Web服务的Qos属性值依据先按照性能确定大小,性能相同的按照可用性确定大小,性能和可用性均相同按照稳定性确定大小,前三者均相同按照成本确定大小的原则进行大小排序。
[0124] 这里,我们仅举出一种可行的Qos属性值比较方法,但应指出的是根据实际设计需要Qos属性值的比较方法可以任意定义。无论实施者使用何种具体的比较方法,均应视为在本专利的保护范围之内。
[0125] 实施例四:
[0126] 在前述第一实施例中已经介绍,在本发明中之所以优先选择对Web服务的输出参数进行比对,是因为用户查询服务最关注的是输出,只有当输出满足需求时,考虑其他信息,比如操作名,输入参数等才有意义。而在输出没有满足需求时,通过操作名或输入参数等来做索引,会干扰查询质量,降低准确率。
[0127] 但是,在Web服务的输出参数已经满足需求的前提下,对Web服务的操作名或输入参数进行比较就可以起到进一步筛选结果的目的,有助于提高检索结果的准确性。可见,对Web服务的操作名或输入参数进行如前面介绍的语义关系比较也是有意义的。
[0128] 鉴于此,在本实施例中,在所述步骤(4)中在依据WordNet词库,对Web服务基本信息中的输出参数进行分词和本体标注的同时,也对Web服务基本信息中的操作名或输入参数进行分词和本体标注。
[0129] 这样对在后续检索过程中,进行基于Web服务的操作名或输入参数的语义关系比较提供支持。
[0130] 前面介绍了几种本发明所设计的Web服务构件库可行的构造方法实施例。下面介绍对于这种基于语义关系比较构建的Web服务构件库的具体服务检索方法。
[0131] 本发明所设计的Web服务构件库的服务检索方法的基本原理是将用户所提出来的服务检索请求视为一个新的服务,将其代入既已建立的特征项-文档矩阵,并依据前述PLSA模型的算法规则进行迭代计算,从而确定该检索请求服务的分类。这样就可以方便的对该服务检索请求进行检索。
[0132] 实施例一:
[0133] 本实施例所设计的Web服务构件库的服务检索方法是基于前述Web服务构件库动态构造方法的第二实施例所构建的结构库实现的。如图5所示,该服务检索方法具体包括如下步骤:
[0134] (1)用户提出Web服务检索请求,并将所需Web服务的信息发送给Web服务构件库;
[0135] (2)Web服务构件库响应用户提出的Web服务检索请求,从所述请求检索的Web服务信息中提取出输出参数信息;
[0136] (3)依据WordNet词库,对所述请求检索的Web服务信息中的输出参数进行分词和本体标注,输出参数经过分词和本体标注后,产生一个集合,称为输出参数的标注集,标注集中的每个元素称为输出参数的标注项;
[0137] 这里,对请求检索的Web服务信息中的输出参数进行分词和本体标注的规则与前面在构件库构造过程中对Web服务的输出参数所做的分词和本体标注的规则一致。在此就不再重复叙述了。
[0138] (4)将所述经过分词和本体标注后的请求检索Web服务的输出参数视为一个向量代入特征项-文档矩阵中;该向量中的具体权重值Qij,依据计算式Qij=TFij*Log(N/ni)计算得出,该TFij=tij/aj;其中Qij为标注项i在服务j中的权重值,TFij为标注项i在服务j中出现的频率,N为Web服务集合中的服务数量,aj为服务j中输出参数的标注项总数,tij为在服务j输出参数的标注集中与标注项i相似度大于阈值(例如:取值0.8)的标注项的数目,ni为该输出参数标注集中含有与标注项i相似度大于阈值(例如:取值0.8)的服务的个数。
[0139] 其中,标注项与标注项之间语义相似度的计算方法与前面在构件库构造过程中的处理方法相同。具体包括如下步骤:
[0140] (4a)检查比较相似度的两个标注项是否均与WordNet词库中的词汇本体相对应;如果是,则通过步骤(4b)计算两个标注项间的相似度;如果不是,则通过步骤(4c)计算两个标注项间的相似度;
[0141] (4b)所述两个标注项之间的相似度依据下述计算公式进行计算:
[0142]
[0143] Simres(c1,c2)=maxc∈S(c1,c2)IC(c)
[0144] IC(c)=-log p(c)
[0145] p(c)=count/sum
[0146] 其中,c1、c2分别为进行比较的两个标注项,p(c)为WordNet词库中的词汇本体c在某个特定领域词汇本体实例集合C中的出现概率,某个特定领域词汇本体实例集合C在WordNet词库中的词汇本体实例总数为sum,某个特定领域词汇本体实例集合C中词汇本体c的本体实例数目为count;IC(c)为词汇本体c包含的信息内容,也称为信息量。
[0147] (4c)所述两个标注项之间的相似度依据下述计算公式进行计算:
[0148] EditSimilarity=(maxLen-dis)/maxLen
[0149] 其中,EditSimilarity称为编辑距离相似度,是指两个字符串之间较长的字符串的长度与两个字符串编辑距离之差占较长的字符串长度的比例。dis为编辑距离,maxLen为两个字符串中较长的字符串的长度。
[0150] (5)将代入请求检索Web服务输出参数向量的特征项-文档矩阵代入PLSA模型,经过适当的EM算法迭代计算后得到P(q|z)、P(w|z)、P(z);该P(q|z)表示请求服务q属于类别z的概率;P(w|z)表示标注项w属于类别z的概率;P(z)表示类别z出现的概率;
[0151] (6)根据计算公式 计算p(z|q);该p(z|q)表示某一类型在该请求检索的Web服务中所占的比重;该p(z|q)值最大的那个类即为该请求检索的Web服务的分类。
[0152] 这里应该说明的是,只要之前所建立特征项-文档矩阵的数据规模足够大,那么可以认为将请求检索Web服务输出参数向量代入其中并不会影响该矩阵自身的概率统计。因此,进行上述的处理的计算量并不大,完全可以满足实际应用的需要。
[0153] (7)知道了q的分类,就可以使用向量相似度计算方法在分类中计算q和其他文章的相似程度,并且依照相似程度输出最后的结果。
[0154] 所谓向量相似度计算方法是一种较为常见的检索方法,它是指在信息检索中,根据文档中关键词及其词频等信息将文档表示为向量,以两个向量的相似度度量文档之间相似度的方法。基于向量的相似度计算方法是设计搜索引擎必不可少的技术。属于向量相似度计算方法的检索方法有很多,主要包括向量夹角余弦方法,内积方法,Dice方法和Jaccard方法等。这里,在知道了q的分类和前述p(z|q)的值后,那么就可以将q表示为一个向量{p(z1|q),p(z2|q),...,p(zk|q)},进而进行向量相似度计算方法检索。
[0155] 通过上述的Web服务检索方法即可完成对前面所构建的Web服务构件库的检索工作。由于在整个检索工程中,同样引入了基于语义匹配的信息处理方法,使得该检索的结果可信度更高。
[0156] 实施例二:
[0157] 本实施例所设计的Web服务构件库的服务检索方法是基于前述Web服务构件库动态构造方法的第三实施例所构建的结构库实现的。由于前述Web服务构件库动态构造方法的第三实施例在第二实施例的基础上进一步为每个分类的Web服务集合以其输出参数标注项为key建立索引表。因此,在本实施例中该Web服务构件库的服务检索方法在前述第一实施例的基础上,进一步包括了如下步骤:
[0158] (8a)将检索请求Web服务的输出参数标注项与该检索请求Web服务所属分类的索引表中的关键词key进行相似度比较;
[0159] 应当指出,这里所指的相似度比较也是采用如前面所述的基于语义关系的相似度比较。由于,前面已经详细叙述了这种相似度比较方法,在此就不再赘述。
[0160] (8b)将与检索请求Web服务的输出参数标注项相似度大于一定阀值的索引表中关键词key所对应的Web服务列表集合取出来,并求交集得到检索结果。
[0161] 另外,在前面Web服务构件库动态构造方法的第三实施例中,我们提到了可以对所述索引表设置基于Qos属性值的筛选。针对索引表的这一设计,我们还可以在Web服务检索过程中加入基于Qos属性值的筛选步骤,具体如下:
[0162] (8c)根据用户检索请求对Web服务的Qos需求对所述检索结果中的各个Web服务进行过滤。
[0163] 实施例三:
[0164] 如前所述,对于一种检索方法而言,其检索结果的排列顺序也是评价该检索方法质量的重要因素。这里,我们还提供另外一种对输出检索结果进行排序的方法。该方法可以基于前面所述的第一实施例或第二实施例实现,具体步骤如下:
[0165] (9a)通过向量夹角余弦距离计算公式cosα=a·b/|a|*|b|计算每个Web服务向量与检索请求向量的夹角余弦距离,其中a,b是向量,|a|和|b|分别是向量a和b的模,a·b是a和b的点积。
[0166] (9b)根据该夹角余弦距离的计算结果对输出的Web服务检索结果进行排序。
[0167] 实施例四:
[0168] 本实施例所设计的Web服务构件库的服务检索方法是基于前述Web服务构件库动态构造方法的第四实施例所构建的结构库实现的。本实施例在前述Web服务构件库服务检索方法的第一至第三实施例的基础上还对检索请求Web服务的操作名或输入参数进行相似度比较,以进一步对输出检索结果进行优化。具体如下:
[0169] 在所述步骤(3)中在依据WordNet词库,对所述请求检索的Web服务信息中的输出参数进行分词和本体标注的同时,也对请求检索的Web服务信息中的操作名或输入参数进行分词和本体标注。
[0170] 在前述所有步骤之后还包括下述步骤:
[0171] (10)将所述步骤(3)中标注的请求检索的Web服务信息中的操作名或输入参数,与所述检索结果Web服务集合中各Web服务的操作名或输入参数进行相似度比较;
[0172] (11)删除检索结果Web服务集合中,操作名或输入参数与请求检索的Web服务信息中的操作名或输入参数相似度低于一定阀值的Web服务。
[0173] 其中,步骤(10)中标注项与标注项之间语义相似度的计算方法与前面在构件库构造过程中的处理方法相同。具体包括如下步骤:
[0174] (10a)检查比较相似度的两个标注项是否均与WordNet词库中的词汇本体相对应;如果是,则通过步骤(10b)计算两个标注项间的相似度;如果不是,则通过步骤(10c)计算两个标注项间的相似度;
[0175] (10b)所述两个标注项之间的相似度依据下述计算公式进行计算:
[0176]
[0177] Simres(c1,c2)=maxc∈S(c1,c2)IC(c)
[0178] IC(c)=-log p(c)
[0179] p(c)=count/sum
[0180] 其中,c1、c2分别为进行比较的两个标注项,p(c)为WordNet词库中的词汇本体c在某个特定领域词汇本体实例集合C中的出现概率,某个特定领域词汇本体实例集合C在WordNet词库中的词汇本体实例总数为sum,某个特定领域词汇本体实例集合C中词汇本体c的本体实例数目为count;IC(c)为词汇本体c包含的信息内容,也称为信息量。
[0181] (10c)所述两个标注项之间的相似度依据下述计算公式进行计算:
[0182] EditSimilarity=(maxLen-dis)/maxLen
[0183] 其中,EditSimilarity称为编辑距离相似度,是指两个字符串之间较长的字符串的长度与两个字符串编辑距离之差占较长的字符串长度的比例。dis为编辑距离,maxLen为两个字符串中较长的字符串的长度。
[0184] 通过上述步骤可以对本发明所设计的Web服务检索方法的检索结果进一步的优化。
[0185] 图6为我们通过测试得到的本专利所设计的Web服务构件库及其服务检索方法与现有技术Web服务检索技术Woogle方法的性能比较图表。从图中可以明显看出,由于本专利所设计的方法挖掘出了服务文档之间隐含的语义关系,并采用了PLSA模型将Web服务文档映射到潜在语义空间中,比起现有的Woogle检索方法在准确率、召回率和R准确率三项指标上均有不同程度提高。这主要是因为本发明所设计的Web服务检索方法是根据词汇语义相似度进行比较,这样一词多义、多词同义、单词单复数、误拼等问题都在一定程度上得到了解决,各项技术指标得到了改善。
[0186] 综上所述,本发明所设计的Web服务构件库动态构造方法及其服务检索方法是通过对Web服务描述文档进行语义标注,从而实现基于潜在语义匹配检索。该方法显著的提高了Web服务检索的检索性能。本领域一本技术人员在该构造方法及检索方法的设计思想之下,所做的任何不具有创造性的改造,均应视为在本发明的保护范围之内。