主权项 |
一种基于需求语义的服务聚类方法,其特征在于,包括以下步骤:(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>Σ</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>×</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>Σ</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>×</mo><mi>I</mi><mrow><mo>(</mo><mi>F</mi><mo>(</mo><msub><mi>w</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>∩</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个服务簇类。 |