让我们一起来开发专属于自己的聊天机器人吧 :)
聊天机器人顾名思义,自然应该是用来和大家一起聊天的,所以它至少也应该能对我们说的话做出反应。比如对它说“你好”时,它也能回复“你好”之类的话。
要实现这样的功能其实方法有很多,其中一个简单的方式就是在程序内部直接使用大量的例如“判断”等流程控制类命令来实现,以下是代码实例:
以上代码是一个用于演示的实例子程序。
调用子程序,并将用户回复的文本传参到子程序中时,子程序就会根据传入的内容返回相应的文本,如果子程序中没有与传入的文本对应的内容,就会返回“没有相应的回复”,如传入的内容是“谢谢”时,就会返回“没有相应的回复。
当然单纯的只在程序内部的去根据文本的内容去判断并回复对于一款标准的聊天机器人是不够的,至少我个人认为,一款标准的聊天机器人至少也应该能对自身知识进行更新,而这对于将全部知识都存到其内部的程序而言,是不容易去实现的,所以我们就需要将知识储存在程序外部。
这样一来,第一步应该就是先创建出一个可以用于储存知识数据的简单的数据库,我们就叫它简易数据库吧 :)
储存知识总不是瞎存的,所以我们选择一个比较简单的储存格式,每两行文本为一组,每组以换行隔开,如:
第一组:1
第一组:2
第二组:1
第二组:2
第三组:1
第三组:2
对于这种存储格式,我们可以把它直接写到.txt文件中:
(记得最后要有两个换行)
大家可以根据以上格式多保存点数据到.txt文件中,每组的文字都重复也没关系,大家要是创建(保存)好了,就可以来看看以下的代码:
代码很简单,是吧 :)
不过我们还是讲一下吧,在代码中首先设置了下随机数,然后读入了数据库,判断数据库中有没有和用户输入的文本一样的文本,没有的话直接返回,如果有的话则再判断它是不是和每组数据第一行(如:“第一组:1”)的文本一样,如果是的话就依次将它们的第二行(如:“第一组:2”)储存到一个数组中,最后判断一下这个数组中有没有存入数据,有的话就根据先前设置的随机数,将这个数组从1到它的成员总数之间的数据随机取出一个并返回,没有的话,同样直接返回“没有相应的回复”。
对了,要是稍微改动一下的话,或许还能实现简单的“模糊识别”,要是大家成功了,记得截图告诉我一下啊 :P
接下来我们就可以把它移植到我们开发的第一个聊天机器人中,而且只需要在确定按钮被单机时添加上以下代码就可以了:
我们开发出的第一款聊天机器人:
聊天机器人顾名思义,自然应该是用来和大家一起聊天的,所以它至少也应该能对我们说的话做出反应。比如对它说“你好”时,它也能回复“你好”之类的话。
要实现这样的功能其实方法有很多,其中一个简单的方式就是在程序内部直接使用大量的例如“判断”等流程控制类命令来实现,以下是代码实例:
以上代码是一个用于演示的实例子程序。
调用子程序,并将用户回复的文本传参到子程序中时,子程序就会根据传入的内容返回相应的文本,如果子程序中没有与传入的文本对应的内容,就会返回“没有相应的回复”,如传入的内容是“谢谢”时,就会返回“没有相应的回复。
当然单纯的只在程序内部的去根据文本的内容去判断并回复对于一款标准的聊天机器人是不够的,至少我个人认为,一款标准的聊天机器人至少也应该能对自身知识进行更新,而这对于将全部知识都存到其内部的程序而言,是不容易去实现的,所以我们就需要将知识储存在程序外部。
这样一来,第一步应该就是先创建出一个可以用于储存知识数据的简单的数据库,我们就叫它简易数据库吧 :)
储存知识总不是瞎存的,所以我们选择一个比较简单的储存格式,每两行文本为一组,每组以换行隔开,如:
第一组:1
第一组:2
第二组:1
第二组:2
第三组:1
第三组:2
对于这种存储格式,我们可以把它直接写到.txt文件中:
(记得最后要有两个换行)
大家可以根据以上格式多保存点数据到.txt文件中,每组的文字都重复也没关系,大家要是创建(保存)好了,就可以来看看以下的代码:
代码很简单,是吧 :)
不过我们还是讲一下吧,在代码中首先设置了下随机数,然后读入了数据库,判断数据库中有没有和用户输入的文本一样的文本,没有的话直接返回,如果有的话则再判断它是不是和每组数据第一行(如:“第一组:1”)的文本一样,如果是的话就依次将它们的第二行(如:“第一组:2”)储存到一个数组中,最后判断一下这个数组中有没有存入数据,有的话就根据先前设置的随机数,将这个数组从1到它的成员总数之间的数据随机取出一个并返回,没有的话,同样直接返回“没有相应的回复”。
对了,要是稍微改动一下的话,或许还能实现简单的“模糊识别”,要是大家成功了,记得截图告诉我一下啊 :P
接下来我们就可以把它移植到我们开发的第一个聊天机器人中,而且只需要在确定按钮被单机时添加上以下代码就可以了:
我们开发出的第一款聊天机器人: