首页 / 专利库 / 人工智能 / n元语法 / 一种面向目标的RESTfulWeb服务发现方法

一种面向目标的RESTfulWeb服务发现方法

阅读:1019发布:2020-08-23

专利汇可以提供一种面向目标的RESTfulWeb服务发现方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种面向目标的RESTful Web服务发现方法,首先收集RESTful Web服务的信息(特别是功能性的文本描述),并获得Web服务集的领域划分;然后从每个领域的Web服务集中进行领域 知识库 构建,包括Web服务‑服务目标关联矩阵、服务目标簇集等;最后基于构建的领域知识库,为给定的用户查询推荐语义相似的服务目标,然后将用户选择的服务目标集与Web服务的服务目标集进行匹配,得到候选Web服务集。本发明能够准确地发现满足用户需求目标的RESTful Web服务,具有很好的实用性;通过为用户的初始查询推荐语义相似的服务目标,可以帮助用户制定能够体现其需求的高 质量 查询。,下面是一种面向目标的RESTfulWeb服务发现方法专利的具体信息内容。

1.一种面向目标的RESTful Web服务发现方法,其特征在于,包括以下步骤:
步骤1:收集RESTful Web服务的信息,包括Web服务名称、所属领域和功能性的文本描述,得到Web服务集;
步骤2:对Web服务集进行预处理;
步骤3:针对预处理后的Web服务集,判断Web服务是否包含所属领域的信息;
若是,则执行下述步骤4;
若否,则执行下述步骤5;
步骤4:判断领域划分是否存在重叠;
若是,则执行下述步骤5;
若否,则执行下述步骤6;
步骤5:使用Web服务分类方法对Web服务集进行领域划分;
步骤6:针对每个领域的Web服务集进行领域知识库的构建,包括:领域词汇排序表、领域动词集、领域核心名词集、Web服务-服务目标关联矩阵和服务目标簇集;
步骤7:对给定的用户查询q进行Web服务发现。
2.根据权利要求1所述的面向目标的RESTful Web服务发现方法,其特征在于:步骤2中所述对Web服务集进行预处理,包括分词、词形还原、去停用词和词频统计,具体实现包括以下子步骤:
步骤2.1:对每个Web服务的信息进行解析,获取其中包含的所有词;
步骤2.2:将所有词还原成其基本原形;
步骤2.3:根据停用词表去掉一些无实际意义的词;
步骤2.4:统计每个词在Web服务中的频次。
3.根据权利要求1所述的面向目标的RESTful Web服务发现方法,其特征在于,步骤5的具体实现包括以下子步骤:
步骤5.1:指定需要进行分类的领域,将Web服务集划分为指定领域相关的Web服务集和领域无关的Web服务集;
步骤5.2:分别从领域相关的Web服务集和领域无关的Web服务集中选取数目相同的Web服务构造训练集,除训练集外的Web服务构成测试集;
步骤5.3:为训练集和测试集中的Web服务构建向量空间模型,即将每个Web服务表示为一个向量,向量的维度是所有Web服务包含的不同词的总数,向量的每一维表示一个词,每个词在每个Web服务向量中的权值采用TF-IDF计算;
步骤5.4:采用支持向量机对构建的向量空间进行分类,得到指定领域的Web服务集。
4.根据权利要求1所述的面向目标的RESTful Web服务发现方法,其特征在于,步骤6中,首先对每个领域,统计该领域预处理后的Web服务集中包含的所有词以及每个词在该领域所有Web服务中的出现频次之和;然后,为特定的领域d进行领域知识库构建,其具体实现包括以下子步骤:
步骤6.1:计算d中每个词对该领域的重要性,并按照重要性对d中所有词降序排列,得到d的领域词汇排序表,记为RDWLd;
步骤6.2:选出RDWLd的top 150个词中的名词,构成d的领域核心名词集,记为DCNd;
步骤6.3:从d中每个Web服务的文本描述中进行服务目标提取,得到d的Web服务-服务目标关联矩阵,记为WSSGAMd;
步骤6.4:统计d中所有服务目标包含的动词,得到d的领域动词集,记为DVd;
步骤6.5:计算d中服务目标之间的语义相似度,构建服务目标语义相似度矩阵,矩阵的每一行代表d中的一个服务目标,每一列也代表d中的一个服务目标,每个单元的值是该单元所在的行与列对应的两个服务目标之间的语义相似度;
步骤6.6:基于服务目标语义相似度矩阵,将d中每个服务目标表示为一个向量,向量的维数是d中服务目标的总数,向量的每一维表示d中的一个服务目标,每个服务目标sg的向量中每一维的值为sg与该维对应的服务目标之间的语义相似度;然后,利用K-Means算法对d中所有服务目标的向量进行聚类,得到d的服务目标簇集,记为SGCd。
5.根据权利要求4所述的面向目标的RESTful Web服务发现方法,其特征在于,步骤6.1中所述d中每个词w对该领域的重要性,计算方法如下:
其中,N(w,d)表示w在d中的出现频次, 表示d中词出现的最大频次,|{d:w
∈d}|表示包含w的领域数目,|D|表示全部Web服务所属的领域总数, 表示w
在所有领域中的出现频次之和,α为0到1之间的小数。
6.根据权利要求4所述的面向目标的RESTful Web服务发现方法,其特征在于,步骤6.3中所述从d中每个Web服务的文本描述中进行服务目标提取,其具体实现步骤为:首先,获取文本描述包含的语句集合;然后,利用Stanford Parser对每条语句进行语法解析,得到能够体现句中词汇之间语法依赖关系的SD集合;接着,根据3种SD模式:dobj(a,b)→、nsubjpass(a,b)→和prep(a,b)+nsubj(a,c)→,从每条语句的SD集中获取该语句包含的一些重要服务目标的骨架,称为初始目标;接着,利用每条语句中其它的SD关系对从该语句中获取的每个初始目标进行信息扩充,同时识别隐藏的服务目标,得到该语句的候选服务目标集;最后,对从所有语句中获取的候选服务目标进行词形还原和去停用词处理,得到Web服务的文本描述中包含的服务目标集。
7.根据权利要求4所述的面向目标的RESTful Web服务发现方法,其特征在于,步骤6.5中所述d中服务目标之间的语义相似度,计算方法如下:
首先,将d中每个服务目标sg包含的词划分为3个子集,即
Vd(sg)=W(sg)∩DVd,CNd(sg)=W(sg)∩DCNd,
Othd(sg)=W(sg)-Vd(sg)-CNd(sg),
其中,W(sg)代表sg包含的词集;DVd和DCNd分别代表d的领域动词集和领域核心名词集;
Vd(sg)、CNd(sg)和Othd(sg)分别代表sg包含的动词集、领域核心名词集以及除动词与领域核心名词外的其他词集;对服务目标来说,这3种词之间的重要性优先级为:领域核心名词>动词>其他词;
然后,计算d中任意两个服务目标sgi和sgj之间的语义相似度,采用如下公式:
gSim(sgi,sgj)=λ1×WSim(Vd(sgi),Vd(sgj))+λ2×WSim(CNd(sgi),CNd(sgj))+λ3×WSim(Othd(sgi),Othd(sgj)),
其中,λ1、λ2和λ3为权重因子;WSim(W1,W2)表示两个词集W1和W2之间的语义相似度,计算公式为:
其中,|W1|和|W2|分别代表词集W1和W2中包含的词的数目;wsim(wi,wj)代表两个词wi和wj之间的语义相似度; 代表词集W2中所有词与词wi之间的最大语义相似
度;WNSim(wi,wj)代表两个词wi和wj在WordNet中的语义相似度。
8.根据权利要求1所述的面向目标的RESTful Web服务发现方法,其特征在于,步骤7的具体实现包括以下子步骤:
步骤7.1:对给定的用户查询q进行预处理,包括分词、词形还原、去停用词和词频统计;
步骤7.2:计算q与每个领域之间的匹配度,得到与q匹配度最高的领域,记为md;
步骤7.3:计算q与md中每个服务目标簇之间的语义相似度,得到与q语义相似的服务目标簇集,记为mC;
步骤7.4:计算mC中每个服务目标与q之间的语义相似度,并按照语义相似度对mC中所有服务目标降序排列,得到q的服务目标推荐列表,从中用户选择能够体现其需求的服务目标,记为SGq,作为新的查询;
步骤7.5:将SGq与md中每个Web服务的服务目标集进行匹配,得到满足用户需求的候选Web服务集。
9.根据权利要求8所述的面向目标的RESTful Web服务发现方法,其特征在于,步骤7.2中所述计算q与每个领域d之间的匹配度,采用如下公式:
其中,K表示仅考虑d的领域词汇排序表RDWLd中的top K个词; 代表词wk对d的重要性; 代表词wk在q中的频次。
10.根据权利要求8所述的面向目标的RESTful Web服务发现方法,其特征在于,步骤
7.3中所述计算q与md中每个服务目标簇之间的语义相似度,具体方法如下:
首先,将md中每个服务目标簇Ci包含的词划分为3个子集,即
其中,Vmd(Ci)、CNmd(Ci)和Othmd(Ci)分别代表Ci包含的动词集、领域核心名词集和除动词与领域核心名词外的其他词集;Vmd(sgk)、CNmd(sgk)和Othmd(sgk)分别代表服务目标sgk包含的动词集、领域核心名词集和除动词与领域核心名词外的其他词集;
然后,分别获取Vmd(Ci)、CNmd(Ci)和Othmd(Ci)中与q中任意词语义相似的词汇子集;
Vmd(Ci)中与q中任意词语义相似的词汇子集,定义如下:
其中,W(q)代表q包含的词集;θv为相似度阈值;wsim(wi,wj)代表两个词wi和wj之间的语义相似度;
CNmd(Ci)中与q中任意词语义相似的词汇子集,定义如下:
其中,W(q)代表q包含的词集;θcn为相似度阈值;wsim(wi,wj)代表两个词wi和wj之间的语义相似度;
Othmd(Ci)中与q中任意词语义相似的词汇子集,定义如下:
其中,W(q)代表q包含的词集;θoth为相似度阈值;wsim(wi,wj)代表两个词wi和wj之间的语义相似度;
最后,计算q与Ci之间的语义相似度:
其中,Vmd(Ci)、CNmd(Ci)和Othmd(Ci)分别代表Ci包含的动词集、领域核心名词集和除动词与领域核心名词外的其他词集; 和 分别代表Vmd
(Ci)、CNmd(Ci)和Othmd(Ci)中与q中任意词语义相似的词汇子集;N(wk,Ci)代表词wk在Ci中的频次;λ1、λ2和λ3为权重因子,对应于权利要求7中的λ1、λ2和λ3。
11.根据权利要求10所述的面向目标的RESTful Web服务发现方法,其特征在于,步骤
7.3中所述mC定义如下:
mC={Ci|Ci∈SGCmd∧qCSim(q,Ci)≥θc},
其中,SGCmd代表md的服务目标簇集;qCSim(q,Ci)代表q与Ci之间的语义相似度,计算方式在权利要求10中已给出;θc为相似度阈值。
12.根据权利要求8所述的面向目标的RESTful Web服务发现方法,其特征在于,步骤
7.4中所述计算mC中每个服务目标与q之间的语义相似度,具体方法如下:
首先,将q包含的词划分为3个子集,即:
Vmd(q)=W(q)∩DVmd,CNmd(q)=W(q)∩DCNmd,
Othmd(q)=W(q)-Vmd(q)-CNmd(q),
其中,W(q)代表q包含的词集;DVmd和DCNmd分别代表md的领域动词集和领域核心名词集;
Vmd(q)、CNmd(q)和Othmd(q)分别代表q包含的动词集、领域核心名词集以及除动词与领域核心名词外的其他词集;
然后,计算mC中每个服务目标sg与q之间的语义相似度,采用公式:
a a
qGSim(q,sg)=λ1×WSim(Vmd(q),Vmd(sg))+λ2×WSim(CNmd(q),CNmd(sg))
+λ3×WSima(Othmd(q),Othmd(sg)),
其中,Vmd(q)、CNmd(q)和Othmd(q)分别代表q包含的动词集、领域核心名词集以及除动词与领域核心名词外的其他词集;Vmd(sg)、CNmd(sg)和Othmd(sg)分别代表sg包含的动词集、领域核心名词集以及除动词与领域核心名词外的其他词集;λ1、λ2和λ3为权重因子,对应于权利要求7中的λ1、λ2和λ3;WSima(W1,W2)表示两个词集W1和W2之间的非对称语义相似度,计算方式为:
其中,|W1|代表词集W1中包含的词的数目;wsim(wi,wj)代表两个词wi和wj之间的语义相似度,计算方式在权利要求7中已给出; 代表词集W2中所有词与词wi之间
的最大语义相似度。
13.根据权利要求8所述的面向目标的RESTful Web服务发现方法,其特征在于,步骤
7.5中所述候选Web服务集为:
其中,Smd代表md的Web服务集;SGq代表用户从q的服务目标推荐列表中选择的服务目标集;SGs代表Web服务s的服务目标集,可由WSSGAMmd得到,即SGs={sgj|WSSGAMmd(s,sgj)=1};
W(sgi)和W(sgj)分别代表sgi和sgj包含的词集。

