发明名称 一种基于需求语义的服务聚类方法
摘要 本发明公开了一种基于需求语义的服务聚类方法,包括以下步骤:获取服务描述文档,对文档文本进行分句处理;以句子为单位使用Stanford Parser进行语法解析,获得SD集合;依据SD集合分析获得基本服务功能信息集;对基本服务功能信息集进行语义扩展;去除基本服务功能信息集中无实际语义信息,进行词性还原生成服务功能信息集;利用服务功能信息集计算服务间相似度值;设定k值以及服务间相似度作为输入,使用K-means算法进行服务聚类。本发明从服务需求语义角度出发,采用自然语言处理的方法提取服务功能信息集进行服务聚类,突破服务文档类型限制,更为准确地为按需服务发现提供技术支持。
申请公布号 CN105404693A 申请公布日期 2016.03.16
申请号 CN201510961111.3 申请日期 2015.12.18
申请人 浙江工商大学 发明人 潘伟丰;胡松;姜波;谢波
分类号 G06F17/30(2006.01)I;G06F17/27(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 杭州求是专利事务所有限公司 33200 代理人 邱启旺
主权项 一种基于需求语义的服务聚类方法,其特征在于,包括以下步骤:(1)获取服务描述文档,对文档文本进行分句处理;(2)以句子为单位使用Stanford Parser进行语法解析,获得SD(Stanford Dependencies)集合;(3)基于步骤(2)获得的SD集合进行分析并提取出表示服务需求功能语义的服务功能信息集;(4)基于步骤(3)获得的服务功能信息集,计算服务间的两两相似度。服务间的相似度计算公式为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>S</mi><mi>s</mi></msub><mrow><mo>(</mo><msub><mi>s</mi><mn>1</mn></msub><mo>,</mo><msub><mi>s</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mi>m</mi></msubsup><msub><mi>S</mi><mi>f</mi></msub><mrow><mo>(</mo><msub><mi>f</mi><mrow><mi>i</mi><mn>1</mn></mrow></msub><mo>,</mo><msub><mi>f</mi><mrow><mi>i</mi><mn>2</mn></mrow></msub><mo>)</mo></mrow></mrow><mi>n</mi></mfrac></mrow>]]></math><img file="FDA0000882960760000011.GIF" wi="563" he="158" /></maths>其中,S<sub>s</sub>(s<sub>1</sub>,s<sub>2</sub>)表示服务s<sub>1</sub>和s<sub>2</sub>的相似度;服务s<sub>1</sub>与s<sub>2</sub>包含的功能信息数并不相同,其中m是服务s<sub>1</sub>,s<sub>2</sub>功能信息集中包含功能信息数较少的功能信息数,n是功能信息集中包含功能信息数较多的功能信息数。S<sub>f</sub>(f<sub>i1</sub>,f<sub>i2</sub>)表示服务s<sub>1</sub>中第i个功能信息与服务s<sub>2</sub>中第i个功能信息的相似度,计算公式如下:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>S</mi><mi>f</mi></msub><mrow><mo>(</mo><msub><mi>f</mi><mn>1</mn></msub><mo>,</mo><msub><mi>f</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>=</mo><msub><mi>t</mi><mn>1</mn></msub><mo>&times;</mo><msub><mi>S</mi><mi>w</mi></msub><mrow><mo>(</mo><msub><mi>V</mi><mn>1</mn></msub><mo>,</mo><msub><mi>V</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>+</mo><msub><mi>t</mi><mn>2</mn></msub><mfrac><mrow><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></msubsup><msub><mi>S</mi><mi>w</mi></msub><mrow><mo>(</mo><msub><mi>N</mi><mrow><mi>i</mi><mn>1</mn></mrow></msub><mo>,</mo><msub><mi>N</mi><mrow><mi>i</mi><mn>2</mn></mrow></msub><mo>)</mo></mrow></mrow><mi>n</mi></mfrac></mrow>]]></math><img file="FDA0000882960760000012.GIF" wi="941" he="143" /></maths>其中,V<sub>1</sub>,V<sub>2</sub>分别表示服务功能信息f<sub>1</sub>,f<sub>2</sub>中的动词,N<sub>i1</sub>,N<sub>i2</sub>分别表示服务功能信息f<sub>1</sub>,f<sub>2</sub>中的名词,t<sub>1</sub>,t<sub>2</sub>对应动词部分和名词部分的权重,S<sub>w</sub>(N<sub>i1</sub>,N<sub>i2</sub>)表示两个单词的相似度,其计算公式如下:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>S</mi><mi>w</mi></msub><mrow><mo>(</mo><msub><mi>w</mi><mn>1</mn></msub><mo>,</mo><msub><mi>w</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mn>2</mn><mo>&times;</mo><mi>I</mi><mrow><mo>(</mo><mi>F</mi><mo>(</mo><msub><mi>w</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>&cap;</mo><mi>F</mi><mrow><mo>(</mo><msub><mi>w</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>)</mo></mrow><mrow><mi>I</mi><mrow><mo>(</mo><mi>F</mi><mo>(</mo><msub><mi>w</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>)</mo><mo>+</mo><mi>I</mi><mrow><mo>(</mo><mi>F</mi><mo>(</mo><msub><mi>w</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>)</mo></mrow></mfrac></mrow>]]></math><img file="FDA0000882960760000013.GIF" wi="685" he="143" /></maths>其中,F(w)表示单词w的特征集,I(S)表示特征集S包含的信息数。(5)基于步骤(4)得到的服务间相似度,使用K‑means算法对服务进行聚类,k值为人为设定,将服务相似度值作为K‑means算法中的距离值。最后输出k个服务簇类。
地址 310018 浙江省杭州市下沙高教园区学正街18号