导读:智能问答系统是自然语言处理的一个重要分支。今天我们将利用分词处理以及搜索引擎搭建一个智能问答系统。 本文经授权转自公众号CSDN(ID:CSDNnews)
具体的效果如下所示:
下面简单了解下智能问答系统和自然语言处理的概念,智能问答系统是自然语言处理的一个重要分支。现在普遍认为智能问答能够独立解决很多问题,但是必须要承认现在技术所处的初级阶段的性质。也就是说,智能问答系统在现阶段最大的价值在于为客服人员赋能,而并非独立于人自行解决众多目前还有巨大错误率和不确定性的问题。
一旦具有这样的思想基础——通过智能问答系统为客服人员附能,那么将智能问答系统做成一个工具和产品的基础就有了,只有通过产品化、工具化的方式,才能够实现这个预期。
自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。
因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。
下面开始搭建我们的智能问答系统,首先我们需要导入的库:
其中requests库用来向搜索引擎搜索答案,lxml用来获取答案,jieba库用来提取问题以及做出问题分析,re是处理语言的正则匹配库,sys以及time库用来调试输出效果,os模块用来写入文件以搭建模式选择。
我们知道一个真正的语言回答应该是逐字回答的才符合人的回答习惯,下面为了达到语言对话的效果,我们定义一个函数:
就是用来逐字输出的效果。
下面是真正搭建的部分,为了对语言进行处理,首先我们要加载停用词,去除掉语言中无意义的词,比如“了”,“啊”等等:
开始执行的判断输出一下,以及使用者的输入:
为了控制文字输出的速度,我们借助文件读取控制模式:
下面用Jieba分词,去除掉无用的停用词:
此时process是仅仅最简单语言的处理结果,为了适应更多语言习惯,使用正则表达式匹配另一种语言习惯,一个“问”时的处理:
另外再添加语言习惯,两个“问”的处理:
这样输出的效果就可以适应多种语言习惯,为了区分问答句和模式选择句加入判断语句:
在else中使用搜索引擎获取答案,首先使用请求头,百度百科网址:
为了防止中文乱码问题,使用编码如下:
下面使用匹配获取内容:
然后为了判断提问者提出的问题是否可行,以及模式匹配的选择,加入判断:
然后循环执行问答系统即可:
如下图所示,提问的语句可以任意,不需要固定格式,这样才具有智能性不是吗?
以上就是本篇文章【手把手教你用Python搭建一个AI智能问答系统】的全部内容了,欢迎阅览 ! 文章地址:http://sicmodule.glev.cn/quote/18948.html 行业 资讯 企业新闻 行情 企业黄页 同类资讯 网站地图 返回首页 歌乐夫资讯移动站 http://sicmodule.glev.cn/mobile/ , 查看更多