说明书全文

一种面向目标的RESTful Web服务发现方法

技术领域

[0001] 本发明属于服务计算技术领域,特别涉及一种面向目标的RESTful Web服务发现方法。

背景技术

[0002] Web服务作为面向服务计算(Service-Oriented Computing,SOC)的基本构件,是封装了特定计算或业务功能的自包含、自描述、平台独立的软件,可以在互联网上发布和调用。利用已有的Web服务资源,可以提高软件开发的效率和质量,同时降低开发成本[文献1]。随着SOC的快速发展,面向服务的软件开发(Service-Oriented Software Development,SOSD)日益成为互联网上软件开发的主流,已被广泛应用于许多领域,如电子商务、工作流管理等[文献2]。在此情势下,互联网上发布的Web服务资源呈现出快速增长的趋势。
[0003] 目前,互联网上已发布的Web服务主要可以分为两类:遵循简单对象访问协议(Simple Object Access Protocol,SOAP)的Web服务(简称SOAP-based Web服务)和遵循表征状态转移(REpresentational State Transfer,REST)协议的RESTful Web服务。SOAP-based Web服务必须采用标准的Web服务描述语言(Web Services Description Language,WSDL)进行描述,给Web服务的开发者造成了一定的限制。虽然RESTful Web服务也具备Web应用描述语言(Web Application Description Language,WADL)、WSDL 2.0等结构化的描述语言,但大多数开发者倾向于采用简单的自然语言文本对其所开发的RESTful Web服务进行描述[文献7]。近年来,RESTful Web服务受到越来越多开发者的青睐,其增长趋势也比传统的SOAP-based Web服务更加明显[文献8]。例如,截止到2016年3月23日,著名Web服务编程网站ProgrammableWeb(http://www.programmableweb.com/,简称PWeb)上注册的Web服务已达到14,836个,其中,RESTful Web服务的比例约为62%,SOAP-based Web服务的比例约为16%。
[0004] Web服务发现作为SOC的关键性支撑技术之一,旨在帮助用户从众多的Web服务资源中发掘能够满足其需求的Web服务,促进Web服务的重用。虽然已有大量的Web服务发现方法(如[文献3],[文献4],[文献5],[文献6])被提出,但目前的Web服务发现方法依然存在如下一些问题:
[0005] (1)已有的Web服务发现方法主要针对采用WSDL描述的SOAP-based Web服务,对主要以自然语言文本描述的RESTful Web服务关注较少。
[0006] (2)在进行Web服务发现时,用户通常会使用能够准确表达其需求的高层次目标,如“规划行程(plan a trip)”、“查找旅馆(find hotels)”,作为查询条件。然而,目前主流的Web服务注册中心(如PWeb)仍然采用基于关键字匹配的Web服务发现机制,性能不高,难以满足用户的需求。
[0007] (3)除用户查询与Web服务之间的匹配机制外,用户查询的质量也是影响Web服务发现结果的关键因素。一个能够准确反映用户需求的查询有助于得到更相关的Web服务。然而,对大多数用户而言,由于缺乏与所期望的Web服务功能相关的知识,很难制定高质量的查询。例如,由于Web服务开发者/提供者表述方式的差异,会存在语义相似的Web服务功能描述,如“get hotels”、“find hotels”、“search accommodations”等。在制定查询时,用户很难全面考虑到这些语义相似的功能,进而导致遗漏许多能够满足其需求的Web服务。目前对这一问题的关注较少。
[0008] [文献1]M.Bano,D.Zowghi,N.Ikram,et al.What makes service oriented requirements engineering challenging?a qualitative study.IET Software,2014,8(4),pp.154-160.
[0009] [文献2]L.Chen,L.Hu,Z.Zheng,et al.WTCluster:Utilizing Tags for Web Services Clustering.International Conference on Service-Oriented Computing,2011,pp.204-218.
[0010] [文献3]P.Plebani and B.Pernici.URBE:Web Service Retrieval Based on Similarity Evaluation.IEEE Transactions on Knowledge and Data Engineering,2009,21(11),pp.1629-1642.
[0011] [文献4]F.Liu,Y.Shi,J.Yu,et al.Measuring Similarity of Web Services Based on WSDL.IEEE International Conference on Web Services,2011,pp.155-162.[0012] [文献5]G.Cassar,P.Barnaghi,and K.Moessner,Probabilistic Matchmaking Methods for Automated Service Discovery.IEEE Transactions on Services Computing,2013,7(4),pp.654-666.
[0013] [文献6]Z.Cong,A.Fernandez,H.Billhardt,et al.ServiceDiscovery Acceleration with Hierarchical Clustering.Information Systems Frontiers,2014,
17(4),pp.799-808.
[0014] [文献7]W.Jiang,D.Lee,and S.Hu.Large-Scale Longitudinal Analysis of SOAP-Based and RESTful Web Services.IEEE 19th International Conference on Web Services,2012,pp.218-225.
[0015] [文献8]M.Maleshkova,C.Pedrinaci,and J.Domingue.Investigating Web APIs on the World Wide Web.European Conference on Web Services,2010,pp.107-114.发明内容
[0016] 为了解决上述技术问题,本发明提供了一种面向目标的RESTful Web服务发现方法,能够准确地发现满足用户需求目标的RESTful Web服务,并具有很好的实用性。
[0017] 本发明所采用的技术方案是:1.一种面向目标的RESTful Web服务发现方法,其特征在于,包括以下步骤:
[0018] 步骤1:收集RESTful Web服务的信息,包括Web服务名称、所属领域和功能性的文本描述,得到Web服务集;
[0019] 步骤2:对Web服务集进行预处理;
[0020] 步骤3:针对预处理后的Web服务集,判断是否存在领域划分(即Web服务是否包含所属领域的信息);
[0021] 若是,则执行下述步骤4;
[0022] 若否,则执行下述步骤5;
[0023] 步骤4:判断领域划分是否存在重叠;
[0024] 若是,则执行下述步骤5;
[0025] 若否,则执行下述步骤6;
[0026] 步骤5:使用Web服务分类方法对Web服务集进行领域划分;
[0027] Web服务分类方法的基本过程如下:首先,指定需要进行分类的领域(可以是Web服务集中已有的领域或者用户设定的领域),将Web服务集划分为指定领域相关的Web服务集和领域无关的Web服务集;然后,分别从领域相关的Web服务集和领域无关的Web服务集中选取数目相同的Web服务构造训练集,除训练集外的Web服务构成测试集;接着,为训练集和测试集中的Web服务构建向量空间模型,具体来说,将每个Web服务表示为一个向量,向量的维度是所有Web服务包含的不同词的总数,向量的每一维表示一个词,每个词在每个Web服务向量中的权值采用TF-IDF(Term Frequency–Inverse Document Frequency)计算;最后,采用支持向量机(Support Vector Machine,SVM)对构建的向量空间进行分类,得到指定领域的Web服务集。
[0028] 步骤6:针对每个领域的Web服务集进行领域知识库的构建,包括:领域词汇排序表(Ranked Domain Word List,RDWL)、领域动词集(Domain Verb Set,DV)、领域核心名词集(Domain Core Noun Set,DCN)、Web服务-服务目标关联矩阵(Web Service-Service Goal Assignment Matrix,WSSGAM)和服务目标簇集(Service Goal Clusters,SGC);
[0029] 步骤7:对给定的用户查询q进行Web服务发现。
[0030] 作为优选,步骤2中所述对Web服务集进行预处理,包括分词、词形还原、去停用词和词频统计,具体实现包括以下子步骤:
[0031] 步骤2.1:对每个Web服务的信息进行解析,获取其中包含的所有词;
[0032] 步骤2.2:将所有词还原成其基本原形,如“retrieves”、“retrieved”和“retrieving”的基本原型均为“retrieve”;
[0033] 步骤2.3:根据停用词表去掉一些无实际意义的词,如“can”、“it”、“the”等;
[0034] 步骤2.4:统计每个词在Web服务中的频次。
[0035] 作为优选,步骤6中,首先对每个领域,统计该领域预处理后的Web服务集中包含的所有词以及每个词在该领域中的出现频次(即每个词在该领域所有Web服务中的出现频次之和);然后,为特定的领域d进行领域知识库构建,其具体实现包括以下子步骤:
[0036] 步骤6.1:计算d中每个词对该领域的重要性,并按照重要性对d中所有词降序排列,得到d的领域词汇排序表,记为RDWLd;
[0037] 步骤6.2:选出RDWLd的top 150个词中的名词,构成d的领域核心名词集,记为DCNd;
[0038] 步骤6.3:从d中每个Web服务的文本描述中进行服务目标提取,得到d的Web服务-服务目标关联矩阵,记为WSSGAMd;
[0039] 服务目标(Service Goal)用于表示Web服务所能提供的功能。一个服务目标sg的表示为:sg=〈sgv,sgn,sgp〉,其中,sgv为动词或动词短语,表示sg要执行的操作;sgn为名词或名词短语,表示sg的操作对象;sgp为可选的参数集,用于对sg进行补充说明,比如sg的操作方式和约束等。
[0040] 从Web服务的文本描述中进行服务目标提取的基本过程如下:首先,获取文本描述包含的语句集合;然后,利用Stanford Parser(http://nlp.stanford.edu/software/lex-parser.shtml)对每条语句进行语法解析,得到能够体现句中词汇之间语法依赖关系的Stanford Dependency(SD)集合;接着,根据3种SD模式:dobj(a,b)→、nsubjpass(a,b)→和prep(a,b)+nsubj(a,c)→,从每条语句的SD集中获取该语句包含的一些重要服务目标的骨架(称为初始目标);然后,利用每条语句中其它的SD关系(如amod、nn、conj和prep)对从该语句中获取的每个初始目标进行信息扩充,同时识别隐藏的服务目标,得到该语句的候选服务目标集;最后,对从所有语句中获取的候选服务目标进行词形还原和去停用词处理,得到Web服务的文本描述中包含的服务目标集。
[0041] 令Sd代表d的Web服务集,SGd代表从d的所有Web服务中提取的服务目标集,则WSSGAMd的每个元素WSSGAMd(si,sgj)∈{0,1},WSSGAMd(si,sgj)=1表示Web服务si∈Sd包含服务目标sgj∈SGd;
[0042] 步骤6.4:统计d中所有服务目标(即SGd)包含的动词(即sgv部分),得到d的领域动词集,记为DVd;
[0043] 步骤6.5:计算d中服务目标之间的语义相似度,构建服务目标语义相似度矩阵,矩阵的每一行代表d中的一个服务目标,每一列也代表d中的一个服务目标,每个单元的值是该单元所在的行与列对应的两个服务目标之间的语义相似度;
[0044] 步骤6.6:基于服务目标语义相似度矩阵,将d中每个服务目标表示为一个向量,向量的维数是d中服务目标的总数,向量的每一维表示d中的一个服务目标,每个服务目标sg的向量中每一维的值为sg与该维对应的服务目标之间的语义相似度;然后,利用K-Means算法对d中所有服务目标的向量进行聚类,得到d的服务目标簇集,记为SGCd。
[0045] 作为优选,步骤6.1中所述d中每个词w对该领域的重要性,计算方法如下:
[0046]
[0047] 其中,N(w,d)表示w在d中的出现频次, 表示d中词出现的最大频次,|{d:w∈d}|表示包含w的领域数目,|D|表示全部Web服务所属的领域总数, 表
示w在所有领域中的出现频次之和;α为0到1之间的小数,默认取0.6,可由用户调整。
[0048] 作为优选,步骤6.5中所述d中服务目标之间的语义相似度,计算方法如下:
[0049] 首先,将d中每个服务目标sg包含的词划分为3个子集,即
[0050] Vd(sg)=W(sg)∩DVd,CNd(sg)=W(sg)∩DCNd,
[0051] Othd(sg)=W(sg)-Vd(sg)-CNd(sg),
[0052] 其中,W(sg)代表sg包含的词集;DVd和DCNd分别代表d的领域动词集和领域核心名词集;Vd(sg)、CNd(sg)和Othd(sg)分别代表sg包含的动词集、领域核心名词集以及除动词与领域核心名词外的其他词集(如形容词、领域非核心名词等);对服务目标来说,这3种词之间的重要性优先级为:领域核心名词>动词>其他词;
[0053] 然后,计算d中任意两个服务目标sgi和sgj之间的语义相似度,采用如下公式:
[0054]
[0055] 其中,λ1、λ2和λ3为权重因子;默认取λ1=0.3,λ2=0.6,λ3=0.1,可由用户调整;WSim(W1,W2)表示两个词集W1和W2之间的语义相似度,计算公式为:
[0056]
[0057]
[0058] 其中,|W1|和|W2|分别代表词集W1和W2中包含的词的数目;wsim(wi,wj)代表两个词wi和wj之间的语义相似度; 代表词集W2中所有词与词wi之间的最大语义相似度;WNSim(wi,wj)代表两个词wi和wj在WordNet(http://wordnet.princeton.edu/)中的语义相似度。
[0059] 作为优选,步骤7的具体实现包括以下子步骤:
[0060] 步骤7.1:对给定的用户查询q进行预处理,包括分词、词形还原、去停用词和词频统计;
[0061] 步骤7.2:计算q与每个领域之间的匹配度,得到与q匹配度最高的领域,记为md;
[0062] 步骤7.3:计算q与md中每个服务目标簇之间的语义相似度,得到与q语义相似的服务目标簇集,记为mC;
[0063] 步骤7.4:计算mC中每个服务目标与q之间的语义相似度,并按照语义相似度对mC中所有服务目标降序排列,得到q的服务目标推荐列表,从中用户选择能够体现其需求的服务目标,记为SGq,作为新的查询;
[0064] 步骤7.5:将SGq与md中每个Web服务的服务目标集进行匹配,得到满足用户需求的候选Web服务集。
[0065] 作为优选,步骤7.2中所述计算q与每个领域d之间的匹配度,采用如下公式:
[0066]
[0067]
[0068]
[0069] 其中,K表示仅考虑d的领域词汇排序表RDWLd中的top K个词,默认取300,可由用户调整; 代表词wk对d的重要性; 代表词wk在q中的频次。
[0070] 作为优选,步骤7.3中所述计算q与md中每个服务目标簇之间的语义相似度,具体方法如下:
[0071] 首先,将md中每个服务目标簇Ci包含的词划分为3个子集,即
[0072]
[0073]
[0074] 其中,Vmd(Ci)、CNmd(Ci)和Othmd(Ci)分别代表Ci包含的动词集、领域核心名词集和除动词与领域核心名词外的其他词集;Vmd(sgk)、CNmd(sgk)和Othmd(sgk)分别代表服务目标sgk包含的动词集、领域核心名词集和除动词与领域核心名词外的其他词集。
[0075] 然后,分别获取Vmd(Ci)、CNmd(Ci)和Othmd(Ci)中与q中任意词语义相似的词汇子集;
[0076] Vmd(Ci)中与q中任意词语义相似的词汇子集,定义如下:
[0077]
[0078] 其中,W(q)代表q包含的词集;θv为相似度阈值;wsim(wi,wj)代表两个词wi和wj之间的语义相似度。
[0079] CNmd(Ci)中与q中任意词语义相似的词汇子集,定义如下:
[0080]
[0081] 其中,W(q)代表q包含的词集;θcn为相似度阈值;wsim(wi,wj)代表两个词wi和wj之间的语义相似度。
[0082] Othmd(Ci)中与q中任意词语义相似的词汇子集,定义如下:
[0083]
[0084] 其中,W(q)代表q包含的词集;θoth为相似度阈值;wsim(wi,wj)代表两个词wi和wj之间的语义相似度。
[0085] 最后,计算q与Ci之间的语义相似度,采用如下公式:
[0086]
[0087] 其中,Vmd(Ci)、CNmd(Ci)和Othmd(Ci)分别代表Ci包含的动词集、领域核心名词集和除动词与领域核心名词外的其他词集; 和 分别代表Vmd(Ci)、CNmd(Ci)和Othmd(Ci)中与q中任意词语义相似的词汇子集;N(wk,Ci)代表词wk在Ci中的频次;λ1、λ2和λ3为权重因子,对应于步骤6.5中计算服务目标之间的语义相似度中的λ1、λ2和λ3。
[0088] 作为优选,步骤7.3中所述mC定义如下:
[0089] mC={Ci|Ci∈SGCmd∧qCSim(q,Ci)≥θc},
[0090] 其中,SGCmd代表md的服务目标簇集;qCSim(q,Ci)代表q与Ci之间的语义相似度;θc为相似度阈值,默认取0.4,可由用户调整。
[0091] 作为优选,步骤7.4中所述计算mC中每个服务目标与q之间的语义相似度,具体方法如下:
[0092] 首先,将q包含的词划分为3个子集,即:
[0093] Vmd(q)=W(q)∩DVmd,CNmd(q)=W(q)∩DCNmd,
[0094] Othmd(q)=W(q)-Vmd(q)-CNmd(q),
[0095] 其中,W(q)代表q包含的词集;DVmd和DCNmd分别代表md的领域动词集和领域核心名词集;Vmd(q)、CNmd(q)和Othmd(q)分别代表q包含的动词集、领域核心名词集以及除动词与领域核心名词外的其他词集。
[0096] 然后,计算mC中每个服务目标sg与q之间的语义相似度:
[0097]
[0098] 其中,Vmd(q)、CNmd(q)和Othmd(q)分别代表q包含的动词集、领域核心名词集以及除动词与领域核心名词外的其他词集;Vmd(sg)、CNmd(sg)和Othmd(sg)分别代表sg包含的动词集、领域核心名词集以及除动词与领域核心名词外的其他词集;λ1、λ2和λ3为权重因子,对应于步骤6.5中计算服务目标之间的语义相似度中的λ1、λ2和λ3;WSima(W1,W2)表示两个词集W1和W2之间的非对称语义相似度,计算方式为:
[0099]
[0100] 其中,|W1|代表词集W1中包含的词的数目;wsim(wi,wj)代表两个词wi和wj之间的语义相似度; 代表词集W2中所有词与词wi之间的最大语义相似度。
[0101] 作为优选,步骤7.5中所述候选Web服务集为:
[0102]
[0103] 其中,Smd代表md的Web服务集;SGq代表用户从q的服务目标推荐列表中选择的服务目标集;SGs代表Web服务s的服务目标集,可由WSSGAMmd得到,即SGs={sgj|WSSGAMmd(s,sgj)=1};W(sgi)和W(sgj)分别代表服务目标sgi和sgj包含的词集。
[0104] 相对于现有技术,本发明的有益效果是:
[0105] 1)能够准确地发现满足用户需求目标的RESTful Web服务,具有很好的实用性;
[0106] 2)通过为用户的初始查询推荐语义相似的服务目标,可以帮助用户制定能够体现其需求的高质量查询。附图说明
[0107] 图1是本发明实施例的总体框架示意图;
[0108] 图2是本发明实施例中领域知识库构建的流程示意图;
[0109] 图3是PWeb中Web服务“Tgels”的部分注册信息;
[0110] 图4是本发明实施例中对Web服务“Tgels”的文本描述中第3条语句进行服务目标提取的过程示意图;
[0111] 图5本发明实施例中Travel领域中与查询“get hotel”的语义相似度≥θc的2个服务目标簇以及对应的服务目标推荐列表,其中带下划线的服务目标代表用户选择的服务目标。

具体实施方式

[0112] 为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
[0113] 下面以PWeb网站上的Web服务进行面向目标的RESTful Web服务发现为实施例,并结合附图,详细描述本发明的实施过程。
[0114] PWeb是目前互联网上可以公开访问的著名mashup和Web服务注册中心。截至2016年3月23日,PWeb上注册的Web服务已达到14,836个,包括遵循SOAP、REST、XML-RPC等协议的各类Web服务,并提供了Web服务的一些注册信息,比如名字、文本描述、类别(即所属领域)等。图3展示了PWeb中Web服务“Tgels”(http://www.programmableweb.com/api/tgels)的部分注册信息。
[0115] 请见图1,本实施例首先执行步骤1,使用爬虫从PWeb网站上收集6个领域:Financial、Music、Media Management、Payment、Travel、Weather,的Web服务的注册信息,包括名字、文本描述和类别。
[0116] 然后,对收集的Web服务进行预处理,具体包括:利用Apache Lucene(http://lucene.apache.org/)的StandardAnalyzer工具对每个Web服务的信息进行解析,获取每个Web服务包含的所有词;然后,利用WordNet的lemmatization工具对所有词进行词形还原处理;接着,根据停用词表去掉无实际意义的词;最后,统计Web服务中每个词的频次。
[0117] 虽然收集的Web服务集具备类别划分,但类别之间存在明显的重叠,如“Financial”和“Payment”、“Music”和“Media Management”、“Travel”和“Weather”。因此,使用Web服务分类方法对Web服务集的类别划分进行调整。
[0118] 请见图2,接着执行步骤2,为6个领域进行领域知识库构建;
[0119] 首先,统计每个领域预处理后的Web服务中包含的所有词及每个词在该领域中的出现频次;然后,对每个特定的领域d进行领域知识库构建,具体包括:计算d中每个词对该领域的重要性,并按照重要性对d中所有词降序排列,得到领域词汇排序表RDWLd;然后,选出RDWLd的top 150个词中的名词,构成领域核心名词集DCNd。
[0120] 接着,从d中每个Web服务的文本描述中进行服务目标提取,得到Web服务-服务目标关联矩阵WSSGAMd。图4以Web服务“Tgels”的文本描述中第3条语句:“API methods support listings of flight options,as well as creating and deleting flight deal packages.”为例展示了服务目标提取的过程。
[0121] 然后,统计d中所有服务目标的sgv部分,得到领域动词集DVd;
[0122] 然后,计算d中服务目标之间的语义相似度,构建服务目标语义相似度矩阵;基于服务目标语义相似度矩阵,获取d中所有服务目标的向量表示;然后,采用K-Means算法对d中所有服务目标的向量进行聚类,得到服务目标簇集SGCd。
[0123] 最后,执行步骤3,以用户查询“get hotel”(记为q)为例进行Web服务发现,得到候选Web服务集;
[0124] 首先,对q进行预处理,包括分词、词形还原、去停用词和词频统计;然后,计算q与6个领域之间的匹配度(仅考虑每个领域的领域词汇排序表的top 300个词,即设置K=300)。表1是6个领域与q的匹配度,可以看到与q匹配度最高的领域为Travel。
[0125] 表1 6个领域与查询“get hotel”的匹配度
[0126]
[0127] 然后,计算q与Travel领域中每个服务目标簇之间的语义相似度(阈值设置为:θv=θcn=θoth=0.8,θc=0.4),得到与q的语义相似度≥θc的服务目标簇集mC。接着,计算q与mC中每个服务目标之间的语义相似度,并按照语义相似度对mC中所有服务目标降序排列,得到服务目标推荐列表。从推荐列表中,用户选择能够体现其需求的服务目标作为新的查询。
[0128] 图5是与q的语义相似度≥θc的2个服务目标簇以及对应的服务目标推荐列表,其中带下划线的服务目标代表用户选择的服务目标。
[0129] 最后,将用户选择的服务目标集与Travel领域中每个Web服务的服务目标集进行匹配,得到满足用户需求的候选Web服务集。表2是5个候选Web服务以及它们包含的与用户所选服务目标匹配的服务目标。
[0130] 表2 “get hotel”的5个候选Web服务
[0131]
[0132] 应当理解的是,本说明书未详细阐述的部分均属于现有技术。
[0133] 应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