发明名称 一种基于本体匹配的语义查询方法
摘要 本发明公开了一种基于本体匹配的语义查询方法,属于计算机应用技术领域。本方法先计算本体资源的名称、注释与用户输入字符串的语义相似度,然后分别将本体类、本体个体、本体属性与用户输入字符串的语义相似度按从大到小排序,选出最符合用户查询要求的不超过λ*3个本体资源。本方法能够在语义层面进行检索,捕捉设计人员检索意图,提高系统检索效率。
申请公布号 CN103744955B 申请公布日期 2017.04.05
申请号 CN201410004084.6 申请日期 2014.01.04
申请人 北京理工大学 发明人 黄河燕;史树敏;苏超;冯冲;李侃
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 代理人
主权项 一种基于本体匹配的语义查询方法,其特征在于:步骤一、设置一个阈值λ,最终返回的本体类、本体个体、本体属性个数都不超过λ;步骤二、设置一个相似度阈值σ,最终返回的本体类、本体个体、本体属性与用户输入的字符串的相似度都不低于σ;步骤三、设定一个相近词对阈值θ,提取含有x个词语的句子S<sub>1</sub>与含有y个词语的句子S<sub>2</sub>的相近词对时,先依次计算句子S<sub>1</sub>中每个词语与句子S<sub>2</sub>中每个词语的语义相似度,构成x*y的相似度矩阵s[x*y],再将相似度从大到小并且相似度不小于阈值θ的词对设置为相近词对,每提取一个相近词对,则将相似度矩阵中其所对应的行和列的值都置为0;步骤四、获取本体类列表{OntClass<sub>1</sub>,OntClass<sub>2</sub>,...,OntClass<sub>l</sub>},其中OntClass<sub>i</sub>代表一个本体类,1≤i≤l,l为正整数,表示含有l个本体类;classList是一个链表,其结点是一个这样的二元组:<OntClass<sub>i</sub>,sim<sub>i</sub>>,其中OntClass<sub>i</sub>是一个本体类,sim<sub>i</sub>是这个本体类与用户输入的字符串string的相似度,classList的初始大小为0;对每一个OntClass<sub>i</sub>,1≤i≤l执行以下步骤:(1)计算关键词与本体类名称的相似度simName<sub>i</sub>:<img file="FDA0001166570390000011.GIF" wi="1262" he="327" />其中,n是string所含词语的个数,n>1(2)计算第j个词对中w<sub>ja</sub>和w<sub>jb</sub>两个词语的权重,句子中词语的权重是词语代表句子概念的程度,与词性、句子长度、句子结构有关,在计算时不考虑虚词,首先给出词性权重,设名词权重为γ<sub>1</sub>,动词权重为γ<sub>2</sub>,形容词权重为γ<sub>3</sub>,数词权重为γ<sub>4</sub>,其它实词权重为γ<sub>5</sub>,词语权重的计算公式如下:<maths num="0001"><math><![CDATA[<mrow><mi>w</mi><mo>=</mo><mfrac><msub><mi>&gamma;</mi><mi>i</mi></msub><mrow><msub><mi>n</mi><mi>i</mi></msub><mo>&times;</mo><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>k</mi></munderover><msub><mi>&gamma;</mi><mi>j</mi></msub></mrow></mfrac></mrow>]]></math><img file="FDA0001166570390000012.GIF" wi="342" he="222" /></maths>其中,γ<sub>i</sub>表示词语的词性对应的权重,k表示句子中出现的词性数,n<sub>i</sub>表示句中i类词性词的个数;(3)计算关键词与本体类注释的相似度simComment<sub>i</sub>:<img file="FDA0001166570390000021.GIF" wi="2035" he="572" />其中,q为关键词与本体类注释相似词对的个数,<img file="FDA0001166570390000022.GIF" wi="60" he="59" />为从q个词对中取出p个词对的组合数,w<sub>ja</sub>和w<sub>jb</sub>为第j个词对中两个词语的权重,s<sub>j</sub>和s<sub>k</sub>分别是第j个词对和第k个词对中两个词语的相似度(4)取simName<sub>i</sub>与simComment<sub>i</sub>两者较大的为sim<sub>i</sub>的值;(5)若sim<sub>i</sub>>σ且classList的大小小于λ,则将<OntClass<sub>i</sub>,sim<sub>i</sub>>添加至classList中,classList的大小增加1,这样添加后classList的大小最大也不超过λ;(6)若sim<sub>i</sub>>σ且classList的大小等于λ,则首先选出classList中相似度最小的那个二元组,再用<OntClass<sub>i</sub>,sim<sub>i</sub>>替换这个二元组,这样classList的大小仍然等于λ;步骤五、获取本体个体列表<img file="FDA0001166570390000024.GIF" wi="1067" he="63" />其中<img file="FDA0001166570390000025.GIF" wi="298" he="62" />代表一个本体个体,1≤i≤m,m为正整数,表示含有m个本体个体;indiList是一个链表,其结点是一个这样的二元组:<OntIndividual<sub>i</sub>,sim<sub>i</sub>>,其中OntIndividual<sub>i</sub>是一个本体个体,sim<sub>i</sub>是这个本体个体与用户输入的字符串string的相似度,indiList的初始大小为0;对每一个OntIndividual<sub>i</sub>,1≤i≤m执行以下步骤:(1)按步骤四(1)计算关键词与本体个体名称的相似度simName<sub>i</sub>;(2)按步骤四(3)计算关键词与本体个体注释的相似度simComment<sub>i</sub>;(3)取simName<sub>i</sub>与simComment<sub>i</sub>两者较大的为sim<sub>i</sub>的值;(4)若sim<sub>i</sub>>σ且indiList的大小小于λ,则将<OntIndividual<sub>i</sub>,sim<sub>i</sub>>添加至indiList中,indiList的大小增加1,这样添加后indiList的大小最大也不超过λ;(5)若sim<sub>i</sub>>σ且indiList的大小等于λ,则首先选出indiList中相似度最小的那个二元组,再用<OntIndividual<sub>i</sub>,sim<sub>i</sub>>替换这个二元组,这样indiList的大小仍然等于λ;步骤六、获取本体属性列表{Ont Pr operty<sub>1</sub>,Ont Pr operty<sub>2</sub>,...,Ont Pr operty<sub>n</sub>},其中Ont Pr operty<sub>i</sub>代表一个本体属性,1≤i≤n,n为正整数,表示含有n个本体属性的个数;propList是一个链表,其结点是一个这样的二元组:<img file="FDA0001166570390000023.GIF" wi="582" he="63" />其中Ont Pr operty<sub>i</sub>是一个本体属性,sim<sub>i</sub>是这个本体属性与用户输入的字符串string的相似度,propList的初始大小为0;对每一个Ont Property<sub>i</sub>,1≤i≤n执行以下步骤:(1)按步骤四(1)计算关键词与本体属性名称的相似度simName<sub>i</sub>;(2)按步骤四(3)计算关键词与本体属性注释的相似度simComment<sub>i</sub>;(3)取simName<sub>i</sub>与simComment<sub>i</sub>两者较大的为sim<sub>i</sub>的值;(4)若sim<sub>i</sub>>σ且propList的大小小于λ,则将<OntProperty<sub>i</sub>,sim<sub>i</sub>>添加至propList中,propList的大小增加1,这样添加后propList的大小最大也不超过λ;(5)若sim<sub>i</sub>>σ且propList的大小等于λ,则首先选出propList中相似度最小的那个二元组,再用<OntIndividual<sub>i</sub>,sim<sub>i</sub>>替换这个二元组,这样propList的大小仍然等于λ;步骤七、分别将链表classList、indiList、propList中的结点按照sim<sub>i</sub>值从大到小排序,则classList中包含了不超过λ个本体类OntClass<sub>i</sub>、indiList中包含了不超过λ个本体个体OntIndividual<sub>i</sub>、propList中包含了不超过λ个本体属性OntProperty<sub>i</sub>,它们就是最符合用户查询意图的本体资源。
地址 100081 北京市海淀区中关村南大街5号