对话机器人ChatBot综述

简介: 主要内容1. 模型简介基于生成 MLP基于搜索 Chatterbot、DocChat (TFIDF、向量距离、KDtree)基于API2.

主要内容

1. 模型简介

  • 基于生成 MLP
  • 基于搜索 ChatterbotDocChat
    (TFIDF、向量距离、KDtree)
  • 基于API

2. API 整理

3. 语料整理

4. 深度学习网络结构

项目 git 说明
ChatterBot https://github.com/gunthercox/ChatterBot 搜索
chatbot-retrieval https://github.com/dennybritz/chatbot-retrieval/ 生成
tf_chatbot_seq2seq_antilm https://github.com/Marsan-Ma/tf_chatbot_seq2seq_antilm anti-lm+attention
DeepQA https://github.com/Conchylicultor/DeepQA web
seq2seq https://github.com/farizrahman4u/seq2seq 封装seq2seq、attention

API 整理

图灵机器人

网址:http://www.tuling123.com/
特点:提供场景服务

image

API: http://openapi.tuling123.com/openapi/api/v2

{
    "reqType":0,
    "perception": {
        "inputText": {
            "text": "附近的酒店"
        },
        "inputImage": {
            "url": "imageUrl"
        },
        "selfInfo": {
            "location": {
                "city": "北京",
                "province": "北京",
                "street": "信息路"
            }
        }
    },
    "userInfo": {
        "apiKey": "",
        "userId": ""
    }
}

海知智能 ruyi.ai

如意如意随我心意,偏硬件
网址: https://ruyi.ai

image

image

API: https://api.ruyi.ai/v1/message?q=早安&app_key=APP_KEY&user_id=123456

{
    "code": 0,
    "msg": "ok",
    "result": {
        "_text": "早安",
        "msg_id": "5c439ac4-8efe-491c-b31a-fbd600811cfb",
        "intents": [{
            "parameters": {
                "service": "chat_kids"
            },
            "action": "早安",
            "name": "问候_早安",
            "result": {
                "text": "早上好,心情好吗",
                "type": "dialog"
            },
            "outputs": [{
                "type": "wechat.text",
                "property": {
                    "text": "早上好啊!"
                }
            }, {
                "type": "dialog",
                "property": {
                    "text": "早安,睡的好么",
                    "emotion": "calm"
                }
            }],
            "score": "1.0",
            "scoreColor": "c4",
            "is_match": 1,
            "id": "ecca5758-bbdf-4863-a5c1-d7089cc6f418"
        }],
        "meta_process_milliseconds": 65
    }
}

simsimi 小贱鸡

API: http://sandbox.api.simsimi.com/request.p

image

青云客

http://api.qingyunke.com/

 天气:msg=天气深圳
中英翻译:msg=翻译i love you
 歌词⑴:msg=歌词后来
 歌词⑵:msg=歌词后来-刘若英
  笑话:msg=笑话
 计算⑴:msg=计算1+1*2/3-4
 计算⑵:msg=1+1*2/3-4
 域名⑴:msg=域名qingyunke.com
 域名⑵:msg=qingyunke.com
 IP⑴:msg=归属127.0.0.1
 IP⑵:msg=127.0.0.1
 手机⑴:msg=归属13430108888
 手机⑵:msg=13430108888
智能聊天:msg=你好

语料整理

英文

cornell,不多说。

小黄鸡

200行,课件

1000条对话
https://github.com/warmheartli/ChatBotCourse/tree/master/chatbotv5/samples

何云超

小米员工

https://github.com/candlewill/Dialog_Corpus

  1. dgk_shooter_min.conv.zip

    中文电影对白语料,噪音比较大,许多对白问答关系没有对应好
    <font size="">

  2. The NUS SMS Corpus

    包含中文和英文短信息语料,据说是世界最大公开的短消息语料

  3. ChatterBot中文基本聊天语料

    ChatterBot聊天引擎提供的一点基本中文聊天语料,量很少,但质量比较高

  4. Datasets for Natural Language Processing

    这是他人收集的自然语言处理相关数据集,主要包含Question Answering,Dialogue Systems, Goal-Oriented Dialogue Systems三部分,都是英文文本。可以使用机器翻译为中文,供中文对话使用

  5. 小黄鸡

    据传这就是小黄鸡的语料:xiaohuangji50w_fenciA.conv.zip (已分词) 和 xiaohuangji50w_nofenci.conv.zip (未分词)

  6. 白鹭时代中文问答语料

    由白鹭时代官方论坛问答板块10,000+ 问题中,选择被标注了“最佳答案”的纪录汇总而成。人工review raw data,给每一个问题,一个可以接受的答案。目前,语料库只包含2907个问答。(备份)

  7. Chat corpus repository

    chat corpus collection from various open sources

    包括:开放字幕、英文电影字幕、中文歌词、英文推文

  8. 保险行业QA语料库

    通过翻译 insuranceQA产生的数据集。train_data含有问题12,889条,数据 141779条,正例:负例 = 1:10; test_data含有问题2,000条,数据 22000条,正例:负例 = 1:10;valid_data含有问题2,000条,数据 22000条,正例:负例 = 1:10

