发明名称 一种映射查询关键字到相关问题的方法
摘要 本发明公开了一种映射查询关键字到相关问题的方法;首先爬取问题信息,然后抽取查询关键字和问题的主题词,选择出候选问题集合<i>CPS</i><sub><i>q</i></sub>,对于<i>CPS</i><sub><i>q</i></sub>中的每个问题,计算其与查询关键字的相关程度,通过构造相关程度和受欢迎程度计算出该问题的综合得分,并按照得分从高到低的顺序对<i>CPS</i><sub><i>q</i></sub>中的问题进行排序得到集合<i>RP</i>,随后通过计算<i>RP</i>中问题之间的余弦相似度来从各类相似问题中选择代表性的问题组成集合<i>FP</i>,最后更新<i>FP</i>中每个问题的综合得分,并按照分数从高到低的顺序对<i>FP</i>中的问题进行排序,返回排序后的问题集合<i>FP</i>作为与查询关键字相关的问题;本发明能够直接获得与用户查询关键字相关的问题和答案,从而更加深入地理解用户需求,获得更好的搜索体验。
申请公布号 CN106294656A 申请公布日期 2017.01.04
申请号 CN201610631777.7 申请日期 2016.08.04
申请人 武汉大学 发明人 黄浩;颜钱;李宗鹏
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 代理人 张火春
主权项 一种映射查询关键字到相关问题的方法,其特征在于,包括以下步骤:步骤1:在CQA上进行问题爬取,并记录每个问题所属类别,得到问题集合PS,记PS={P<sub>1</sub>,P<sub>2</sub>,...,P<sub>N</sub>},对于集合PS中的每个问题P<sub>i</sub>,通过一个标准的POS tagger程序来抽取其中的名词短语,然后联合其所属类别单词得到对应的主题词集合PTS<sub>i</sub>;对于n个单词组成的查询关键字q,记q={w<sub>1</sub>,w<sub>2</sub>,...,w<sub>n</sub>},计算q中每个单词w<sub>i</sub>的主题词得分Tgrade(w<sub>i</sub>),并将得分大于阈值θ<sub>t</sub>(θ<sub>t</sub>∈[0,1])的单词加入q对应的主题词集合;若某个问题的主题词集合包含查询关键字的主题词集合,则将该问题加入查询关键字的候选问题集合CPS<sub>q</sub>;q中每个单词w<sub>i</sub>主题词得分Tgrade(w<sub>i</sub>)的计算公式为:<maths num="0001"><math><![CDATA[<mrow><mi>T</mi><mi>g</mi><mi>r</mi><mi>a</mi><mi>d</mi><mi>e</mi><mrow><mo>(</mo><msub><mi>w</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><munderover><mo>&Sigma;</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mi>T</mi><mi>i</mi><mi>m</mi><mi>e</mi><mi>s</mi><mrow><mo>(</mo><msub><mi>w</mi><mi>i</mi></msub><mo>|</mo><msub><mi>PTS</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow><mrow><munderover><mo>&Sigma;</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mi>t</mi><mi>i</mi><mi>m</mi><mi>e</mi><mi>s</mi><mrow><mo>(</mo><msub><mi>w</mi><mi>i</mi></msub><mo>|</mo><msub><mi>P</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>,</mo><mrow><mo>(</mo><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>2</mn><mo>,</mo><mn>...</mn><mo>,</mo><mi>n</mi><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001069353000000011.GIF" wi="998" he="279" /></maths>其中n是q包含的单词数目;w<sub>i</sub>是q中的单词;N是PS中包含的问题数目;Times(w<sub>i</sub>|PTS<sub>j</sub>)是w<sub>i</sub>在PTS<sub>j</sub>中的出现次数;times(w<sub>i</sub>|P<sub>j</sub>)是w<sub>i</sub>在P<sub>j</sub>中的出现次数;步骤2:对于集合CPS<sub>q</sub>中的每一个问题P<sub>c</sub>,如果P<sub>c</sub>和查询关键字q之间的相关程度越高,越有可能准确反应用户这次的信息检索需求,使用Cor(P<sub>c</sub>,q)表示P<sub>c</sub>与查询关键字q的相关程度,Cor(P<sub>c</sub>,q)的具体计算为:<maths num="0002"><math><![CDATA[<mrow><mi>C</mi><mi>o</mi><mi>r</mi><mrow><mo>(</mo><msub><mi>P</mi><mi>c</mi></msub><mo>,</mo><mi>q</mi><mo>)</mo></mrow><mo>=</mo><munderover><mo>&Pi;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><mrow><mo>(</mo><mi>&lambda;</mi><mo>&times;</mo><mfrac><mrow><mi>t</mi><mi>i</mi><mi>m</mi><mi>e</mi><mi>s</mi><mrow><mo>(</mo><msub><mi>w</mi><mi>i</mi></msub><mo>|</mo><msub><mi>P</mi><mi>c</mi></msub><mo>)</mo></mrow></mrow><mrow><mi>l</mi><mi>e</mi><mi>n</mi><mi>g</mi><mi>t</mi><mi>h</mi><mrow><mo>(</mo><msub><mi>P</mi><mi>c</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>+</mo><mo>(</mo><mrow><mn>1</mn><mo>-</mo><mi>&lambda;</mi></mrow><mo>)</mo><mfrac><mrow><munderover><mo>&Sigma;</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mi>t</mi><mi>i</mi><mi>m</mi><mi>e</mi><mi>s</mi><mrow><mo>(</mo><msub><mi>w</mi><mi>i</mi></msub><mo>|</mo><msub><mi>P</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow><mrow><munderover><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><munderover><mo>&Sigma;</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mi>t</mi><mi>i</mi><mi>m</mi><mi>e</mi><mi>s</mi><mrow><mo>(</mo><msub><mi>w</mi><mi>k</mi></msub><mo>|</mo><msub><mi>P</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>)</mo></mrow><mo>,</mo><mrow><mo>(</mo><mi>c</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>2</mn><mo>,</mo><mn>...</mn><mo>,</mo><msub><mi>N</mi><mi>c</mi></msub><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001069353000000012.GIF" wi="1598" he="279" /></maths>其中N<sub>c</sub>是CPS<sub>q</sub>包含的问题数目;n是q包含的单词数目;w<sub>i</sub>是q中的单词;times(w<sub>i</sub>|P<sub>c</sub>)是w<sub>i</sub>在P<sub>c</sub>中的出现次数;length(P<sub>c</sub>)是P<sub>c</sub>包含的单词个数;N是PS中包含的问题数目;λ(λ∈(0,1))为给定的抑制因子;步骤3:构造一个图G,将集合CPS<sub>q</sub>中的每一个问题作为图G的一个节点,然后计算集合CPS<sub>q</sub>中的任意两个问题P<sub>i</sub>和P<sub>j</sub>的主题词覆盖率Cover(P<sub>i</sub>,P<sub>j</sub>),若Cover(P<sub>i</sub>,P<sub>j</sub>)大于给定阈值θ<sub>c</sub>(θ<sub>c</sub>∈[0,1]),则存在P<sub>i</sub>到P<sub>j</sub>的一条边;其中主题词覆盖率Cover(P<sub>i</sub>,P<sub>j</sub>)的计算公式为:<img file="FDA0001069353000000021.GIF" wi="1254" he="191" />其中PTS<sub>i</sub>为问题P<sub>i</sub>的主题词集合;||PTS<sub>i</sub>||表示集合PTS<sub>i</sub>中的元素个数cos(P<sub>i</sub>,P<sub>j</sub>)是两个问题的余弦相似度;α(α∈(0,1))为给定的抑制因子;步骤4:对于集合CPS<sub>q</sub>中的每一个问题P<sub>c</sub>,如果被访问的次数越多,则表明该问题越受欢迎,越有可能是这次关键字查询所对应的问题,使用Wel(P<sub>c</sub>)表示P<sub>c</sub>的受欢迎程度,Wel(P<sub>c</sub>)的具体计算为:<maths num="0003"><math><![CDATA[<mrow><mi>W</mi><mi>e</mi><mi>l</mi><mrow><mo>(</mo><msub><mi>P</mi><mi>c</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><msub><mi>N</mi><mi>c</mi></msub></mfrac><mo>+</mo><mi>d</mi><munder><mo>&Sigma;</mo><mrow><mi>v</mi><mo>&Element;</mo><mi>a</mi><mi>d</mi><mi>j</mi><mrow><mo>(</mo><msub><mi>P</mi><mi>c</mi></msub><mo>)</mo></mrow></mrow></munder><mfrac><mrow><mi>W</mi><mi>e</mi><mi>l</mi><mrow><mo>(</mo><mi>v</mi><mo>)</mo></mrow></mrow><mrow><mi>deg</mi><mrow><mo>(</mo><mi>v</mi><mo>)</mo></mrow></mrow></mfrac><mo>,</mo><mrow><mo>(</mo><mi>c</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>2</mn><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>N</mi><mi>c</mi></msub><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001069353000000022.GIF" wi="990" he="127" /></maths>其中N<sub>c</sub>是CPS<sub>q</sub>包含的问题数目;adj(P<sub>c</sub>)为图G中与P<sub>c</sub>相连的节点集合;v为集合adj(P<sub>c</sub>)中的一个节点;deg(v)为节点v的度;d(d∈(0,1))给定的抑制因子;步骤5:对于集合CPS<sub>q</sub>中的每一个问题P<sub>c</sub>,联合其受欢迎程度和与查询关键字的相关程度,计算每个问题的综合得分Grade(P<sub>c</sub>),按照综合性得分从大到小的顺序对CPS<sub>q</sub>中的问题进行排序,得到排序后的问题集合RP;综合性得分Grade(P<sub>c</sub>)的具体计算为Grade(P<sub>c</sub>)=log(Cor(P<sub>c</sub>|q))+log(Wel(P<sub>c</sub>))其中Cor(P<sub>c</sub>|q)为P<sub>c</sub>和q的相关程度;Wel(P<sub>c</sub>)为P<sub>c</sub>的受欢迎程度;步骤6:初始化一个空集合FP,将RP中的第一个问题加入FP,然后依次选择RP中剩余的每个问题P<sub>r</sub>,计算P<sub>r</sub>和FP中每个问题的余弦相似度csim,记录最大的余弦相似度maxcsim和对应FP中的问题P<sub>f</sub>,将P<sub>r</sub>的分数Grade(P<sub>f</sub>)加Grade(P<sub>f</sub>)到上,同时若maxcsim小于给定阈值θ<sub>s</sub>(θ<sub>s</sub>∈[0,1]),则将P<sub>r</sub>加入FP,否则认为问题P<sub>r</sub>和P<sub>f</sub>相似,并记录与问题P<sub>f</sub>相似的问题个数N<sub>fq</sub>;步骤7:更新FP集合中每个问题的综合得分,并按照更新后的分数从大到小的顺序对FP中的问题排序,返回排序后的集合FP;更新得分的公式为:<maths num="0004"><math><![CDATA[<mrow><mi>G</mi><mi>r</mi><mi>a</mi><mi>d</mi><mi>e</mi><msub><mrow><mo>(</mo><msub><mi>P</mi><mi>f</mi></msub><mo>)</mo></mrow><mrow><mi>N</mi><mi>e</mi><mi>w</mi></mrow></msub><mo>=</mo><mfrac><mrow><mi>G</mi><mi>r</mi><mi>a</mi><mi>d</mi><mi>e</mi><msub><mrow><mo>(</mo><msub><mi>P</mi><mi>f</mi></msub><mo>)</mo></mrow><mrow><mi>O</mi><mi>l</mi><mi>d</mi></mrow></msub></mrow><msub><mi>N</mi><mrow><mi>f</mi><mi>q</mi></mrow></msub></mfrac></mrow>]]></math><img file="FDA0001069353000000031.GIF" wi="597" he="143" /></maths>其中Grade(P<sub>f</sub>)<sub>Old</sub>为FP中问题P<sub>s</sub>的更新前的分数;N<sub>fq</sub>是与P<sub>f</sub>相似的问题数目;Grade(P<sub>f</sub>)<sub>New</sub>是FP中问题P<sub>f</sub>的更新后的分数。
地址 430072 湖北省武汉市武昌区珞珈山武汉大学