利用图灵机器人为公众号添加智能问答,知识库功能

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.实现效果

参考:(主要是编码转换和正则表达式)

http://bbs.csdn.net/topics/100172542

(正则表达式中汉语范围出自上面帖子的六楼,网上搜到的[\u4e00-\u9fa5]这个不是很好使,还请大牛指点一二)

http://blog.chinaunix.net/uid-21633169-id-4396998.html

xlwt使用介绍:

http://blog.csdn.net/wangkai_123456/article/details/50457284

时间: 2024-10-05 03:07:13

利用图灵机器人为公众号添加智能问答,知识库功能的相关文章

公众号怎么接入客服功能?

微信公众号怎么接入客服功能?为丰富公众号的服务沟通能力,提高服务质量,微信为公众号提供客服消息能力,以便公众号用户(关注粉丝)可以方便快捷地与公众号运营方进行沟通.用户可使用公众号客服消息功能,与公众号的客服人员进行沟通. 公众号需要实现客服消息功能可以通过接入鱼塘微客服来实现,为什么要接入鱼塘微客服呢? 微信公众号 后台消息 由于公众号本身没有消息提醒机制,所以当有客户进入公众号咨询时,只有实时刷新后台才能看到,这就导致很多客户消息回复不及时,接入鱼塘微客服后,可以实现消息即时像QQ一样闪烁提

weixin-java-mp集成×××公众号自带客服功能

电脑端登录公众号管理后台,[添加功能插件]开通客服功能,输入"人工客服"接入客服热线 weixin-java-mp集成×××公众号自带客服功能代码 增加TextBuilder.java文件 内容如下: public class TextBuilder extends AbstractBuilder { @Overridepublic WxMpXmlOutMessage build(String content, WxMpXmlMessage wxMessage,WeixinServic

手把手教你怎么免费为微信公众号接入智能客服

不少做微信的小伙伴在研究其他人的微信公众号时一定发现了,无论是什么时候,只要发送内容给公众号就会收到回复,并且发送"火车票"."天气预报"."听首歌"等文字的时候,还能收到公众号的信息回复,这些事怎么做到的呢?其实很简单!下面我就把方法分享给大家吧,有需要的小伙伴们自行设置. 首先不得否定的是,为公众号接入这么一个"智能客服"是很有必要的,毕竟想要运营好微信,随时的回答粉丝提出的各种问题与粉丝时时互动对提高粉丝粘性是非常有必要

利用nat123解决微信公众号对接服务器必须为80端口的问题

背景:最近公司接到做一个微信公众号的项目,需要我们提前做一个demo,好做项目的整体评估:我们公司本身有个云服务器,但没有备案,所以80端口还被电信屏蔽着,就想到利用nat123做80端口的映射:(外网80端口访问服务器上非80端口的应用) 前提:存在对接微信服务器的服务,云服务器本地访问地址为:http://localhost:8080/wxtest/WechatServlet 目标:外网通过80端口访问上述地址: 一:下载nat123 1:地址:http://www.nat123.com/P

利用H5开发微信公众号

一. 首先授权配置 公众号设置 -->功能设置 设置业务域名!  这里的MP_verify_w7tdZrafqhkK9Mcj.txt文件,需要放到你项目的根目录下,例子:你的项目war包叫 test.war ,里面包含了src,WEB-INFO两个文件夹,则把MP_verify_w7tdZrafqhkK9Mcj.txt放到这两个文件夹的同级目录下;即现在test.war下有两个文件夹一个txt文件:src,WEB-INFO,MP_verify_w7tdZrafqhkK9Mcj.txt. 后面就需

微信公告:公众平台面向认证的媒体类型公众号公测原创声明功能

为维护作者权益,鼓励优质内容产生,微信公众平台今日上线原创声明功能,暂时面向微信认证的媒体类型公众帐号公测. 一.申请原创声明 原创者可在微信公众平台后台的“素材管理”处进入“图文消息”编辑,点击“申请原创声明”.并填写提交原创声明的信息. 申请原创声明的文章在群发成功后,原创声明系统会对其进行智能比对,系统比对需要一定时间(半小时以内),比对通过后,系统会自动对文章添加“原创”标识. 二.原创声明热点问题Q&A Q.微信公众平台为何要上线原创声明功能?A:一直以来,微信都希望真正有价值的内容能

微信公号文章排版:微信公众号新增4个新功能

微信公众号排版对于新媒体运营是一个必知的课题. 就像中国人必须会说国语一样. 说起排版,现在的排版都流行简洁风格,那么这里也延续简洁风. 我给大家列出了公众号排版的一些基本配置,如有雷同,那就对了! 字号 建议正文设置为14px或15px,过大字号没有美感,过小字号易疲劳.备注字体可以设置为12px. 我一般是用14px或15px作为正文,12px作为辅助. 色号 正文建议设置为#3f3f3f.#3f3f3f(#5f5f5f和#4f4f4f也可以),标注为#888888.正文要淡一点也可以直接正

自助公众号的客服提醒功能开发与实现

本周我公司的技术人员做了一个有技术含量的一个新功能:客服功能.此功能主要用于公众号客服提醒,比如客户的商家认证审核通过,用户购买商品成功等功能提醒,可以有效减少网站项目开发所必要的资金节约.1.接口代码.接口代码如下:public function reply_customer(){$touser=I('touser');$content=I('text');$id=I("id");//更换成自己的APPID和APPSECRET$APPID="";$APPSECRE

公众号开发之客服功能的群发消息功能

本周我们做了一个有技术含量的一个新功能:客服功能的群发消息功能.此功能主要用于公众号客服群发提醒,比如客户的商家认证审核通过,用户购买商品成功等功能提醒,可以有效减少网站项目开发所必要的资金节约. 接口代码. 接口代码如下: public function reply_customer(){ $mtime=strtotime("-1 hour"); $where['add_time']=array("gt",$mtime); $res=M("fa_need