圖靈機器人對中文的識別準確率高達90%,是目前中文語境下智能度最高的機器人。有不少在Python中使用圖靈機器人API的博客,但都是1.0版本。因此今天簡單地總結一下在Python中使用圖靈機器人API v2.0的方法。python
首先,前往圖靈機器人官方網站 http://www.tuling123.com/ 註冊帳號。json
登陸後點擊 建立機器人
,填寫一些簡單的基本信息以後便可建立。api
在機器人設置界面找到你的 API KEY
,記錄下來。app
基本原理就是使用urllib.request模塊,向接口地址發送HTTP POST請求,請求中加入了聊天內容。iphone
*使用python3執行post
import json import urllib.request api_url = "http://openapi.tuling123.com/openapi/api/v2" text_input = input('我:') req = { "perception": { "inputText": { "text": text_input }, "selfInfo": { "location": { "city": "上海", "province": "上海", "street": "文匯路" } } }, "userInfo": { "apiKey": "請替換爲你的API KEY", "userId": "OnlyUseAlphabet" } } # print(req) # 將字典格式的req編碼爲utf8 req = json.dumps(req).encode('utf8') # print(req) http_post = urllib.request.Request(api_url, data=req, headers={'content-type': 'application/json'}) response = urllib.request.urlopen(http_post) response_str = response.read().decode('utf8') # print(response_str) response_dic = json.loads(response_str) # print(response_dic) intent_code = response_dic['intent']['code'] results_text = response_dic['results'][0]['values']['text'] print('Turing的回答:') print('code:' + str(intent_code)) print('text:' + results_text)
* 幾點說明:網站
一、字典 req
包含了向圖靈機器人發出請求所需的各項信息。其中 req['perception']['selfInfo']['location']
包含了地理位置信息,向圖靈機器人發送與位置有關的請求時,若是沒有另外指定位置,則會默認使用這個位置。例如詢問"明天會下雨嗎",圖靈機器人會回答我"上海"明天是否下雨。編碼
二、req['userInfo']
包含了API KEY,請替換成你的API KEY(雙引號不要刪除)。另外 userId
是用戶參數,暫時不明白用途,若是你有什麼想法懇請留言。url
三、圖靈機器人的回答能夠轉換爲python的字典格式。其中有一項 response_dic['intent']['code']
官方稱爲"輸出功能code",表示這個回答是什麼"類型"的。例如10004表明普通的聊天回覆,10008表明與天氣相關的回覆。然而奇怪的是,目前API v2.0的官方文檔並無給出code和類型的對照表。目前本身總結了一些以下,歡迎補充:spa
code | 類型 |
---|---|
10004 | 聊天 |
10008 | 天氣 |
10013 | 科普類,例如"班戟是什麼" |
10015 | 菜譜類,例如"剁椒魚頭怎麼作" |
10019 | 日期類,例如"愚人節是幾號"、"明天是星期幾" |
10020 | 中英翻譯 |
10023 | 通常返回網頁會是這個code,例如"iphone多少錢" |
10034 | 語料庫中本身設定的回答 |
到如今爲止,已經快把每一個獨立的模塊完成了,接下來該準備考慮如何把它們整合在一塊兒了。但願能幫到你。
感謝你閱讀文章!