Python实现生活常识解答机器人


Posted in Python onJune 28, 2021

一、问答平台

这个「生活常识解答」机器人采用的是:阿里达摩院发布的语言模型PLUG(最近刚发布的,目前是测试阶段),地址链接如下:

https://nlp.aliyun.com/portal#/BigText_chinese

Python实现生活常识解答机器人

该模型参数规模达270亿,采用1TB以上高质量中文文本训练数据,包括了新闻、小说、诗歌、常识问答等类型。

先来看一下原页面效果

Python实现生活常识解答机器人

这里是需要登录阿里云账号,登录之后可以在网页进行测试问答!

因此我们下面将通过抓包方式获取这个问答的请求链接,然后在python代码中requests发送post请求去进行提问,然后返回结果(答案)。

二、抓包

在浏览器里面F12,点击network,然后点击一下提问,获取链接。

首先是发送的参数(提问)

Python实现生活常识解答机器人

然后是返回的json数据

Python实现生活常识解答机器人

请求链接

https://nlp.aliyun.com/otherApi/yymx/cdgmwbsc

Python实现生活常识解答机器人

因此这个数据包的相关信息(请求链接,参数,返回结果)我们已经知道了,下面开始编写python代码

三、编写代码

首先是导入python库和请求头

 

import requests
import json
header={
    'content-type':'application/json',
    'cookie':'上面页面中你自己的cookie',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36',
}

经过测试,有用的请求头参数是上面三个(content-type、cookie、User-Agent),缺一不可。

参数(其中q是问题,length是返回答案长度,type是对应常识问题)

 

q = "程序员脱发用什么洗发水好?"
data = {
    'length':'128',
    'type':'2',
    'passage':q,
}

发送请求

 

url = "https://nlp.aliyun.com/otherApi/yymx/cdgmwbsc"
text = requests.post(url,data = json.dumps(data),headers=header).json()
print(text['res'])

返回结果

Python实现生活常识解答机器人

下面为了能够多轮提问,将请求部分代码放到循环中(如果输入是exit则退出循环)

Python实现生活常识解答机器人

四、小结

今天阿辰主要就教大家用Python爬虫去搭建一个「生活常识解答」机器人。

这个机器人主要是依托于“阿里达摩院发布的语言模型PLUG”,通过爬虫的方式,发送post请求(提问),然后返回json数据(回答)。轻松实现多轮提问。

到此这篇关于Python实现生活常识解答机器人的文章就介绍到这了,更多相关Python机器人内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python对url格式解析的方法
May 13 Python
pandas 将索引值相加的方法
Nov 15 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
Feb 17 Python
Python 计算任意两向量之间的夹角方法
Jul 05 Python
用python3 urllib破解有道翻译反爬虫机制详解
Aug 14 Python
详解Matplotlib绘图之属性设置
Aug 23 Python
Python @property装饰器原理解析
Jan 22 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
Feb 28 Python
django rest framework serializers序列化实例
May 13 Python
Python 实现RSA加解密文本文件
Dec 30 Python
python UDF 实现对csv批量md5加密操作
Jan 01 Python
七个Python必备的GUI库
Apr 27 Python
Python办公自动化之教你如何用Python将任意文件转为PDF格式
Python移位密码、仿射变换解密实例代码
Pytest中conftest.py的用法
Python实现8种常用抽样方法
Python基于百度API识别并提取图片中文字
Python基于百度AI实现抓取表情包
Python道路车道线检测的实现
You might like
PHP 表单提交给自己
2008/07/24 PHP
php中出现空白页的原因及解决方法汇总
2014/07/08 PHP
js onpropertychange输入框 事件获取属性
2009/03/26 Javascript
关于firefox的ElementTraversal 接口 使用说明
2010/11/11 Javascript
实现动画效果核心方式的js代码
2013/09/27 Javascript
Node.js中创建和管理外部进程详解
2014/08/16 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
2015/02/20 Javascript
js生成验证码并直接在前端判断
2015/05/15 Javascript
Position属性之relative用法
2015/12/14 Javascript
jQuery侧边栏实现代码
2016/05/06 Javascript
详解angularjs popup-table 弹出框表格指令
2017/09/20 Javascript
ReactNative 之FlatList使用及踩坑封装总结
2017/11/29 Javascript
在vue组件中使用axios的方法
2018/03/16 Javascript
vue实现element-ui对话框可拖拽功能
2018/08/17 Javascript
从vue源码看props的用法
2019/01/09 Javascript
JQuery animate动画应用示例
2019/05/14 jQuery
微信小程序实现下拉加载更多商品
2020/12/29 Javascript
[08:47]DOTA2每周TOP10 精彩击杀集锦vol.6
2014/06/25 DOTA
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
python实现的多线程端口扫描功能示例
2017/01/21 Python
Pandas:DataFrame对象的基础操作方法
2018/06/07 Python
python实现C4.5决策树算法
2018/08/29 Python
pycharm显示远程图片的实现
2019/11/04 Python
如何基于python生成list的所有的子集
2019/11/11 Python
python实现word文档批量转成自定义格式的excel文档的思路及实例代码
2020/02/21 Python
使用IPython或Spyder将省略号表示的内容完整输出
2020/04/20 Python
Django如何在不停机的情况下创建索引
2020/08/02 Python
python利用xlsxwriter模块 操作 Excel
2020/10/14 Python
python 用struct模块解决黏包问题
2020/11/07 Python
matplotlib之pyplot模块之标题(title()和suptitle())
2021/02/22 Python
纯CSS3实现的井字棋游戏
2020/11/25 HTML / CSS
英国奢侈品在线精品店:Hervia
2020/09/03 全球购物
vue 中 get / delete 传递数组参数方法
2021/03/23 Vue.js
大学生演讲稿
2014/04/25 职场文书
我的中国梦演讲稿高中篇
2014/08/19 职场文书
Python基础知识学习之类的继承
2021/05/31 Python