1. 程式人生 > >利用圖靈機器人為公眾號新增智慧問答,知識庫功能

利用圖靈機器人為公眾號新增智慧問答,知識庫功能

1.緒論

訂閱號很早就有了,我最近閒了無事就像探索探索可以怎麼玩。首先聯想到就是微軟小冰智慧問答系統,還有很早時候有一個公眾號提供了,根據c、c++函式名返回API具體用法的功能。那麼這兩個類似的功能如何實現呢。

這裡寫圖片描述

2.接入智慧問答系統

首先個人需要申請一個公眾號,接著在圖靈機器人的官網:http://www.tuling123.com/
註冊一個號,選擇新增微信公眾號,直接掃碼關聯,ok,智慧問答系統接入成功!

這裡寫圖片描述

其實這個呢,是圖靈機器人獲取了微信的第三方介面,替你管理了微訊號的訊息回覆功能,並且提供了下面的基本功能:其實比較簡單,一些複雜的問題比如:給我訂個到上海的機票,直接會回覆去哪網的連結。相信這是圖靈機器人的主要賺錢點,哈哈。

這裡寫圖片描述

3.實現計算機專業英語辭典

那麼類似提供c、c++ API 查詢的功能是如何實現的呢?對於一個智慧問答系統,API查詢的功能其實可以抽象成一問一答的形式來做,由於暫時沒有這方面的語料庫,對於我們的公眾號來說,哪一種功能比較類似呢?我想到了新增一個計算機專業英語的英譯漢詞典

首先我們來看看,圖靈機器人提供的知識庫模板:

這裡寫圖片描述

很好理解,其實就是兩列文字,第一列為問題,比如你叫什麼,第二列為答案。
這樣的文字格式和詞典也很好對應。於是我們上網找到一個txt格式的計算機專業英語基礎英譯漢詞典:

這裡寫圖片描述

觀察發現,前面是英文後面是漢語釋義,很好弄,python正則匹配一下,區分出英文和漢字出現的位置,完後寫到xls格式的檔案中對應的單詞和釋義就好了:結構如下(問題對應單詞,答案對應釋義)

問題 答案
單詞 釋義

**另外一個需要注意的點就是檔案編碼,python預設都是utf-8的。
所以一般咱們txt這塊處理中文都是得用gbk系列的(比如gb2312),在python中處理的時候都轉換成unicode統一搞**

這裡寫圖片描述

python程式碼如下:主要使用了可以操作excel檔案的xlwt庫,和正則表示式庫re


# -*- coding: utf-8 -*-
"""
Spyder Editor

write data to xls,2016.7.24
主要實現將一些其他格式的資料轉化成,圖靈機器人可以識別的xls格式資料
"""
import os import xlwt import re knowledge = [] def set_style(name,height,bold = False): style = xlwt.XFStyle() #初始化樣式 font = xlwt.Font() #為樣式建立字型 font.name = name font.bold = bold font.color_index = 4 font.height = height style.font = font return style def write_excel(knowledge): #建立xls工作薄 workbook = xlwt.Workbook(encoding = 'utf-8') #建立sheet data_sheet = workbook.add_sheet('first') for i in range(len(knowledge)): data_sheet.write(i,0,knowledge[i][0]) data_sheet.write(i,1,knowledge[i][1]) #儲存檔案 workbook.save('answer.xls') print "successful write!" x=xlwt.Workbook() s1=x.add_sheet('sheet1') if __name__ == '__main__': info = open("know.txt") print "中文" #a = info.readlines() #print a for line in info: line = line.decode('GB2312').encode('utf-8') #print line 這塊也可以整行進行拆分 # letter_str = re.findall(r'([a-zA-Z]+)',line,re.MULTILINE) #hanzi_str = re.findall(r"([\x80-\xff]+)", line,re.MULTILINE) #找到第一個出現漢字字元的位置,進行截斷,分成兩部分,分別寫到兩列中 hanstr = '' yingstr = '' index = 0 for i in line: an = re.match(r"([\x80-\xff]+)", i)#判斷一下是中文 if an: break else: index = index +1 yingstr = line[0:index] hanstr = line[index:len(line)] print index print hanstr str = [yingstr,hanstr] knowledge.append(str) write_excel(knowledge) ''' 下面使用庫xlwt進行操作excel檔案的一些程式碼,希望大家有空能夠用到 style1=xlwt.XFStyle() #樣式類 style1.font.colour_index=30 #字型顏色前景色為紅 style1.font.bold=True #粗體 style1.pattern.pattern=1 #填充solid style1.pattern.pattern_fore_colour=2 #填充顏色紅色 style2=xlwt.easyxf('font:italic on;pattern:pattern solid,fore-colour yellow') #快速生成樣式 #引數字串格式: #"class1:key1 value1,key2 value2;class2:k1 v1,k2 v2;" s1.write(0,0,"Hello",style1)#寫入字串 s1.write(1,0,True,style2)#寫入真值 s1.write(2,0,3.1415926);s1.write(2,1,-5);s1.write(2,2,xlwt.Formula("2*A3*ABS(B3)")); #使用公式計算 s1.write(3,0,'right',xlwt.easyxf("align:horiz right")) #調整對齊方式 x.save('example.xls') #儲存 '''