分析

shoot语料库 电影对白

E
M 京/戏/里/头/
M 应/该/有/好/些/个/活/生/生/的/人/物/
E
M 他/们/不/再/完/全/按/照/旧/的/模/式/做/戏/
M 更/不/按/旧/的/模/式/做/人/
M 再/不/像/苏/三/
M 受/了/那/么/大/的/委/屈/
E
M 只/能/申/诉/不/许/反/抗/
M 只/许/老/老/实/实/的/苏/三/
M 是/给/中/国/女/人/立/规/矩/的/
E
M 而/真/的/好/戏/
M 是/得/带/着/人/打/破/人/生/的/规/矩/
E
M 邱/先/生/
M 邱/先/生/
M 您/今/天/讲/的/挺/有/意/思/
M 有/些/道/理/很/深/
M 深/吗/
E
M 我/怎/么/觉/得/都/是/最/浅/显/的/道/理/
M 哦/我/这/有/两/张/戏/票/
M 不/知/道/您/有/没/有/功/夫/赏/光/
M 冯/董/事/长/
M 嗯/
M 您/猜/怎/么/着/啊/
M 怎/么/着/
M 您/那/位/朋/友/他/敢/情/是/个/
M 啊/那/什/么/
M 棒/槌/
M 棒/槌/
M 嗐/他/也/是/话/糙/理/不/糙/
M 京/戏/嘛/也/该/变/变/了/
M 啊/
E

SMS,短信没有对话

<message id="3"><text>今晚肥不肥家吃饭 如果要 提前半小时跟我缩一下</text><source><srcNumber>86d1672e124b86e55b5bd5e535991406</srcNumber><phoneModel manufactuer="Apple iPhone" smartphone="unknown"/><userProfile><userID>86d1672e124b86e55b5bd5e535991406</userID><age>unknown</age><gender>unknown</gender><nativeSpeaker>yes</nativeSpeaker><country>unknown</country><city>unknown</city><experience>2 to 3 years</experience><frequency>2 to 5 SMS daily</frequency><inputMethod>Pinyin</inputMethod></userProfile></source><destination country="unknown"><destNumber>unknown</destNumber></destination><messageProfile language="zh" time="unknown" type="send"/><collectionMethod collector="Tao Chen" method="Web-based Transcription" time="2010/11"/></message>
<message id="4"><text>周六要通宵打麻将 带点吃的喝的来</text><source><srcNumber>86d1672e124b86e55b5bd5e535991406</srcNumber><phoneModel manufactuer="Apple iPhone" smartphone="unknown"/><userProfile><userID>86d1672e124b86e55b5bd5e535991406</userID><age>unknown</age><gender>unknown</gender><nativeSpeaker>yes</nativeSpeaker><country>unknown</country><city>unknown</city><experience>2 to 3 years</experience><frequency>2 to 5 SMS daily</frequency><inputMethod>Pinyin</inputMethod></userProfile></source><destination country="unknown"><destNumber>unknown</destNumber></destination><messageProfile language="zh" time="unknown" type="send"/><collectionMethod collector="Tao Chen" method="Web-based Transcription" time="2010/11"/></message>
<message id="5"><text>我正在休息。明天有考试</text><source><srcNumber>5f2f98baf1b726ecff98f55845ad0285</srcNumber><phoneModel manufactuer="Nokia" smartphone="unknown"/><userProfile><userID>5f2f98baf1b726ecff98f55845ad0285</userID><age>unknown</age><gender>unknown</gender><nativeSpeaker>no</nativeSpeaker><country>unknown</country><city>unknown</city><experience>Less than 1 year</experience><frequency>2 to 5 SMS daily</frequency><inputMethod>Other</inputMethod></userProfile></source><destination country="unknown"><destNumber>unknown</destNumber></destination><messageProfile language="zh" time="unknown" type="send"/><collectionMethod collector="Tao Chen" method="Web-based Transcription" time="2010/11"/></message>

