Chat_Roboat

今天写了一个聊天机器人的网络服务,链接的机器人是图灵机器人。

首先,先来搭建自己的服务器,我们在服务端首先建立一个ServerSocket来创建一个网络服务,我们设置一个端口。在这个服务中,用到了线程池,如果不了解线程池的朋友请先看一下线程池的概念及用法。我们在服务器端还应该有一个类,我们让这个类继承自Thread。这个类有一个构造方法,其中的一个参数是一个Socket对象,这个对象是服务器端与客户端的链接。这个对象我们是通过上面的 继续阅读“Chat_Roboat”

Simple_Myself_Roboat

前面讲述了如何通过图灵接口调用图灵机器人,但是那个毕竟是人家的机器人,应该是通过机器学习出来的。那么我们如何自己编写一个属于自己的机器人呢。下面来给大家介绍一种简单的方法建立自己的机器人。

首先,一般的机器人对话是通过机器学习,首先是建立在分词的基础上,然后进行自认语言理解时候,产生相应的回复。那么我们如何子啊短时间之内建立自己的机器人呢。我们简历及的机器人肯定要有数据库,并且我们要从数据库中访问呢并返回相应的数据。 继续阅读“Simple_Myself_Roboat”

String_match

今天我了解了字符产匹配在生活中的应用,字符串匹配有三种方法,但是最简单和最容易理解的就是在你拥有一个充分大正确率极高的分词库,我们可以近几年的人民日报的报纸变成我们的分词库,人米日报的出错率是极低的,几乎不可能出错。

现在我只演示一下我写的一个很小的分词匹配系统,我的分词库是自己加上去的, 继续阅读“String_match”

git的使用

今天来给大家讲述一下如何创建git本地库,并将本地库同步到github远程仓库。

1. git init 初始化

2. git add . 将这个目录下的文件都加入到本地库中,也可以一个文件一个文件加入

3. git commit -m “介绍” 同步版本库 继续阅读“git的使用”

霍夫曼译码

霍曼译码比编码要简单一些,我们只需要做的操作就是,如果需要译码的二进制码现在的码为0那么我们到 左子树中进行搜索,如果为1那么我们都爱右子树中进行搜索,直到这个节点为叶节点为止,在回到根节点开始重复上面的操作。到二进制码终止退出,输出译码结果。代码子啊上面展示。重点代码: 继续阅读“霍夫曼译码”

霍夫曼编码

前面介绍了HufumanTree的建立,下面我们来讲解一下霍夫曼编码。看过穷前面写过的HufumanTree的建立,我在里面说过我们在编码的时候需要用到那个预存数组sum[],下面就来介绍一下这个预存数组的使用。

我们在预存数组里面存储了所有叶节点的信息,那么我们在编码的时候只需要从这个预存数组里面找到这个需要编码额节点,设置一个储存编码的数组。在这个数组 继续阅读“霍夫曼编码”

霍夫曼树的建立

前面介绍过最小堆的实现,那么现在我们来介绍一下堆的应用,霍夫曼树的建立的就是一最小堆的基础来建立的,这个算法的实现是用 c++ 实现的。

在正式建立我们的霍夫曼树之前我们需要一些其他的函数来作为辅助,这些辅助函数子啊这里就不一一介绍了,在这里给大家展示一下,若果喜欢的话,大家可以到我的github上查看,在这里,我就给大家展示一下这些函数的  ADT 继续阅读“霍夫曼树的建立”

堆排序

堆排序在一些问题中都很好用,就像霍夫曼编码就利用到了最小堆,优先队列也用到了堆,还有很多算法可以用堆来优化。霍夫曼编码及译码 的实现我们稍后会介绍具体的实现过程。下面开始讲述堆排序算法吧。

首先,先来讲述一下堆,在这里以最小堆为例讲述,极大堆类似。首先对是一棵虚拟树,但是并不是以树的形式来存储的,是一数组来存储的,我们的孩子节点的下 继续阅读“堆排序”

快速排序

插入排序和折半排序虽然相对冒泡排序要好一些,但是还是有些慢了,现在介绍一种更快的排序算法,那就是快速排序算法。

这个算法和折半排序有点像,但是这个算法不用辅助数组,我们而且是递归进行排序的,虽然都有折半的操作,但是这个算法的小路要快很多。下面就开始吧。

首先,快速排序的中心思想是,我们设定一个虚拟指针   i   让这个指着指向这个数 继续阅读“快速排序”