處理好的檔案:

這裡寫圖片描述

然後匯入圖靈機器人的知識庫:

這裡寫圖片描述

然後我們的訂閱號就可以自動識別啦,那些查詢的功能和詞典大同小異,我想應該也是這麼實現的吧。

4.實現效果

這裡寫圖片描述

參考:(主要是編碼轉換和正則表示式)

相關推薦

利用圖靈機人為公眾新增智慧問答知識庫功能

1.緒論 訂閱號很早就有了,我最近閒了無事就像探索探索可以怎麼玩。首先聯想到就是微軟小冰智慧問答系統,還有很早時候有一個公眾號提供了,根據c、c++函式名返回API具體用法的功能。那麼這兩個類似的功能如何實現呢。 2.接入智慧問答系統 首先個人需要申請

微信公文章排版:微信公眾新增4個新功能

改變 完成 png 新增 基本配置 dfa 縮小 理想 經理 微信公眾號排版對於新媒體運營是一個必知的課題。 就像中國人必須會說國語一樣。 說起排版,現在的排版都流行簡潔風格,那麽這裏也延續簡潔風。 我給大家列出了公眾號排版的一些基本配置,如有雷同,那就對了! 字號 建議

如何在微信公眾新增“歷史文章”按鈕

    微信公眾號作為一個面向大眾的超級媒介,受眾面非常之廣泛,並且門檻也不高,很多業餘愛好者將微信公眾號作為一個自媒體來苦心經營,釋出各種各樣的有價值的文章。為了方便讀者對往期的閱讀,在公眾號裡面設定一個“歷史文章”回顧連線十分有必要。不過還有許多小新不知道怎麼設定。

如何在微信 [[公眾]]新增小程式卡片

參考官方Demo 進入公眾號,選擇「關聯小程式」後,微信公眾號運營者用手機掃碼進行認證,並輸入小程式的 AppID 即可。騰訊地圖+小程式appID:wx7643d5f831302ab0 在這裡,可以選擇是否要把小程式放到公眾號資料頁,以及是否要給公

微信公眾新增天氣預報功能

首先開啟微信公眾平臺,登入自己的賬號, 然後將自己的外網的url路徑寫入,寫入token值,加入方式選為明文方式,並用fz上傳你要寫入的token值判斷是否正確。 <?php /** * wechat php test */ //define your

微信公眾新增關注後自動回覆圖文資訊(素材)

公眾號在被新增關注後其實不僅可以回覆單純的文字,還有一個效果更好的方式是直接回復圖文,在圖文資訊中傳達你的感謝和說明一些公眾號的情況。那麼微信公眾號新增關注後怎麼自動回覆圖文資訊?下面小編就為大家介紹一下,一起來看看吧! 方法/步驟 1、登入到微信公眾號的後臺後,在左

微信公眾首頁掃一掃功能

charset blog qrcode javascrip clas spa 返回 掃碼 htm 前話: 微信公眾號首頁掃一掃,如果是直接在首頁掃碼,直接跳到掃碼結果,我們開發者不能對掃碼結果做處理,比如不想讓它掃其他的除了自己的規定的二維碼,那麽就要對這個二維碼的掃碼結果

微信公眾開發工具包封裝常用接口等

1-1 獲取 targe 測試類 同步 用戶標簽 str 數據統計 短連接 微信公眾號開發套件涵蓋微信提供的大多數常用接口,具體實現功能如下:一、消息管理1、模板消息。支持單個用戶發送和批量發送,支持同步發送和一步發送。2、一次性訂閱消息。3、客服消息。包括下發文本、圖片等

2018微信運動公眾刷步數教程刷98800步

ima 如果 alt 說明 多公司 寵物狗 高效 程序 在線 炎炎夏日,人們都願意躲在空調房中,誰都不敢踏入陽光下半步。但是有一群人卻對此無可奈何,那就是在外跑業務的業務員們,為了工作在外中暑了那可真是得不償失,所以很多怕熱的員工往往都會在空閑之余找棵大樹嬉戲乘涼。 萬惡的

