一种答案推荐方法和装置与流程

文档序号:13596286阅读:104来源:国知局
本发明涉及互联网信息处理
技术领域
,特别涉及一种答案推荐方法和装置。
背景技术
:随着信息和网络技术的不断发展,诸如百度知道、新浪爱问、谷歌问答、搜搜问问、雅虎知识堂等网络互动问答社区,日益受到人们的关注。这些网络互动问答社区为网民提供了一个可以进行互动交流的平台,用户可以自由地提出问题、浏览问题、回答问题,进行互助交流,分享知识。随着问答社区参与用户的日益增多,候选答案数目随之增长,问答社区通常会对答案进行自动排序,以便为用户推荐优选答案。在对答案自动排序中,目前,大多采用文本主题分析技术来分析问答对的语义相关度等来判定问答对满意度,进而对答案进行自动排序。文本主题分析技术主要基于主题模型,即把文本映射成话题向量,话题向量又是由词的分布来表示,因此文本之间的主题相似度计算可以转化成话题向量之间的相似度计算,该相似度可以用余弦相似度来度量。现有的文本主题分析方法大多基于一个假设:即文本都属于同一个话题空间,且每个话题属于同一个词分布。然而,问答对中问题与答案可能采用不同的描述方式,即出现用词不一致的情形,例如在计算机领域中,问题的领域词分布以常用的或口语化的计算机词汇为主,如电脑、操作系统等;而回答的领域词分布以一些专业的计算机词汇为主,例如PC、win7等;又如,提问用户就某个游戏的技能进行提出问题,但用户回答的答案中是对具体技能的描述,并不包含问题中的用词。此时,按照现有的方法计算得到答案与问题的语义相关度较低,会使得与问题实际相匹配的答案无法召回或者答案的排序靠后,导致问答对质量判定准确率的下降,使用户无法找到优选答案。技术实现要素:有鉴于此,本发明提供了一种答案推荐方法和装置,分别生成问题领域词典和回答领域词典,以扩充问答对中问题和答案的领域映射表述,有效提升了问题和答案之间语义相似度判定的准确率,提高召回率。具体技术方案如下:一种答案推荐方法,该方法包括以下步骤:S1、获取问题和该问题对应答案的文本内容,分词得到所述问题的语义单元和所述答案的语义单元;S2、利用预先建立的问题领域词典,查找出所述问题的语义单元在各个类别中的权重,计算所述问题在各个类别中的主题权重;以及利用预先建立的答案领域词典,查找出所述各答案的语义单元在各个类别中的权重,分别计算所述各答案在各个类别中的主题权重;S3、利用得到的所述问题的主题权重和各答案的主题权重,分别计算各答案与所述问题的主题相似度,根据所述主题相似度的计算结果推荐答案。根据本发明一优选实施例,所述问题领域词典的建立方法,具体包括:获取问答对语料中问题的内容,分词得到所述问题的语义单元;分别计算所述问题的各语义单元在各个类别中的权重;将所述各语义单元及其在各个类别中的权重形成问题领域词典。根据本发明一优选实施例,所述答案领域词典的建立方法,具体包括:获取问答对语料中答案的内容,分词得到所述答案的语义单元;分别计算所述答案的各语义单元在各个类别中的权重;将所述各语义单元及其在各个类别中的权重形成答案领域词典。根据本发明一优选实施例,在所述得到所述问题的语义单元或答案的语义单元之后,还包括:将词频低于预设词频阈值的语义单元过滤掉;仅对过滤后剩余的语义单元,分别计算在各个类别中的权重。根据本发明一优选实施例,所述语义单元在各个类别中的权重根据以下所列的一种或任意组合进行计算:所述语义单元的词频在各类别之间的差异性、所述语义单元在各类别中出现的词频或者所述语义单元的逆词频率。根据本发明一优选实施例,所述语义单元在各个类别中的权重计算方法为:其中,w(tokeni,Cj)表示语义单元tokeni在类别Cj中的权重;pij=Tij/Lj,Lj表示类别Cj中含有的所有语义单元的次数总和,Tij表示语义单元tokeni在类别Cj中出现的次数;其中,m为类别数;表示在语义单元tokeni在类别Cj中出现的词频,n为词频影响因子;N表示语料中所有语义单元出现的次数总和,N(tokeni)表示语义单元tokeni出现的次数。根据本发明一优选实施例,在所述将各语义单元及其在各个类别中的权重形成问题领域词典或答案领域词典之前,还包括:对各语义单元在各个类别之间的权重进行相似权重过滤,针对同一语义单元,将在同一权重区间中出现次数大于预设阈值的权重过滤掉;仅将语义单元在剩余类别中的权重用以形成问题领域词典或答案领域词典。根据本发明一优选实施例,所述权重区间根据所述语义单元在各个类别中的权重大小来进行设置。根据本发明一优选实施例,在所述将各语义单元及其在各个类别中的权重形成问题领域词典之前,还包括:将单字、重复数字串或数字串长度超过预设长度阈值的语义单元过滤掉;仅将过滤后剩余的语义单元用以形成问题领域词典或答案领域词典。根据本发明一优选实施例,所述答案与问题的主题相似度的计算方法包括:分别计算所述答案与问题在各个类别下的主题相似度;选取计算得到的主题相似度最大值作为所述答案与问题的主题相似度。根据本发明一优选实施例,所述答案与问题的主题相似度的计算方法为:sim(query,ans)=Maxj{weight(query,Cj)×weight(ans,Cj)}其中,sim(query,ans)表示答案与问题的主题相似度,weight(query,Cj)表示问题在类别Cj中的主题权重,weight(ans,Cj)表示答案在类别Cj中的主题权重。一种答案推荐装置,该装置包括:文本获取模块,用于获取问题和该问题对应答案的文本内容,分词得到所述问题的语义单元和所述答案的语义单元;主题权重计算模块,用于利用预先建立的问题领域词典,查找出所述问题的语义单元在各个类别中的权重,计算所述问题在各个类别中的主题权重;以及用于利用预先建立的答案领域词典,查找出所述各答案的语义单元在各个类别中的权重,分别计算所述各答案在各个类别中的主题权重;相似度计算模块,用于利用所述主题权重计算模块得到的所述问题的主题权重和各答案的主题权重,分别计算各答案与所述问题的主题相似度,根据所述主题相似度的计算结果推荐答案。根据本发明一优选实施例,所述问题领域词典预先通过问题词典建立模块建立,所述问题词典建立模块具体包括:问题获取子模块,用于获取问答对语料中问题的内容,分词得到所述问题的语义单元;第一权重计算子模块,用于分别计算所述问题的各语义单元在各个类别中的权重;第一整合子模块,用于将所述各语义单元及其在各个类别中的权重形成问题领域词典。根据本发明一优选实施例,所述答案领域词典预先通过答案词典建立模块建立,所述答案词典建立模块具体包括:答案获取子模块,用于获取问答对语料中答案的内容,分词得到所述答案的语义单元;第二权重计算子模块,用于分别计算所述答案的各语义单元在各个类别中的权重;第二整合子模块,用于将所述各语义单元及其在各个类别中的权重形成答案领域词典。根据本发明一优选实施例,所述问题词典建立模块或所述答案词典建立模块,还包括:词频过滤子模块,用于将词频低于预设词频阈值的语义单元过滤掉;将过滤后剩余的语义单元提供给所述第一权重计算子模块或所述第二权重计算子模块。根据本发明一优选实施例,所述第一权重计算子模块或第二权重计算子模块根据以下所列的一种或任意组合计算所述语义单元在各个类别中的权重:所述语义单元的词频在各类别之间的差异性、所述语义单元在各类别中出现的词频或者所述语义单元的逆词频率。根据本发明一优选实施例,所述第一权重计算子模块或第二权重计算子模块计算所述语义单元在各个类别中的权重的方法为:其中,w(tokeni,Cj)表示语义单元tokeni在类别Cj中的权重;pij=Tij/Lj,Lj表示类别Cj中含有的所有语义单元的次数总和,Tij表示语义单元tokeni在类别Cj中出现的次数;其中,m为类别数;表示在语义单元tokeni在类别Cj中出现的词频,n为词频影响因子;N表示语料中所有语义单元出现的次数总和,N(tokeni)表示语义单元tokeni出现的次数。根据本发明一优选实施例,所述问题词典建立模块或所述答案词典建立模块,还包括:权重过滤子模块,用于对各语义单元在各个类别之间的权重进行相似权重过滤,针对同一语义单元,将在同一权重区间中出现次数大于预设阈值的权重过滤掉;仅将语义单元在剩余类别中的权重提供给所述第一整合子模块或所述第二整合子模块,用以形成问题领域词典或答案领域词典。根据本发明一优选实施例,所述权重区间根据所述语义单元在各个类别中的权重大小来进行设置。根据本发明一优选实施例,所述问题词典建立模块或所述答案词典建立模块,还包括:语义单元过滤子模块,用于将单字、重复数字串或数字串长度超过预设长度阈值的语义单元过滤掉;仅将过滤后剩余的语义单元提供给所述第一整合子模块或所述第二整合子模块,用以形成问题领域词典或答案领域词典。根据本发明一优选实施例,所述相似度计算模块分别计算所述答案与问题在各个类别下的主题相似度,并选取计算得到的主题相似度最大值作为所述答案与问题的主题相似度。根据本发明一优选实施例,所述相似度计算模块计算所述答案与问题的主题相似度的方法为:sim(query,ans)=Maxj{weight(query,Cj)×weight(ans,Cj)}其中,sim(query,ans)表示答案与问题的主题相似度,weight(query,Cj)表示问题在类别Cj中的主题权重,weight(ans,Cj)表示答案在类别Cj中的主题权重。由以上技术方案可以看出,本发明提供的答案推荐方法和装置,利用问答对语料分别生成问题领域词典和答案领域词典,从而扩充问答对的领域映射表述,有效提升了问答对语义相似度的准确率,解决在问题和答案对描述同一主题的用词不一致的情形下匹配不准确的问题,提高召回率。【附图说明】图1为本发明实施例一提供的答案推荐方法流程图;图2为本发明实施例一提供的问题领域词典的建立方法流程图;图3为本发明实施例一提供的答案领域词典的建立方法流程图;图4为本发明实施例二提供的答案推荐装置示意图;图5为本发明实施例二提供的问题词典建立模块的示意图;图6为本发明实施例二提供的答案词典建立模块的示意图。【具体实施方式】为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。在网络互动问答社区的问答过程中,问题和回答中对同一个主题的表述会因问答者的知识背景不同而有所不同,例如<压缩软件,winrar>,<幻灯片,PPT>,<系统软件,win7>等,这样的表述虽然用词不同,但是在特定的领域背景下具有较高的语义相似度。本发明利用这一特性,分别针对问题和答案在不同类别中的用词,建立问题领域词典和答案领域词典,通过分领域计算问题和答案之间语义相似度的计算方法,用以根据相似度的计算结果进行答案推荐。实施例一、图1是本实施例提供的答案推荐方法流程图,如图1所示,该方法包括:步骤S10、获取问题和该问题对应答案的文本内容,分词得到所述问题的语义单元和所述答案的语义单元。一个问题可能包括多个对应的答案,对问题和各答案的文本内容进行分词过滤等处理,得到获取的问题和各答案中包含的语义单元。本发明可以现有的分词方法对问题或答案的文本内容进行分词,例如N元语法分词法、正向最大匹配法、逆向最大匹配法等。以N元语法分词法为例,进行一元划分得到各个一元语义单元,如“文本”、“数据”、“表格”等;进行二元划分得到各个二元语义单元,如“文本框”、“数据包”、“新表格”等;进行三元划分得到各个三元语义单元,“多行文本框”、“数据包拦截”、“新表格下载”等;依此类推,进行N元语义单元的分词。N元语义单元是在问题或答案中上下文相邻的N个词项,即连续出现的N个词项,中间无文字、标点或空格等分隔符。问题或答案可能包括多个域的内容。比如,一个问题包括标题、正文以及补充说明三个域,分别提取这三个域的文本内容,对其进行分词得到对应的语义单元。将问题或答案按照标题、正文以及补充内容分别获取得到对应的N元语义单元。举个例子,用户提出的问题为:“求教电脑高手我的电脑重启之后之前下载的东西就没有了但我又没有注销怎么回事?”在这个问题中包括标题“求教电脑高手”和正文内容“我的电脑重启之后之前下载的东西就没有了但我又没有注销怎么回事?”。以该标题为例,其分词结果包括:一元语义单元“求教”、“电脑”、“高手”,二元语义单元“求教电脑”、“电脑高手”和三元语义单元“求教电脑高手”。步骤S20、利用预先建立的问题领域词典,查找出所述问题的语义单元在各个类别中的权重,计算所述问题在各个类别中的主题权重;以及,利用预先建立的答案领域词典,查找出所述各答案的语义单元在各个类别中的权重,分别计算所述各答案在各个类别中的主题权重。所述问题领域词典或答案领域词典中包括语义单元以及各语义单元在各个类别中的权重。所述类别为预设的若干个领域分类,可以采用百科分类,例如,计算机、医药、教育、地图、歌曲、电影等分类。关于利用已有的问答对语料库预先建立问题领域词典和答案领域词典的具体建立过程将在后续篇幅中进行详细介绍。利用问题领域词典,查找出所述问题的各个语义单元在各个类别中的权重,将问题包含的所有语义单元的权重按照各个类别进行求和,得到问题在各个类别中的主题权重。例如,利用语义单元“电脑”在问题领域词典中进行查找,得到该语义单元“电脑”在计算机类别的权重为15,在教育类别的权重为30,在医药分类中的权重为10。依次找出步骤S10中得到的问题各个语义单元在各个类别中的权重。根据不同类别,将各个语义单元在相应类别下的权重进行加权求和,得到问题在各个类别下的主题权重。如果语义单元在某个类别下的权重找不到,则此语义单元在该类别下的权重为零。例如,问题经过分词得到的语义单元,仅“电脑”和“高手”在医药分类中有权重,则将语义单元“电脑”和“高手”的权重相加作为问题在医药分类中的主题权重。同理,利用答案领域词典,查找出所述各答案的语义单元在各个类别中的权重,并将答案包含的所有语义单元的权重按照各个类别进行求和,得到答案在各个类别中的主题权重。步骤S30、利用得到的所述问题的主题权重和各答案的主题权重,分别计算各答案与所述问题的主题相似度,根据所述主题相似度的计算结果推荐答案。利用步骤S20中计算出的问题在各个类别中的主题权重以及答案在各个类别中的主题权重,计算答案与问题的主题相似度。答案与问题的主题相似度的计算方法可以但不限于采用问题的主题权重与答案的主题权重乘积的方式进行计算。具体地,先分别计算所述答案与问题在各个类别下的主题相似度,再选取计算得到的主题相似度最大值作为所述答案与问题的主题相似度,即:sim(query,ans)=weight(query,Cj)×weight(ans,Cj)其中,sim(query,ans)表示答案与问题的主题相似度,weight(query,Cj)表示问题在类别Cj中的主题权重,weight(ans,Cj)表示答案在类别Cj中的主题权重。在计算出的问题或答案在各个类别中的主题权重之后,可以仅选取问题以及答案前5个类别中的主题权重进行相似度计算。如果问题最高的主题权重为0,则表明对该问题不能有清晰的主题判定,不能计算问答对中问题与答案的主题相似度,此时,采用现有的语义相关度来衡量问答对的相关度。如果答案最高的主题权重为0,则表明对该答案不能有清晰的主题判定,不能计算该答案与问题的主题相似度,同理此时,采用现有的语义相关度来衡量问答对的相关度。将问题和答案在对应类别中的权重相乘,作为该类别的主题相关度,并选取乘积的最大值作为答案与问题的主题相关度。通过上述的计算方法,可以计算出问答对的主题相关度。如下表1所示:表1根据问答对问题和答案的主题相关度,可以较好地识别出具有相同主题的问答对,并能够产生比较高权值的主题相似度的判定,从而,对于从文本的内容相关方面判定问答质量提供了有效的手段,能够推荐更为准确的答案。下面结合图2和图3,对预先建立的问题领域词典和答案领域词典的建立方法进行说明。图2是本实施例提供的问题领域词典的建立方法流程图,如图2所示,该方法具体包括:步骤S401、获取问答对语料中问题的内容,分词得到所述问题的语义单元。获取整个问答对预料库中问题的文本内容,进行分词,并对分词得到的词项进行去除停用词、标点等过滤处理,得到问题的语义单元。具体处理过程与步骤S10相类似,于此不再赘述。步骤S402、将词频低于预设词频阈值的语义单元过滤掉。为了提高效率,先对语义单元基于词频进行过滤,将词频低于预设词频阈值的语义单元过滤掉。比如,去掉词频低于5次的语义单元。当然,本步骤并非必要步骤,在对处理效率要求不高时,可不执行。步骤S403、分别计算所述问题的各语义单元在各个类别中的权重。所述语义单元在各个类别中的权重根据以下所列的一种或任意组合进行计算:语义单元的词频在各类别之间的差异性、语义单元在各类别中出现的词频或者语义单元的逆词频率。以语义单元的词频在各类别之间的差异性、语义单元在各类别中出现的词频和语义单元的逆词频率三者相结合为例,语义单元在各个类别中的权重计算方法可以但不限于采用:语义单元的词频在各类别之间的差异性、语义单元在各类别中出现的词频和语义单元的逆词频率三者的乘积来计算,即:其中,w(tokeni,Cj)表示语义单元tokeni在类别Cj中的权重。pij=Tij/Lj,Lj表示类别Cj中含有的所有语义单元的次数总和,Tij表示语义单元tokeni在类别Cj中出现的次数。其中,m为类别数。表示tokeni的词频在类别之间的差异性。表示在语义单元tokeni在类别Cj中出现的词频,n为词频影响因子。词频影响因子n可根据实际情况进行设定,调节词频的影响力度,如选取n=5。N表示语料中所有语义单元出现的次数总和,N(tokeni)表示语义单元tokeni出现的次数,log(N/N(tokeni))表示语义单元tokeni的逆词频率。该逆词频率也可以直接采用自然语言处理语料中的倒文档率。步骤S404、对各语义单元在各个类别之间的权重进行相似权重过滤。为了将语义单元在各个类别之间的重要程度区分开来,在计算语义单元在各个类别中的权重后,需要过滤掉那些在同一权重区间出现过多次的权重。即,针对同一语义单元,将在同一权重区间中出现次数大于预设阈值的权重过滤掉。所述权重区间(如[0,10)区间)根据所述语义单元在各个类别中的权重大小来进行设置。具体地,可以但不限于采用以下方法:利用待计算的语义单元在所有类别中的权重的最大值和最小值之差除以权重区间数,确定所述待计算语义单元的各个权重区间。例如,可以用一种启发式的规则确定权重区间,如果一个语义单元在各个类中的最高权重得分为Scoremax,最低的权重得分为Scoremin,则区间长度可以定义为(Scoremax-Scoremin)/L,其中,L为预设的权重区间数,在本实施中取L=6。相似权重个数阈值设定为M/2,其中M代表该语义单元在多少个类别中有权重得分。例如,如语义单元“股票”在各个类别中的权重分布的情况为:1∶1.65,2∶2.32,3∶58.62,4∶3.12,5∶3.62,7∶14.82,8∶24.31,11∶14.85。首先确定区间长度为(58.62-0)/6=10,即可以将权重区间划为[0,10),[10,20)...,“股票”一共在8个类别中有权重得分,则相似权重个数阈值为4,在类别1、2、4、5中“股票”一词的权重都属于权重区间[0,10),因此将这四个类别的权重过滤,最后留下3∶58.62,7∶14.82,8∶24.31,11∶14.85这四个类别的权重。值得一提的是,在对处理效率和精度要求不高时,也可不执行本步骤。步骤S405、将单字、重复数字串或数字串长度超过预设长度阈值的语义单元过滤掉。在计算语义单元在各个类别中的权重后,还对语义单元进行过滤处理,包括:将单字的语义单元,即长度为1的汉字或单词过滤掉。将数字字符串长度超过预设长度阈值的语义单元过滤掉,比如,长度大于10的数字字符串是无意义的,予以过滤。将重复数字串的语义单元过滤掉。比如,有较大重复度的数字字符串(如00001等重复长度大于4的数字串)是无意义的,予以过滤。值得一提的是,本步骤的过滤处理也可以在计算语义单元在各个类别中的权重之前进行处理,具体可以在步骤S402之前或者之后。步骤S406、将所述各语义单元及其在各个类别中的权重形成问题领域词典。即,所述问题领域词典中至少包括语义单元以及各语义单元在各个类别中的权重。同理地,图3为本实施例提供的答案领域词典的建立方法流程图,如图3所示,具体包括:步骤S501、获取问答对语料中答案的内容,分词得到所述答案的语义单元。步骤S502、将词频低于预设词频阈值的语义单元过滤掉。步骤S503、分别计算所述答案的各语义单元在各个类别中的权重。步骤S504、对各语义单元在各个类别之间的权重进行相似权重过滤,针对同一语义单元,将在同一权重区间中出现次数大于预设阈值的权重过滤掉。步骤S505、将单字、重复数字串或数字串长度超过预设长度阈值的语义单元过滤掉。步骤S506、将所述各语义单元及其在各个类别中的权重形成答案领域词典。上述步骤S501至步骤S506的处理方法与步骤S401至步骤S406相类似,于此不再赘述。通过上述的建立方法,形成各个类别的问题领域词典和答案领域词典。如下表2和表3所示。表2问题领域二元语义单元权重答案领域二元语义单元权重文本框45.226控制端51.5122共享上网45.2149米特尼克51.3074默认网关45.1803停止消息50.968数据包45.1551单击取消50.8755java中45.1044分区表50.8634Excel表格45.0597机器狗50.7862进入DOS45.004灰鸽子50.533表2展现的是计算机类别中二元语义单元在问题领域和答案领域中的分布。从表2中可以看出,问题领域主要是实现功能或达到效果的二元语义单元,而在答案领域中主要是执行动作或应用技术的二元语义单元。表3问题领域二元语义单元权重答案领域二元语义单元权重正常值45.4417乙肝抗体46.8926每次月经45.4238粗浅建议46.6657卵巢囊肿45.4168肝功检验46.468胸膜炎45.3994疫苗加强46.3076乙肝核心45.3889鱼类含有46.2249表3展现的是医药类别中二元语义单元在问题领域和答案领域中的分布。从表3中可以看出,问题领域主要是对于病症的一些询问的二元语义单元,而在答案领域中,主要是一些医治方法和建议性的二元语义单元。本发明对问题和答案利用分别计算的方式,可以比较好地捕获到了提问与回答针对该领域的常见语义单元。同时,可以充分考虑到N元语义单元在各个类别中分布情况也比较不均衡的情况,比较好的达到了预期的目标。以上是对本发明所提供的方法进行的详细描述,下面对本发明提供的答案推荐装置进行详细描述。实施例二图4是本实施例提供的答案推荐装置示意图。如图4所示,该装置包括:文本获取模块10,用于获取问题和该问题对应答案的文本内容,分词得到所述问题的语义单元和所述答案的语义单元。一个问题可能包括多个对应的答案,对问题和各答案的文本内容进行分词过滤等处理,得到获取的问题和各答案中包含的语义单元。文本获取模块10可以采用现有的分词方法对问题或答案的文本内容进行分词,例如N元语法分词法、正向最大匹配法、逆向最大匹配法等。以N元语法分词法为例,进行一元划分得到各个一元语义单元,如“文本”、“数据”、“表格”等;进行二元划分得到各个二元语义单元,如“文本框”、“数据包”、“新表格”等;进行三元划分得到各个三元语义单元,“多行文本框”、“数据包拦截”、“新表格下载”等;依此类推,进行N元语义单元的分词。N元语义单元是在问题或答案中上下文相邻的N个词项,即连续出现的N个词项,中间无文字、标点或空格等分隔符。问题或答案可能包括多个域的内容。比如,一个问题包括标题、正文以及补充说明三个域,分别提取这三个域的文本内容,对其进行分词得到对应的语义单元。将问题或答案按照标题、正文以及补充内容分别获取得到对应的N元语义单元。主题权重计算模块20,用于利用预先建立的问题领域词典,查找出文本获取模块10得到的问题的语义单元在各个类别中的权重,计算所述问题在各个类别中的主题权重。以及,用于利用预先建立的答案领域词典,查找出文本获取模块10得到的各答案的语义单元在各个类别中的权重,分别计算所述各答案在各个类别中的主题权重。所述问题领域词典或答案领域词典中包括语义单元以及各语义单元在各个类别中的权重。所述类别为预设的若干个领域分类,可以采用百科分类,例如,计算机、医药、教育、地图、歌曲、电影等分类。关于利用已有的问答对语料库预先建立问题领域词典和答案领域词典的建立装置将在后续篇幅中进行详细介绍。利用问题领域词典,查找出问题的各个语义单元在各个类别中的权重,将问题包含的所有语义单元的权重按照各个类别进行求和,得到问题在各个类别中的主题权重。例如,利用语义单元“电脑”在问题领域词典中进行查找,得到该语义单元“电脑”在计算机类别的权重为15,在教育类别的权重为30,在医药分类中的权重为10。依次找出文本获取模块10中得到的问题各个语义单元在各个类别中的权重。根据不同类别,将各个语义单元在相应类别下的权重进行加权求和,得到问题在各个类别下的主题权重。如果语义单元在某个类别下的权重找不到,则此语义单元在该类别下的权重为零。例如,问题经过分词得到的语义单元,仅“电脑”和“高手”在医药分类中有权重,则将语义单元“电脑”和“高手”的权重相加作为问题在医药分类中的主题权重。同理,利用答案领域词典,查找出各答案的语义单元在各个类别中的权重,并将答案包含的所有语义单元的权重按照各个类别进行求和,得到答案在各个类别中的主题权重。相似度计算模块30,用于利用主题权重计算模块20得到的所述问题的主题权重和各答案的主题权重,分别计算各答案与所述问题的主题相似度,根据主题相似度的计算结果推荐答案。利用主题权重计算模块20中计算出的问题在各个类别中的主题权重以及答案在各个类别中的主题权重,计算答案与问题的主题相似度。答案与问题的主题相似度的计算方法可以但不限于采用问题的主题权重与答案的主题权重乘积的方式进行计算。具体地,先分别计算所述答案与问题在各个类别下的主题相似度,再选取计算得到的主题相似度最大值作为所述答案与问题的主题相似度,即:sim(query,ans)=weight(query,Cj)×weight(ans,Cj)其中,sim(query,ans)表示答案与问题的主题相似度,weight(query,Cj)表示问题在类别Cj中的主题权重,weight(ans,Cj)表示答案在类别Cj中的主题权重。相似度计算模块30可以仅选取主题权重计算模块20计算出的问题以及答案前5个类别中的主题权重进行相似度计算。如果问题最高的主题权重为0,则表明对该问题不能有清晰的主题判定,不能计算问答对中问题与答案的主题相似度,此时,采用现有的语义相关度来衡量问答对的相关度。如果答案最高的主题权重为0,则表明对该答案不能有清晰的主题判定,不能计算该答案与问题的主题相似度,同理此时,采用现有的语义相关度来衡量问答对的相关度。将问题和答案在对应类别中的权重相乘,作为该类别的主题相关度,并选取乘积的最大值作为答案与问题的主题相关度。根据问答对问题和答案的主题相关度,可以较好地识别出具有相同主题的问答对,并能够产生比较高权值的主题相似度的判定,从而,对于从文本的内容相关方面判定问答质量提供了有效的手段,能够推荐更为准确的答案。下面结合图5和图6,对预先建立的问题领域词典和答案领域词典的建立装置进行说明。图5是本实施例提供的问题领域词典的建立装置示意图,如图5所示,具体包括:问题获取子模块401,用于获取问答对语料中问题的内容,分词得到所述问题的语义单元。获取整个问答对预料库中问题的文本内容,进行分词,并对分词得到的词项进行去除停用词、标点等过滤处理,得到问题的语义单元。具体处理过程与文本获取模块10相类似,于此不再赘述。词频过滤子模块402,用于将词频低于预设词频阈值的语义单元过滤掉。为了提高效率,先对语义单元基于词频进行过滤,将词频低于预设词频阈值的语义单元过滤掉。比如,去掉词频低于5次的语义单元。当然,本子模块并非必要子模块,在对处理效率要求不高时,可不包含。第一权重计算子模块403,用于分别计算所述问题的各语义单元在各个类别中的权重。所述语义单元在各个类别中的权重根据以下所列的一种或任意组合进行计算:语义单元的词频在各类别之间的差异性、语义单元在各类别中出现的词频或者语义单元的逆词频率。以语义单元的词频在各类别之间的差异性、语义单元在各类别中出现的词频和语义单元的逆词频率三者相结合为例,语义单元在各个类别中的权重计算方法可以但不限于采用:语义单元的词频在各类别之间的差异性、语义单元在各类别中出现的词频和语义单元的逆词频率三者的乘积来计算,即:其中,w(tokeni,Cj)表示语义单元tokeni在类别Cj中的权重。pij=Tij/Lj,Lj表示类别Cj中含有的所有语义单元的次数总和,Tij表示语义单元tokeni在类别Cj中出现的次数。其中,m为类别数。表示tokeni的词频在类别之间的差异性。表示在语义单元tokeni在类别Cj中出现的词频,n为词频影响因子。词频影响因子n可根据实际情况进行设定,调节词频的影响力度,如选取n=5。N表示语料中所有语义单元出现的次数总和,N(tokeni)表示语义单元tokeni出现的次数,log(N/N(tokeni))表示语义单元tokeni的逆词频率。该逆词频率也可以直接采用自然语言处理语料中的倒文档率。权重过滤子模块404,用于对各语义单元在各个类别之间的权重进行相似权重过滤。为了将语义单元在各个类别之间的重要程度区分开来,在计算语义单元在各个类别中的权重后,需要过滤掉那些在同一权重区间出现过多次的权重。即,针对同一语义单元,将在同一权重区间中出现次数大于预设阈值的权重过滤掉。所述权重区间(如[0,10)区间)根据所述语义单元在各个类别中的权重大小来进行设置。具体地,可以但不限于采用以下方法:利用待计算的语义单元在所有类别中的权重的最大值和最小值之差除以权重区间数,确定所述待计算语义单元的各个权重区间。例如,可以用一种启发式的规则确定权重区间,如果一个语义单元在各个类中的最高权重得分为Scoremax,最低的权重得分为Scoremin,则区间长度可以定义为(Scoremax-Scoremin)/L,其中,L为预设的权重区间数,在本实施中取L=6。相似权重个数阈值设定为M/2,其中M代表该语义单元在多少个类别中有权重得分。例如,如语义单元“股票”在各个类别中的权重分布的情况为:1∶1.65,2∶2.32,3∶58.62,4∶3.12,5∶3.62,7∶14.82,8∶24.31,11∶14.85。首先确定区间长度为(58.62-0)/6=10,即可以将权重区间划为[0,10),[10,20)...,“股票”一共在8个类别中有权重得分,则相似权重个数阈值为4,在类别1、2、4、5中“股票”一词的权重都属于权重区间[0,10),因此将这四个类别的权重过滤,最后留下3∶58.62,7∶14.82,8∶24.31,11∶14.85这四个类别的权重。值得一提的是,在对处理效率和精度要求不高时,也可不包含本子模块。语义单元过滤子模块405,用于将单字、重复数字串或数字串长度超过预设长度阈值的语义单元过滤掉。语义单元过滤子模块405对语义单元进行过滤处理,包括:将单字的语义单元,即长度为1的汉字或单词过滤掉。将数字字符串长度超过预设长度阈值的语义单元过滤掉,比如,长度大于10的数字字符串是无意义的,予以过滤。将重复数字串的语义单元过滤掉。比如,有较大重复度的数字字符串(如00001等重复长度大于4的数字串)是无意义的,予以过滤。值得一提的是,本子模块也可以设置在第一权重计算子模块403之前,具体可以在词频过滤子模块402之前或者之后。第一整合子模块406,用于将所述各语义单元及其在各个类别中的权重形成问题领域词典。即,所述问题领域词典中至少包括语义单元以及各语义单元在各个类别中的权重。同理地,图6为本实施例提供的答案领域词典的建立装置示意图,如图6所示,具体包括:答案获取子模块501,用于获取问答对语料中答案的内容,分词得到所述答案的语义单元。词频过滤子模块502,用于将词频低于预设词频阈值的语义单元过滤掉。第二权重计算子模块503,用于分别计算所述答案的各语义单元在各个类别中的权重。权重过滤子模块504,用于对各语义单元在各个类别之间的权重进行相似权重过滤,针对同一语义单元,将在同一权重区间中出现次数大于预设阈值的权重过滤掉。语义单元过滤子模块505,用于将单字、重复数字串或数字串长度超过预设长度阈值的语义单元过滤掉。第二整合子模块506,用于将所述各语义单元及其在各个类别中的权重形成答案领域词典。上述子模块501至506的设置与子模块401至406相似,于此不再赘述。通过上述的建立装置,形成各个类别的问题领域词典和答案领域词典。如下表1和表2所示。本发明提供的答案推荐方法和装置,利用问答对语料分别建立包含各个分类的问题领域词典和答案领域词典,从而扩充问答对的领域映射表述,有效提升了问答对语义相似度的准确率,解决在问题和答案对描述同一主题的用词不一致的情形下匹配不准确的问题,提高召回率。本发明可用于各种网络互动问答社区的答案推荐、分领域相关度内容推荐及搜索结果推荐等方面。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1