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

简介: 1.绪论订阅号很早就有了,我最近闲了无事就像探索探索可以怎么玩。首先联想到就是微软小冰智能问答系统,还有很早时候有一个公众号提供了,根据c、c++函数名返回API具体用法的功能。

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

相关文章
|
5月前
|
机器学习/深度学习 自然语言处理 机器人
【RAG实践】基于LlamaIndex和Qwen1.5搭建基于本地知识库的问答机器人
LLM会产生误导性的 “幻觉”,依赖的信息可能过时,处理特定知识时效率不高,缺乏专业领域的深度洞察,同时在推理能力上也有所欠缺。
|
5月前
|
自然语言处理 Kubernetes 机器人
基于OpenIM 实现聊天机器人功能
基于OpenIM 实现聊天机器人功能
193 0
|
3月前
|
Web App开发 机器人
公众号爆文仿写RPA机器人,采集,仿写,发布一条龙服务
公众号爆文仿写RPA机器人,采集,仿写,发布一条龙服务
233 1
|
2月前
|
自然语言处理 机器人 API
【Azure 机器人】微软Azure Bot 编辑器系列(4) : 使用语言生成功能[LG: Language Generation] (The Bot Framework Composer tutorials)
【Azure 机器人】微软Azure Bot 编辑器系列(4) : 使用语言生成功能[LG: Language Generation] (The Bot Framework Composer tutorials)
|
2月前
|
自然语言处理 机器人 API
【Azure 机器人】微软Azure Bot 编辑器系列(3) : 机器人对话流中加入帮助和取消按钮功能 (The Bot Framework Composer tutorials)
【Azure 机器人】微软Azure Bot 编辑器系列(3) : 机器人对话流中加入帮助和取消按钮功能 (The Bot Framework Composer tutorials)
|
4月前
|
运维 机器人 开发者
使用阿里云百炼通过appflow模板,组合钉钉机器人搭建个人知识库评测与感想
尝试构建个人助手机制,用阿里云百炼+AppFlow+钉钉机器人,花费两午休时间解决配置问题。百炼appid复制时多出空格致错,文档未提及,耗时排查。应用创建时模型选项限于max, plus, turbo,性价比高的qwen-long未上线。期望尽快修复bug和上线新模型以降低成本。附故障排查截图。
155 1
|
3月前
|
传感器 人工智能 搜索推荐
苹果首款搭载Apple Intelligence功能的新品类曝光——AI桌面机器人
苹果研发的AI桌面机器人,融合360度机械臂与显示屏,预示智能家居新篇章。具备生物识别、实时交互与HomeKit控制,挑战已有的智能音箱市场。面对竞争,苹果依赖创新与品牌影响力,有望引领潮流,开启更智能、个性化的家庭体验。
54 0
|
4月前
|
人工智能 小程序 机器人
开源一个RAG大模型本地知识库问答机器人-ChatWiki
准备工作 再安装ChatWiki之前,您需要准备一台具有联网功能的linux服务器,并确保服务器满足最低系统要求 • Cpu:最低需要2 Core • RAM:最低需要4GB 开始安装 ChatWiki社区版基于Docker部署,请先确保服务器已经安装好Docker。如果没有安装,可以通过以下命令安装:
259 0
|
人工智能 自然语言处理 算法
秒级开通,仅60元/月,即刻畅享私域知识库+LLM智能问答系统
chatGPT等LLM发展如火如荼,但实际使用中,时常出现胡说八道的问题。究其原因,是因为LLM存在知识茧房短板:模型一旦训练完成,对于数据样本外的知识知之甚少,在涉及企业私域知识等场景的问答效果不佳。由此,业界通常使用知识库+LLM方式来解决。部署LLM需要GPU,成本高昂。鉴于此,阿里云Lindorm多模数据库推出了智能问答体验版,秒级开通,仅60元/月。支持用户直接上传知识库文件,便捷构建具备私域知识+LLM的智能问答系统。欢迎加入钉钉群:35977898。参与功能试用和讨论。
626 3
秒级开通,仅60元/月,即刻畅享私域知识库+LLM智能问答系统
|
5月前
|
机器人
量化交易机器人系统开发详情源码/功能步骤/需求设计/稳定版
he development of a quantitative trading robot system involves multiple aspects, including strategy design, data processing, and transaction execution. The following is a detailed overview of the development strategy for a quantitative trading robot system:

热门文章

最新文章

下一篇
无影云桌面