本质上,这是一个自动问答(Question Answering, QA)的问题。
QA是指利用计算机自动回答用户所提出的问题以满足用户知识需求的任务。
QA研究内容和关键科学问题:
1 问句理解
给定用户问题,自动问答首先需要理解用户所提问题。
2 文本信息抽取
给定问句语义分析结果,自动问答系统需要在已有语料库、知识库或问答库中匹配相关 的信息,并抽取出相应的答案。
3 知识推理
自动问答中,由于语料库、知识库和问答库本身的覆盖度有限,并不是所有问题都能直 接找到答案。这就需要在已有的知识体系中,通过知识推理的手段获取这些隐含的答案。
例如,知识库中可能包括了一个人的“出生地”信息,但是没包括这个人的“国籍”信息,因此无法直接回答诸如“某某人是哪国人?”
我们要解决的问题就是找到Q+An最相关的An,然后把An作为Q的答案。
以下题为例:
方案1简单粗暴型
搜索Q,统计An在搜索结果中出现的次数,取次数最高的,作为推荐答案。
结果:
涂经纬 0
撒贝娜 4
任雪 0
李思思 0
答案:
撒贝娜
方案2 算法型
分别搜索Q、An,统计结果的数量,然后计算PMI值,取值最高的作为推荐答案。
什么是PMI?
机器学习里经常会用到PMI( Pointwise Mutual Information )点间互信息,这个指标来衡量两个事物之间的相关,用在自然语言处理中,比如计算两个词的相关度。
表示Q跟An同时出现的概率;
表示Q出现的概率;
表示An出现的概率;
如果Q+An同时出现的概率>分别出现的概率之积,则Q+An越相关;
NQ表示Q的结果数量,NA分别表示An的结果数量,NQA表示Q+An的搜索数量,下面是伪代码:
我们比较NQA与NA乘于NQ的关系,求解出K值最大的,即表示Q+An最相关;
看下具体计算:
计算结果:
答案:
撒贝娜
大家可以拓展下。
ps:
领取专属 10元无门槛券
私享最新 技术干货