求 QQ 智能 自动聊天 机器人 易语言盗qq源码源码 !最好是能在QQ群里使用的!

欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 12025 人关注过本帖
标题:来,你也可以用 C 语言写一个聊天机器人
等 级:论坛游侠
帖 子:64
专家分:157
&&问题点数:0&&回复次数:13&&&
来,你也可以用 C 语言写一个聊天机器人
你是不是一直在面对着枯燥的 C 语言特性、摸索着前人写过的各种算法,不是因为自己的兴趣,而是依靠自身的毅力,学得很苦吧。
好吧,我们找一个好玩一点的东西,一起来写个聊天机器人吧。我知道只是个简单的例子,看完也不一定真有人去写一个聊天机器人,但如果你真想去写的话,这里的内容,可以帮助你实现你的目标。
噢,可以直接去看原文:
/articles/36106/chatbot-tutorial
聊天机器人就是让你能够对他做出动作(姿势或语言),然后他会根据你的行为对你做出反应的程序。当你为它输入自然语言中的一些问题的话,他也可以给你一些看起来有意义的同一语言的回答。
下面是一个非常基本的聊天机器人的代码,很简单的几行:
// Program Name: chatterbot1
// Description: this is a very basic example of a chatterbot program
// 描述:这是一个聊天机器人程序一个非常基本的例子
// Author: Gonzales Cenelia
#include &iostream&
#include &string&
#include &ctime&
int main()
&&& std::string Response[] = {
&&&&&&&&&我听到了!&,
&&&&&&&&&你是在和我说话。&,
&&&&&&&&&继续说,我在听。&,
&&&&&&&&&哈哈,真是非常有趣的谈话。&,
&&&&&&&&&后来呢?&
&&& srand((unsigned) time(NULL));
&&& std::string sInput = &&;
&&& std::string sResponse = &&;
&&& while(1) {
&&&&&&&&std::cout && &&&;
&&&&&&&&std::getline(std::cin, sInput);
&&&&&&&&int nSelection = rand() % 5;
&&&&&&&&sResponse = Response[nSelection];
&&&&&&&&std::cout && sResponse && std::
&&& return 0;
很简单吧?但要做到适当的响应,它可能是很难写的一个程序。1951,图灵提出了一个测试,现在被称为图灵测试。在这项测试中,测试的双方,一方是计算机程序,另一方是一个真正的人类,法官用来判断谁是真正的人。
聊天机器人一般被认为属于弱人工智能领域,但这并不意味着聊天机器人就没有潜力。由于它相当的简单,正好方便大多数爱好者去尝试实现更智能的聊天机器人,所以说,它会是是一个伟大开始的地方。
现在,让我们回到我们以前的程序,前面那个代码存在哪些问题?
嗯,是的。我们可以清楚地看到,这个程序是不是真的想理解用户所说的,相反,他只是随机选择一个已经存在的句子,响应每次用户在键盘上的输入。我们还注意到,程序经常重复自己。这其中的一个原因是由于内含的句子数据库非常小(只有5句),另一个原因是我们还没有实现任何机制来控制这个不太受欢迎的行为。
那,我们该如何改进它?很简单,我们需要引入关键词匹配。
关键词只是一个句子(不一定是完整的)或一个字,程序可以从用户的输入里识别出来,然后让自己的回答对应它。让我们继续改进刚才那个聊天机器人,现在我们称其为 chatterbot2。
// Program Name: chatterbot2
// Description: this is an improved version
// of the previous chatterbot program &chatterbot1&
// this one will try a little bit more to understand what the user is trying to say
// 描述:这是一个改进版,相比于前面的聊天机器人程序,这次将尝试一点点更多地理解用户说什么
// Author: Gonzales Cenelia
#pragma warning(disable: 4786)
#include &iostream&
#include &string&
#include &vector&
#include &ctime&
const int MAX_RESP = 3;
typedef std::vector&std::string&
vstring find_match(std::string input);
void copy(char *array[], vstring &v);
typedef struct {
&&& char *
&&& char *responses[MAX_RESP];
record KnowledgeBase[] = {
&&& {&WHAT IS YOUR NAME&,
&&& {&嗯,我的名字叫瞎聊。&,
&&&&&&你可以叫我公主...,是啊,我是大小姐啊。&,
&&&&&&为什么你想知道我的名字?下一步是要交换QQ号吗?&}
&&& {&HI&,
&&& {&哈哈,好啊!&,
&&&&&&你是谁?&,
&&&&&&噢,你好!&}
&&& {&HOW ARE YOU&,
&&& {&我干得不坏!&,
&&& &你干得怎么样?&,
&&& &为什么你会想知道我是怎么做到的?&}
&&& {&WHO ARE YOU&,
&&& {&我尼玛就是个程序啊。&,
&&&&&&表说,我知道你知道我是谁。&,
&&&&&&为什么还问?&}
&&& {&ARE YOU INTELLIGENT&,
&&& {&是的,当然是的。&,
&&&&&&你是怎么想的?&,
&&&&&&哈哈,事实上我确实很聪明。&}
&&& {&ARE YOU REAL&,
&&& {&这对你真的是个问题吗?&,
&&&&&&啥意思啊?你?&,
&&&&&&我尽量让我看起来像个真正的人类。&}
size_t nKnowledgeBaseSize = sizeof(KnowledgeBase)/sizeof(KnowledgeBase[0]);
int main() {
&&& srand((unsigned) time(NULL));
&&& std::string sInput = &&;
&&& std::string sResponse = &&;
&&& while(1) {
&&&&&&&&std::cout && &&&;
&&&&&&&&std::getline(std::cin, sInput);
&&&&&&&&vstring responses = find_match(sInput);
&&&&&&&&if(sInput == &BYE&) {
&&&&&&&&&&&&std::cout && &和你聊天太愉快了,下次再来!& && std::&&
&&&&&&&&&&&&
&&&&&&&&else if(responses.size() == 0)&&{
&&&&&&&&&&&&std::cout && &我,我,我不确定我是否能理解你说的是什么 ...& && std::
&&&&&&&&else {
&&&&&&&&&&&&int nSelection = rand()&&% MAX_RESP;
&&&&&&&&&&&&sResponse =&&&responses[nSelection]; std::cout && sResponse && std::
&&& return 0;
// make a&&search for the&&user's input
// inside the database of the program
vstring find_match(std::string&&input) {
&&& for(int i = 0; i & nKnowledgeBaseS&&++i) {&&
&&&&&&&&if(std::string(KnowledgeBase[i].input) == input) {
&&&&&&&&&&&&copy(KnowledgeBase[i].responses, result);
&&&&&&&&&&&&
void copy(char&&*array[], vstring &v) {
&&& for(int i = 0;&&i & MAX_RESP; ++i) {
&&&&&&&&v.push_back(array[i]);
现在,程序有了点进步了,它可以尽可能地选择一些接近的句子来做出反应。你可以尝试输入:
WHAT IS YOUR NAME, HOW ARE YOU, ARE YOU INTELLIGENT ... 等语句来测试。
搜索更多相关主题的帖子:
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
吐槽:你这明显是C++
来 自:宜昌
等 级:职业侠客
帖 子:215
专家分:338
你醒了?快起来敲代码!!
等 级:论坛游侠
帖 子:56
专家分:164
自己写过程序解闷还是可以的,宅男们
来 自:重庆邮电大学
等 级:论坛游民
帖 子:173
专家分:30
显然这是c plus plus
C语言好难啊~
等 级:论坛游侠
帖 子:64
专家分:157
&&各位大神,好专业啊,真是惭愧死我了。 得改,一定要改改,C 版绝不用带尾巴的代码。
允许我用代码框简单改写成 C 代码,当然,我努力要写得看起来比 C++ 更加简单,最起码也不能比原始 C++ 更复杂,C 是优秀语言嘛&&
全部代码包括了上面的二个例子代码:
程序代码:
#include &stdlib.h&
#include &stdio.h&
#include &time.h&
#include &string.h&
&&& 描述:这是一个聊天机器人程序一个非常基本的例子 chatterbot1
void chatterbot1()
&&& char* Response[] = {
&&&&&&&&&我听到了!&,
&&&&&&&&&你是在和我说话。&,
&&&&&&&&&继续说,我在听。&,
&&&&&&&&&哈哈,真是非常有趣的谈话。&,
&&&&&&&&&后来呢?&&&&
&&& srand((unsigned) time(NULL));
&&& char sInput[<font color=#] = {<font color=#};
&&& char* sResponse = NULL;
&&& while(<font color=#) {
&&&&&&&&printf(&&&);
&&&&&&&&scanf(&<font color=#s&, &sInput);
&&&&&&&&fflush(stdin);
&&&&&&&&if(sInput[<font color=#] == <font color=#x71 || sInput[<font color=#] == <font color=#x51 ){
&&&&&&&&&&&&printf(&和你聊天真的很愉快, 下次再见。\n&);
&&&&&&&&&&&&_sleep(<font color=#0);
&&&&&&&&&&&&break;
&&&&&&&&int nSelection = rand() % <font color=#;
&&&&&&&&sResponse = Response[nSelection];
&&&&&&&&printf(&%s\n&, sResponse);
&&& 描述:这是一个改进版聊天机器人程序 chatterbot2
const int MAX_RESP = <font color=#;
typedef struct {
&&& char *
&&& char *responses[MAX_RESP];
record KnowledgeBase[] = {
&&& {&WHAT IS YOUR NAME&,
&&& {&嗯,我的名字叫瞎聊。&,
&&&&&&你可以叫我公主...,是啊,我是大小姐啊。&,
&&&&&&为什么你想知道我的名字?下一步是要交换QQ号吗?&}
&&& {&HI&,
&&& {&哈哈,好啊!&,
&&&&&&你是谁?&,
&&&&&&噢,你好!&}
&&& {&HOW ARE YOU&,
&&& {&我干得不坏!&,
&&& &你干得怎么样?&,
&&& &为什么你会想知道我是怎么做到的?&}
&&& {&WHO ARE YOU&,
&&& {&我尼玛就是个程序啊。&,
&&&&&&表说,我知道你知道我是谁。&,
&&&&&&为什么还问?&}
&&& {&ARE YOU INTELLIGENT&,
&&& {&是的,当然是的。&,
&&&&&&你是怎么想的?&,
&&&&&&哈哈,事实上我确实很聪明。&}
&&& {&ARE YOU REAL&,
&&& {&这对你真的是个问题吗?&,
&&&&&&啥意思啊?你?&,
&&&&&&我尽量让我看起来像个真正的人类。&}
size_t nKnowledgeBaseSize = sizeof(KnowledgeBase)/sizeof(KnowledgeBase[<font color=#]);
record* find_match(char*&&input) {
&&& for(int i = <font color=#; i & nKnowledgeBaseS&&++i) {
&&&&&&&&if( !stricmp( KnowledgeBase[i].input, input ) )
&&&&&&&&&&&&return &KnowledgeBase[i];
&&& return NULL;
void chatterbot2()
&&& srand((unsigned) time(NULL));
&&& char sInput[<font color=#] = {<font color=#};
&&& char* sResponse = NULL;
&&& while(<font color=#) {
&&&&&&&&printf(&&&);
&&&&&&&&scanf(&<font color=#[^\n]&, &sInput);
&&&&&&&&fflush(stdin);
&&&&&&&&record* responses = find_match(sInput);
&&&&&&&&if(sInput == &BYE&) {
&&&&&&&&&&&&printf(&和你聊天太愉快了,下次再来!\n&);
&&&&&&&&&&&&_sleep(<font color=#0);
&&&&&&&&&&&&break;
&&&&&&&&else if( !responses )&&{
&&&&&&&&&&&&printf(&我,我,我不确定我是否能理解你说的是什么 ...\n&);
&&&&&&&&else {
&&&&&&&&&&&&int nSelection = rand()&&% MAX_RESP;
&&&&&&&&&&&&sResponse = responses-&responses[nSelection];
&&&&&&&&&&&&printf(&%s\n&, sResponse);
// 太久不写代码了,我不确信 main 是否是这样声明的...
int main()
&&& chatterbot1();
&&& chatterbot2();
&&& return <font color=#;
等 级:新手上路
楼上改的很好
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:731
专家分:1546
怎么样能嵌入到QQ群,QQ的聊天界面中去呢?
我恰巧最近在做这么个功能的东西
学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Black Cat&&&&&&Hello Tomorrow~
等 级:贵宾
威 望:204
帖 子:15386
专家分:65251
以下是引用AleTiff在 13:15:36的发言:
&&各位大神,好专业啊,真是惭愧死我了。 得改,一定要改改,C 版绝不用带尾巴的代码。
允许我用代码框简单改写成 C 代码,当然,我努力要写得看起来比 C++ 更加简单,最起码也不能比原始 C++ 更复杂,C 是优秀语言嘛&&
全部代码包括了上面的二个例子代码:
#include&&
#include&&
#include&&
#include&&
&&& 描述:这是一个聊天机器人程序一个非常基本的例子 chatterbot1
void chatterbot1()
&&& char* Response[] = {
&&&&&&&&&我听到了!&,
&&&&&&&&&你是在和我说话。&,
&&&&&&&&&继续说,我在听。&,
&&&&&&&&&哈哈,真是非常有趣的谈话。&,
&&&&&&&&&后来呢?&&&&&&
&&& srand((unsigned) time(NULL));
&&& char sInput[5] = {0};
&&& char* sResponse = NULL;
&&& while(1) {
&&&&&&&&printf(&&&);
&&&&&&&&scanf(&%4s&, &sInput);
&&&&&&&&fflush(stdin);
&&&&&&&&if(sInput[0] == 0x71 || sInput[0] == 0x51 ){
&&&&&&&&&&&&printf(&和你聊天真的很愉快, 下次再见。\n&);
&&&&&&&&&&&&_sleep(1000);
&&&&&&&&&&&&
&&&&&&&&int nSelection = rand() % 5;
&&&&&&&&sResponse = Response[nSelection];
&&&&&&&&printf(&%s\n&, sResponse);
&&& 描述:这是一个改进版聊天机器人程序 chatterbot2
const int MAX_RESP = 3;
typedef struct {
&&& char *
&&& char *responses[MAX_RESP];
record KnowledgeBase[] = {
&&& {&WHAT IS YOUR NAME&,&&
&&& {&嗯,我的名字叫瞎聊。&,
&&&&&&你可以叫我公主...,是啊,我是大小姐啊。&,
&&&&&&为什么你想知道我的名字?下一步是要交换QQ号吗?&}
&&& {&HI&,&&
&&& {&哈哈,好啊!&,
&&&&&&你是谁?&,
&&&&&&噢,你好!&}
&&& {&HOW ARE YOU&,
&&& {&我干得不坏!&,
&&& &你干得怎么样?&,
&&& &为什么你会想知道我是怎么做到的?&}
&&& {&WHO ARE YOU&,
&&& {&我尼玛就是个程序啊。&,
&&&&&&表说,我知道你知道我是谁。&,
&&&&&&为什么还问?&}
&&& {&ARE YOU INTELLIGENT&,
&&& {&是的,当然是的。&,
&&&&&&你是怎么想的?&,
&&&&&&哈哈,事实上我确实很聪明。&}
&&& {&ARE YOU REAL&,
&&& {&这对你真的是个问题吗?&,
&&&&&&啥意思啊?你?&,
&&&&&&我尽量让我看起来像个真正的人类。&}
size_t nKnowledgeBaseSize = sizeof(KnowledgeBase)/sizeof(KnowledgeBase[0]);
record* find_match(char*&&input) {&&
&&& for(int i = 0; i & nKnowledgeBaseS&&++i) {
&&&&&&&&if( !stricmp( KnowledgeBase.input, input ) )
&&&&&&&&&&&&return &KnowledgeB
&&& return NULL;&&
void chatterbot2()
&&& srand((unsigned) time(NULL));
&&& char sInput[20] = {0};
&&& char* sResponse = NULL;
&&& while(1) {
&&&&&&&&printf(&&&);
&&&&&&&&scanf(&%19[^\n]&, &sInput);
&&&&&&&&fflush(stdin);
&&&&&&&&record* responses = find_match(sInput);
&&&&&&&&if(sInput == &BYE&) {
&&&&&&&&&&&&printf(&和你聊天太愉快了,下次再来!\n&);
&&&&&&&&&&&&_sleep(1000);
&&&&&&&&&&&&
&&&&&&&&}&&
&&&&&&&&else if( !responses )&&{
&&&&&&&&&&&&printf(&我,我,我不确定我是否能理解你说的是什么 ...\n&);
&&&&&&&&else {
&&&&&&&&&&&&int nSelection = rand()&&% MAX_RESP;
&&&&&&&&&&&&sResponse = responses-&responses[nSelection];
&&&&&&&&&&&&printf(&%s\n&, sResponse);&&
&&&&&&&&}&&
// 太久不写代码了,我不确信 main 是否是这样声明的...
int main()
&&& chatterbot1();
&&& chatterbot2();
&&& return 0;
} 来学习的 谢谢
等 级:新手上路
回复 楼主 AleTiff
LZ我想学习,目前C语言是最有效(编程简单,实现效果比较多)的编写机器人聊天软件的工具吗?&&好像还有易语言也可以编写,那个效果如何?
版权所有,并保留所有权利。
Powered by , Processed in 0.076677 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved查看: 14443|回复: 196
自动聊天机器人易语言源码
阅读权限70
在线时间 小时
签到天数:5 天
是否带模块:
不是原创是我找的
适当的看看给点钱吧
(54.64 KB, 下载次数: 1323)
15:21 上传
点击文件名下载附件
下载积分: 精币 -1 枚
(68.47 KB, 下载次数: 227)
15:20 上传
(118.65 KB, 下载次数: 228)
15:20 上传
您可以选择打赏方式支持楼主
本帖被以下淘专辑推荐:
& |主题: 158, 订阅: 25
阅读权限30
在线时间 小时
结帖率: (0/2)
haishi 还是谢谢分享··
阅读权限30
在线时间 小时
结帖率: (1/5)
可以联接QQ聊天吗?
阅读权限30
在线时间 小时
不错 就是没什么意思
阅读权限50
在线时间 小时
结帖率: (2/3)
看看,应该有点意思
阅读权限30
在线时间 小时
什么都要看那看
阅读权限70
在线时间 小时
貌似还不错啊
阅读权限30
在线时间 小时
结帖率: (1/1)
还不错啊{:3_239:}
阅读权限20
在线时间 小时
结帖率: (0/1)
呵呵,顶楼主了!
阅读权限50
在线时间 小时
签到天数: 1 天结帖率: (16/19)
看上去来可以,支持一下楼主
精易论坛 - 有你更精彩 /1
仅剩3名额,顶级移动安全工程师辅导你,系统掌握android框架、原理、协议及漏洞分析
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
揭阳精易科技有限公司申明:我公司所有的培训课程版权归精易所有,任何人以任何方式翻录、盗版、破解本站培训课程,我们必将通过法律途径解决!
公司简介:揭阳市揭东区精易科技有限公司致力于易语言教学培训/易语言学习交流社区的建设与软件开发,多年来为中小企业编写过许许多多各式软件,并把多年积累的开发经验逐步录制成视频课程供学员学习,让学员全面系统化学习易语言编程,少走弯路,减少对相关技术的研究与摸索时间,从而加快了学习进度!
防范网络诈骗,远离网络犯罪
违法和不良信息举报电话,企业QQ: ,邮箱:@
Powered by
粤公网安备 25求 QQ智能自动聊天机器人 易语言源码! 能在QQ群里用的-学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
求 QQ智能自动聊天机器人 易语言源码! 能在QQ群里用的
来源:互联网 发表时间: 22:35:47 责任编辑:李志喜字体:
为了帮助网友解决“求 QQ智能自动聊天机器人 易语言源码! 能在QQ群里用的”相关的问题,学网通过互联网对“求 QQ智能自动聊天机器人 易语言源码! 能在QQ群里用的”相关的解决方案进行了整理,用户详细问题包括:
能在QQ群里用的 自动聊天插件 这样的易语言源码谁还有。一九六三四五四零二一 @qq?谢谢了?可以发给我一份么求 QQ智能自动聊天机器人 易语言源码
,具体解决方案如下:解决方案1:,还是开源的,功能强大直接搜索酷Q吧解决方案2:
这种软件网上不是多的嘛
1个回答1个回答1个回答2个回答1个回答1个回答1个回答
相关文章:
最新添加资讯
24小时热门资讯
Copyright &#169; 2004- All Rights Reserved. 学网 版权所有
京ICP备号-1 京公网安备02号

我要回帖

更多关于 易语言盗qq源码 的文章

 

随机推荐