Python實現生活常識解答機器人

一、問答平臺

這個「生活常識解答」機器人采用的是:阿裡達摩院發佈的語言模型PLUG(最近剛發佈的,目前是測試階段),地址鏈接如下:

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

該模型參數規模達270億,采用1TB以上高質量中文文本訓練數據,包括瞭新聞、小說、詩歌、常識問答等類型。

先來看一下原頁面效果

這裡是需要登錄阿裡雲賬號,登錄之後可以在網頁進行測試問答!

因此我們下面將通過抓包方式獲取這個問答的請求鏈接,然後在python代碼中requests發送post請求去進行提問,然後返回結果(答案)。

二、抓包

在瀏覽器裡面F12,點擊network,然後點擊一下提問,獲取鏈接。

首先是發送的參數(提問)

然後是返回的json數據

請求鏈接

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

因此這個數據包的相關信息(請求鏈接,參數,返回結果)我們已經知道瞭,下面開始編寫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'])

返回結果

下面為瞭能夠多輪提問,將請求部分代碼放到循環中(如果輸入是exit則退出循環)

四、小結

今天阿辰主要就教大傢用Python爬蟲去搭建一個「生活常識解答」機器人。

這個機器人主要是依托於“阿裡達摩院發佈的語言模型PLUG”,通過爬蟲的方式,發送post請求(提問),然後返回json數據(回答)。輕松實現多輪提問。

到此這篇關於Python實現生活常識解答機器人的文章就介紹到這瞭,更多相關Python機器人內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: