什么是问答系统
Question Answering System,QA System
是用来回答人提出的自然语言问题的系统。
分类
① 按知识领域划分:
封闭领域:回答特定领域的问题,如医疗。
开放领域:没有内容范围的限制。(猜测是领域之间实体的关系不易界定;数据量极大)
② 从实现方式划分:
基于流水线(pipeline)实现:有四大核心模块,分别由自然语言理解(NLU)、对话状态跟踪器(DST)、对话策略(DPL)和自然语言生成(NLG)依次串联构成的一条流水线,各模块可独立设计,模块间协作完成任务。
基于端到端(end-to-end)实现:主要是结合深度学习技术,通过海量数据训练,挖掘出从用户自然语言输入到系统自然语言输出的整体映射关系,而忽略中间过程的一种方法。(现不可,这个看不懂)
③ 从答案来划分:
知识库问答(目前热)
常问问题回答
新闻回答
国际网路问答
query理解
从query中提取信息,弄懂用户想搜什么
具体步骤:
①纠错改写→底层数据库只支持精准搜索,因此需要将query改写到正确的内容下
②意图识别→通过分析语义等,识别出具体意图,定搜索范围
③实体识别→较意图识别粒度更细,词级别。检索关键字。
④词权重问题→匹配到多个词汇时谁在更前。利用权重
?槽值填充(槽位解析):常用为序列标注任务。提取用户输入的信息中的对应部分信息
上述概念可参照:https://www.cnblogs.com/shona/p/11966557.html
(序列标注的任务常用的模型:
词典匹配;
BiLSTM + CRF;
IDCNN
BERT等。)
query理解,决定了下游的搜索召回策略。底层数据从技术上,有各种类型的数据库需要检索;从算法策略上,也有多种召回的方案,例如高准确的、高召回的等等,要用什么策略,这要取决于query理解的结论。
来源:https://zhuanlan.zhihu.com/p/136313695
(一)以一个用户搜索唐人街探案的例子解释:
纠错:初步看来,没有错误,过。
意图识别和实体识别:有唐人街探案这个实体,常见的首先是一部电影,最近还上了网剧,从热度上看,由于网剧比较新,所以用户在近期更可能看的是网剧,当然信息不足,不代表用户真的就只想看网剧,所以电影的东西也要给一些,最大限度保证满足需求。
前四个输出:
①百度百科解释概念
②网剧满足近况
③豆瓣电影有影评
④电影
(猜输出的内容排序或许跟分析历史数据,得到的用户点击概率最高的有关)
(二)问:唐人街探案网剧怎么样
唐人街探案网剧:缩小实体范围(?或者说更精确)
怎么样(期望得到影评)
输出影评,简单给出网剧爱奇艺链接(嗯。。。)
actree
Aho-Corasick自动机算法(简称AC自动机):应用有限自动机巧妙地将字符比较转化为了状态转移
两个特点:
①扫描文本时完全不需要回溯
②时间复杂度为O(n),时间复杂度与关键字的数目和长度无关
参考:https://blog.csdn.net/sealyao/article/details/4560427
区别比较:多模式匹配算法(?)