基于搜索的问答系统
微信上有一个智能聊天工具人——那就是小冰,它是特别的智能,可以根据你说的话来与你聊天,以下是聊天截图:
那么它的实现的流程是怎样的呢?首先它用到的就是我们常见的NLP技术。一般做一个NLP的系统需要以下的流程:
这些流程在之后的文章中均会更新,我们今天先大概谈谈做一个智能客服系统需要哪些流程,首先从宏观去掌握它、认识它。一般来说,我们的原始文本也就是原始数据,我们可以通过爬虫来爬取,当我们拿到数据之后,我们要将该数据进行分词,然后进行数据的清晰,这个时候会用到很多的技术,接着就是将我们清洗后的数据进行标准化处理,其中包括Stemming和Lemmazation等。然后就是特征提取和建模,这些都会用到我们相关的AI技术,包括机器学习和深度学习,最后就是系统评估了。
那么在我们做搜索的问答系统需要哪些流程呢?
首先我们需要一个basic knowledge库,当我们提出问题的时候,将我们的问题与知识库相匹配。最后给出一个相似度最高的作为返回该问题的答案。具体流程如下:
1、当我们输入一句话: I like NLP and I want to a NLP Engineer。
2、我们做的就是要分词,把每个单词用空格分开
3、将这句话进行预处理(拼写纠错(Spelling Correction)、原型(Stemming和Lemmazation)、单词过滤(stop words, words filtering)、同义词)
4、文本表示——将文本转换为向量,这更有利于我们用算法来处理这句话,使这句话更有结构性。其中包括(古典向量、count vector、tf-idf、word2vector、seq2seq)
5、计算相似度——欧式距离、cosdistance……
6、排序
7、过滤
8、返回结果。
既然我们有一定的技术解决文本的分类问题,为什么还需要NLP中的知识图谱呢?知识图谱的相关知识以后学到在做更新,现在只谈知识图谱与之前的一般问答系统的相关技术的对比。
问答系统用到的一般是文本表示以及相似度,这样的话就大大的提高了算法的复杂度。而知识图谱用到的是实体抽取和关系抽取,降低了匹配的复杂度,并且提高了问答系统回答的准确率。
总之,我们应该在做一个智能客服之前,我们应该搞清楚最基本的流程有哪些,从宏观上把握,这样的话,我们大体的方向不会太偏。然后再完善各个部分功能,这样做的系统是健壮的,这是NLP的第一个项目,首先从宏观出发,将整体的流程以及涉及到的知识点进行了罗列,接下来的几天,一天学一个知识点,更新一篇文章,知道知识点全部学完,系统搭建出来。