chatterbot语料

    "trivia": [
        [
            "谁是美国第37届总统?",
            "理查德·尼克松"
        ],
        [
            "肯尼迪总统哪年遇刺身亡?",
            "1963"
        ],
        [
            "太空竞赛是哪两个冷战对手之间,在20世纪航天能力的霸主地位上的竞争?",
            "苏联和美国."
        ],
        [
            "第一颗人造地球卫星的名称是什么?",
            "斯普特尼克1号"
        ],

白鹭时代

0 +++$+++ shenhua8369 +++$+++ unity导出插件现在去哪里下载?
1 +++$+++ GrantCheung +++$+++ https://github.com/egret-labs/egret-3d/tree/4f47a252af3436ef20078274fdf5eb955f0d0446/ExportTools
2 +++$+++ skyshow +++$+++ 如何删除子对象
3 +++$+++ 天神仔 +++$+++ this.removeChild(this.view)
4 +++$+++ arvin0 +++$+++ 可以关闭exml打包集成吗?
5 +++$+++ yjtx +++$+++ 你先看下 thm.json 有没有这个 exml 文件解析,如果有就不会再去加载 exml 了
6 +++$+++ haowangjiao +++$+++ 新手引导挖洞问题
7 +++$+++ yjtx +++$+++ rendertexture+blendmode  
8 +++$+++ raphael +++$+++ 升级到4.0.1 执行egret apitest出错
9 +++$+++ yjtx +++$+++ apitest 是2.0 升级2.5以上的检测命令,其他的时候不可以使用,并且 4.0 不支持这个。
10 +++$+++ henry19 +++$+++ 菜鸟提问:如何在项目中引入动画素材?
11 +++$+++ yjtx +++$+++ 先看下这些吧 http://developer.egret.com/cn/github/egret-docs/DB/dbLibs/createProject/index.html
12 +++$+++ 二两梦想家 +++$+++ 请教一下,通过微信公众号中的菜单指引到一个webapp中。
13 +++$+++ ladeng6666 +++$+++ 这个需要自己开发微信公众号后台,默认的公众号,是不允许在菜单里加外链的

华为数据

微博形式,发布+回复

0##祝 各位 朋友 2012 年 万事如意 !
1##在 家 看 某 电视台 跨年 晚会 倒数 , 想起 2000 年 的 那 个 千禧 时刻 , 作为 大四 的 学生 , 并且 在 chinaren 做 兼职 的 工作 , 与 一 群 同学 兼 同事 到 ' 乐杰士 ' 餐厅 吃 夜宵 。 学生 的 懵懂 和 刚刚 开始 工作 的 憧憬 相 交织 , 加上 2000 这么 一 个 整数 , 这 是 一 生 的 记忆 , 一 生 的 烙印 。 十二 年 后 , 再 祝 新年 快乐 !
2##2012 新年 钟声 即将 敲响 之际 , 向 关心 华为 手机 终端 的 博友们 、 朋友们 致 新年 的 祝福 ! 感谢 一 年 来 您 的 关心 与 宝贵 意见 , 这 是 我们 不断 改进 的 强大 动力 ! 几 天 之后 1 月 9 日 美国 拉斯维加斯 CES 展 上 , 华为 将 发布 让 世界 震惊 的 旗舰 智能 手机 ! 至少 三 个 世界 No.1 ! 感谢 追求 卓越 的 研发 、 测试 与 供应链 兄弟 姐妹们 的 辛勤 努力 ! !
0##祝 汤 教授 新年 快乐
1##谢谢 ; 祝 你 新年 快乐
2##祝 各位 朋友 2012 年 十 有 七八 事 如意 ! 看 我 数学 文化 学得 好 吧 …
3##喜欢 教授 的 内容 , 受益匪浅 , 祝 新年 快乐 !
4##数学 文化 , 代代 传承 !
5##祝愿 我 考研 数学 得 个好 成绩 ! ! !

李航微博数据集

stc_weibo同微博数据集,李航 诺亚方舟主任

ubuntu数据集

___dada____数据集

https://www.jianshu.com/p/c1865d2b911c

目前已有的数据统计(每天仍有增长-PS:由于平台封杀,已停止收集):
单轮:600w
多轮:800w

数据特点

  1. 可能有表情——eg:(o)/YES!
  2. 对话数据为短文本,字数平均长度在10以内
  3. 极少数的对话是其它语言,eg:英语、日语、韩语等
  4. 数据已去重
    定价
  5. 单轮定价:100w组/510元
  6. 多轮每百万组定价(平均轮数为4.40±):(4.4-1)*510=1734

备注

  1. 100w起售
  2. 购买时如果有能力证明自己是学生的,购买一律9折,证明方式:学生证或一卡通及身份证主页照片,承诺不保存照片
  3. 对于数据仍有疑问的,可留言,在下感激不尽
  4. 如果大家想切实看到对话效果,可考虑买多轮数据
  5. 有意购买,可联系客服qq:3492562997。恕不讨价

链接:https://www.jianshu.com/p/c1865d2b911c
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

自己动手做聊天机器人教程

https://github.com/warmheartli/ChatBotCourse

直接获取语料数据
如果你不想经历上面这么痛苦的过程,可以直接获取我建设好的三千万(实际是33042896条)语料文件,考虑到个人的人工成本以及数据本身的真正价值,形式上收取9.9元的苦力费以表支持,希望大家多多理解,也算是对我的鼓励,获取方式比较简单,点击下方支付按钮(微信客户端可用),支付9.9元,支付成功后在订单列表中点击“发送”会自动已通知消息形式发送至您的微信:

点击支付

小说 txt

黑道风云 东北往事

 “上午,我和红兵也回到了营地,到了营地,我再也按捺不住,拿起冲锋枪 
朝天狂扫了好久。大家都认为我要疯了。只有我知道,我还没疯,而且,这一辈 
子再也不会疯。这一夜过后,我也成了男人。” 
    “而红兵,把小花的头交给了军工,自己去睡了,睡的很踏实,一睡就睡了 
十几个小时。” 
    “小花火化时,我们都在,整容整的不错,四肢的假肢也跟真的差不多,拍 
照拍出来看起来还不错。红兵说的对,他把小花带回家了,他做到了。” 
    那年,赵红兵21岁,沈公子19岁半。 

人民的名义

侯亮平拍了拍赵德汉肩膀,能精确到百位数,你记忆力真好。
赵德汉道:好记性不如烂笔头嘛。侯处长,我给你说呀,我喜欢记账,谁给我多少钱,啥时候啥地方给的,每笔账都记得清清楚楚。
侯亮平眼睛一亮,马上追问:那账本呢?藏在啥地方了?
赵德汉迟疑一下,指了指天花板:主卧吊顶上边就是账本!
小韩迅速离去,不一会儿取回一摞包着塑料袋的账本来。
侯亮平翻看着账本,不由得惊叹:我的天哪,你是学会计的吧?
赵德汉带着哭腔道:不……不是,我是学采矿的,会计是自学的!
太专业了,你自学成才啊,老赵!真心话,我都想谢谢你了!
赵德汉可怜巴巴问:侯处长,那……那能算我坦白立功吧?

京东多轮对话

http://jddc.jd.com/

==汉语对话教材==

image

网络结构

seq2seq

        decoderOutputs, states = tf.contrib.legacy_seq2seq.embedding_rnn_seq2seq(
            self.encoderInputs,  # List<[batch=?, inputDim=1]>, list of size args.maxLength
            self.decoderInputs,  # For training, we force the correct output (feed_previous=False)
            encoDecoCell,
            self.vocabularySize,
            self.vocabularySize,
            embedding_size=self.args.embeddingSize,  # Dimension of each word
            feed_previous=bool(self.args.test)  # When we test (self.args.test), we use previous output as next input (feed_previous)
        )
image

attention

image

抗语言模型与互信息模型

在文献 Li et al., 2015 中提到,可以通过加入抗语言信息或者互信息来提高结果的BLEU和Diversity。

假设我们训练语料的第一句话是S,而其他人的回复是T,例如:

S:你今年几岁了?
T:野原新之助,5岁!

一般来说我们所训练提高的概率就是P(T|S),损失函数log(P(T|S))

抗语言(anti-language)损失函数
log(P(T|S)) - log(P(T))

也就是我们在提高P(T|S)的同时,需要抑制P(T)

解释是:如果T是经常出现的句子,例如“我不知道”, 那么P(T)就会很高。 所以我们需要人为降低P(T)出现的概率。

互信息损失函数
log(P(T|S)) + log(P(S|T))

解释是:提高S与T的相关性。如果T是与S完全无关的回复,例如“我不知道”,那么P(S|T)的概率就会很低,即相关性很低。 我们的目的是奖励S与T相关性(互信息高)的训练数据。

BTW:文献中结论为,抗语言模型比互信息模型的diversity高,而互信息模型的BLEU更高。

引至:https://github.com/qhduan/ConversationalRobotDesign

Beam search

image

tensorflow 1.0 版本实现seq2seq+attention+anti-LM+Beam-search

https://github.com/Marsan-Ma/tf_chatbot_seq2seq_antilm

未来

受对话+表情识别,确实很受启发。

蔚来汽车中控台,

自动给我推荐。

image

Vivo NEC

vivo NEX 遇流氓软件自动弹出摄像头,“别紧张我就想看看你在干嘛”

image
相关实践学习
阿里巴巴智能语音交互技术与应用
智能语音交互,是基于语音识别、语音合成、自然语言理解等技术,为企业在多种实际应用场景下,赋予产品“能听、会说、懂你”式的智能人机交互体验。适用于多个应用场景中,包括智能问答、智能质检、法庭庭审实时记录、实时演讲字幕、访谈录音转写等。 本课程主要讲解智能语音相关技术,包括语音识别、人机交互、语音合成等。 &nbsp;
目录
相关文章
|
2月前
|
机器学习/深度学习 自然语言处理 机器人
【RAG实践】基于LlamaIndex和Qwen1.5搭建基于本地知识库的问答机器人
LLM会产生误导性的 “幻觉”,依赖的信息可能过时,处理特定知识时效率不高,缺乏专业领域的深度洞察,同时在推理能力上也有所欠缺。
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
像GPT-4一样能看懂图文,李飞飞等人的具身AI给机器人造了个多模态对话框
像GPT-4一样能看懂图文,李飞飞等人的具身AI给机器人造了个多模态对话框
110 0
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
剑桥、腾讯AI Lab等提出大语言模型PandaGPT:一个模型统一六种模态
剑桥、腾讯AI Lab等提出大语言模型PandaGPT:一个模型统一六种模态
110 0
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
LLM 系列 | 09:吴恩达ChatGPT Prompt课程实践:以智能客服邮件为例
主要介绍如何用ChatGPT进行文本扩展,并以如何根据客户评价和情感撰写自定义电子邮件为例详细说明。
|
10月前
|
机器学习/深度学习 弹性计算 人工智能
【玩转AIGC系列】快速搭建AI对话机器人
本文介绍如何使用阿里云GPU云服务器,基于ChatGLM-6B语言模型快速搭建AI对话机器人。
【玩转AIGC系列】快速搭建AI对话机器人
|
11月前
|
人工智能 IDE 数据可视化
Prompt Sapper:基础模型的灵魂伴侣,AI服务的创新工场(2)
Prompt Sapper:基础模型的灵魂伴侣,AI服务的创新工场
308 0
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
ChatGPT 和对话式 AI 的未来:2023 年的进展和应用
人工智能(Artificial Intelligence)在过去一段时间以来以前所未有的速度快速发展。从自动化日常任务到重要提醒的设定,AI以各种方式渗透到我们的生活中。然而,在这个领域中迈出的最重要一步是ChatGPT。 ChatGPT被瑞银(UBS)评为“有史以来增长最快的消费者应用程序”,于2022年11月30日正式推出。仅在推出的两个月内,它就成功吸引了超过1亿用户,为对话式人工智能领域创造了奇迹。 对话式人工智能是一种创新技术,能够成功地模拟人类对话。因此,在客户服务、潜在客户生成以及其他与业务相关的任务中,它找到了广泛的应用。
217 0
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
DeepMind「通才」AI智能体Gato来了,多模态、多任务,受大语言模型启发
DeepMind「通才」AI智能体Gato来了,多模态、多任务,受大语言模型启发
205 0
|
11月前
|
人工智能 自然语言处理 机器人
《花雕学AI》34:用13种Prompt玩转AI聊天机器人—揭秘ChatGPT模型
如何提高聊天机器人的交互性和创造性呢?有没有一些技巧或方法可以帮助聊天机器人更好地生成不同类型的回复呢?答案是有的。这就是ChatGPT的13种Prompt。这些Prompt是一些用来引导聊天机器人生成不同类型的回复的技巧。它们可以帮助聊天机器人更好地理解用户的意图,提供更有趣、更有创意、更有逻辑的回复。 在本文中,我们将介绍ChatGPT的13种Prompt的概念和作用,并举例说明如何使用它们来和聊天机器人进行愉快和有意义的对话。
577 0
|
人工智能 搜索推荐 算法
ChatGPT:一款非常强大的对话机器人的相关介绍和传送门
目前大家对ChatGPT的好奇非常火爆,但如何向身边的人介绍ChatGPT是什么,有多么的awesome却比较难,因为使用起来有门槛,一方面需要国外的账号注册,另一方面需要比较好的英语功底。 所以本文收集一些国内外网友使用ChatGPT的一些案例,和一些传送门,让大家都更方便的认识到它。 ### 一、ChatGPT是什么 首先ChatGPT是一个**问答机器人**,在2022年12月1日Op
1279 1
ChatGPT:一款非常强大的对话机器人的相关介绍和传送门