微信公眾token驗證成功但是自動回覆沒反應 / 該公眾服務故障

微信公眾號token驗證成功,但是自動回覆沒反應 / 該公眾號服務故障 微信公眾號token驗證成功,但是自動回覆沒反應 / 該公眾號服務故障 微信公眾號token驗證成功,但是自動回覆沒反應 / 該公眾號服務故障 先上程式碼,輸入?自動回覆時間 <?php heade

如何在微信公眾內實現圖書館座位預約功能

科技改變了你我的生活,讓我們的生活更加便利和高效。目前,智慧校園成為各方關注物件,科技的春風終於吹到了校園裡,各方廠家都想為更加高效便利的校園生活出一份力,不但為老師減輕負擔,也能讓孩子生活的更舒適。 說起校園生活那就不得不提預約這件事了,因為人數眾多,做什麼事情都要排隊預約想必每個人都

什麼是微信公眾客服系統魚塘微客服好用嗎?

什麼是微信公眾號客服系統,魚塘微客服好用嗎 魚塘微客服系統是一款可以幫助企業更好的運營及維護客戶(粉絲)的企業智慧微營銷SAAS雲 服務系統。它的主要特色有:多客服溝通、粉絲CRM功能、使用者來源統計以及資料分析、客服管理等多種功能為一體的自媒體營銷系統。 魚塘

公眾"雷人"回覆真的是機器人自動回覆嗎?

網上頻繁爆出有關政府公眾號出現“雷人”回覆,服務方事後解釋為機器人自動回覆,是政府部門找的藉口還是確有其事呢? 關於官方的致歉,網友是不認同的,有的認為是在推卸責任,有的認為,自動回覆根本沒有那麼智慧。 那麼微信公眾號自動究竟有沒有這麼智慧?答案是

微信公眾如何微信報名/預約功能小程式

微信報名小程式:開發後可以通過後臺自定義建立微信報名/線上預約/留言填表等表單功能活動小程式。 可以關聯公眾號選單和文章使用! 個人,企業使用者均可開發! 第一步:註冊小程小程式。 網址:https://mp.weixin.qq.com/ 【注意1】個人使用者註

公眾第三方平臺開發獲取授權公眾使用者資訊

公眾號第三方平臺的申請資料說明 授權發起頁域名:指公眾號在登入授權給第三方平臺方時的授權回撥域名,在公眾號進行登入授權流程中,必須從本域名內網頁跳轉到登入授權頁,才可完成登入授權。授權成功後會回撥授權時提供的URI,公眾平臺會檢查URI,必須保證URI所屬域名與服務

微信公眾開發的時候進行上傳多張手機相簿圖片上傳時候只上傳第一張其他圖片沒上傳解決方案

微信端的這個方法在使用的在你進行迴圈呼叫的時候他只接受第一張圖片,其他圖片就沒有了所以解決的方法就是一串串執行而不是並行 wx.uploadImage({ localId: '', // 需要上傳的圖片的本地ID,由chooseImage介面獲得 isSh

微信公眾分享朋友圈朋友詳情適合新手

大家好,因為我也是新手,所以寫的不好,請見諒;廢話不多說分享介面的步驟官方文件已經寫的很清楚了步驟一:繫結域名 先登入微信公眾平臺進入“公眾號設定”的“功能設定”裡填寫“JS介面安全域名”,這個域名很關鍵一定要寫好,很多坑都是在這裡步驟二:引入JS檔案 <script

微信公眾200個關鍵詞微星極光教你怎麼突破數量限制!

關鍵詞自動回覆的使用 在大部分微信公眾號運營者和使用者嚴重,公眾號最好用的功能應該就是關鍵詞自動回覆了。 既能節省客服成本,又能實現一定程度智慧化答覆(半匹配關鍵詞);同時回覆內容也十分多樣化(圖文並茂)。 但是預設情況下它只有200個,完全不夠用的。 微星極光——無限關鍵詞助手 關鍵詞自動回覆助手,打破

.NET dropdownlist控制元件繫結資料後新增“全部”項實現功能

DropDownList在從資料庫中得到資料來源繫結後,計劃為其新增一個"全部"或"不限"之類的項,新增方法現知的有兩種:   1:在指令碼中直接新增:<asp:ListItem Value="0">全部</asp:ListItem>,然後在DropDownLi

利用H5開發微信公眾

enc 兩個 寫入 iss mps rep ast htm chang 一、 首先授權配置 公眾號設置 --》功能設置 設置業務域名! 這裏的MP_verify_w7tdZrafqhkK9Mcj.txt文件,需要放到你項目的根目錄下,例子:你的項目war包叫 tes