赞
踩
问答系统是用户提出一个问题,系统匹配用户这个问题相似度最高的问题给出答案;
类似于淘宝购物的机器人客服自动回复系统。
接下来用一个案例来说明问答系统搭建的思路
首先我们得准备数据, 那么问答系统的数据是什么呢? 就是我们需要提供一个语料库,这里边存在这常见问题的答案(一对一的形式)
这里我引用一个培训机构的客服系统的语料库来演示:
如何根据这个语料库匹配问题答案呢?
基于用户输入的文本和语料库中的问题文本进行相似度对比,选择一个相似度高的来实现问题与答案的匹配。(相似度的实现后面会解释)
综合来说 问答系统的模型可以表示为下边这个图
问答系统的整体流程:
(1)根据输入文本 进行分词(segmentation)
(2) 分词完会进行预处理
{①spell correction(拼写纠错 ,一般英文单词进行拼写纠错)
②steming/Lemmazation (对单词进行还原 英文中的时态问题 都将单词还原为原型 例如 going went gone 还原为go)
③stop word(停用词 去掉停用词 不影响大概的语义,提高处理速度)
④word filter(单词过滤,过滤一些无用词 例如这类)
⑤同义词 (同义词转换为语料库问题里边使用的同义词)
⑥(…)
}
(2)预处理完后需要将 文本转换为向量
{
①Boolean vector (1,0,1,0,0,0,1 … bool类型的向量)
②count vector(2,3,6,1 … 具体的数字来表达)
③tf-idf(0.7,0.1,0.1,…词频表示)
④word2vec
⑤seq2seq
}
(3)计算相似度
①余弦相似度(Cosine Similarity)
②欧氏距离(Euclidean Distance)
③马氏距离(Mahalanobis Distance)
(4)排序(对相似度排序)
(5)返回结果
大部分的NLP项目都可以按照下边的流程进行
本次介绍的问答系统也不例外 问答系统不像其他的NLP项目,他不依赖与大量的数据和机器学习模型。
以上就是对问答系统的简述以及我们准备按照怎样的思路来建立这个问答系统。后边会一步一步的开始,逐步实现每个模块。
下一章见。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。