“AI“聊天程序之极限思想的应用v1

1.需要一个处理数据的程序

2.数据处理需要数据依据,所有需要一个存储数据的地方

3.存储的数据需要一个数据来源

1.2 逻辑概念模型设计

1.2.1 总体架构设计

根据需求分析得知,我们可以将整个架构设计出三个功能组件:

组件一: 名称:训练系统;负责训练数据,生产出能被使用的数据,通过Python/Java实现;

组件二: 名称:语言库系统;负责存储数据,存储需要被使用的数据,通过Mysql实现;

组件三: 名称:对话系统;负责处理数据,调用存储的数据并结合用户输入的数据给出回馈,通过JAVA实现;

程序结构图:

在这里插入图片描述

之所以分成三个独立组件,主要原因是为了避免数据来源、数据存储、数据处理之间可能存在的相互依赖。

建立组件之间的特定接口来负责传输数据,可提高程序可读性、与编写专注度,还可达到具体问题具体分析,减少调试时间。

注:该文章主要分析:如何通过极限思想实现对话系统的核心功能,固不深入探究训练系统与语言库系统的实现

1.2.2 语言库系统设计

Mysql逻辑模型 表结构如下:

在这里插入图片描述

列一负责存储提问数据,列n+1负责存储回答。

逻辑上按列式存储设计,物理上按行式存储编写。

注:为了数据使用方便,固不进行范式化

1.2.3 对话系统设计

通过双线程调用两个方面的数据:用户输入数据,语言库系统数据;

将这两个数据进行匹配计算,之后再将计算所生成的数据回馈给用户。

在这里插入图片描述

2. 极限思想实现对话核心功能


2.1 物理模型设计

到此为止,整个程序的架构设计完成了,接下来就是对话系统的核心功能了。

除了从“前言”中提到的“两个实现方法”以外,我似乎从数学课中找到了第三种实现方法——应用极限思想实现数据匹配计算功能。

极限不只是高等数学中的一个知识点,极限是一种思想,它源于生活。

在计算机中要实现对极限对描述也是很简单的,例如求0~10以内的正整数中,极限接近于10的数,那么只需要遍历1~9的正整数,再求出其最大值,便求出来了。

R语言实现:

/*

整型数组x区间:【0,10),整型y=10

求x中极限接近y的数值的位置

*/

x = c(0,1,2,3,4,5,6,6,7,8,9)

which(a==max(a),arr.ind=TRUE);

要实现对话系统,我们不可能通过训练系统提前将所有可能发生的情况,全部都训练出数据进行存储,如果这样,编写对话系统哪还需要思考,只需要写一堆条件语句就好,但其工作量也是不容小嘘。

我们知道每个人的说话方式都不同,例如我们常用的问候语之一,南方人会说“你吃饭了吗?”,北方人则可能会说“饭你吃了吗?”,语言结构不同,但这两句话表达的意思都是一样的,其结构都是有规律的,都表示询问“吃饭”这个行为是否为过去时,所以在计算机里我们不能让数据以相等的方式来进行匹配,我们需要应用极限的思想,让两个数据极限可能相等即可。

通过训练系统我们可以找到语言的结构规律,对话系统负责分析输入数据的语言结构与数据库中已有数据的语言结构最为接近的数据项。

“你吃饭了吗?”这句话语言结构最接近的还是“饭你吃了吗?”吧~ 不可能是“现在几点了?”,如果是,那么则是开发者的问题。

所以将这种思想扩展一下:

只要当我们用户输入的数据,无限接近于数据库中某一数据元素中的某一数据项时,即当“输入”、“已存在”的两个数据极限相等时,便可以根据该数据项找到与之有依赖关系的其他数据,程序便能灵活的作出回馈了。

那么可以通过三个方法来求如输入数据的极限:1.匹配字符串长度;2.匹配字符串关键字;3.匹配语法结构;

实现思路如下:

在这里插入图片描述

既然当两个数据匹配成功时计算机认为其相等,“有极限近似”的两个数据,那么肯定也会“极限不近似”的数据、“极限远离”的两个数据,在数学领域我并不知道有没有这个概念,我理解“极限远离”其含义为:逻辑上存在关联,但在物理上并未建立联系的两个数据的关系,描述为极限远离。

如果这样理解,那么便能让程序更加“智能”

一般情况下当用户输入数据时程序会基于回馈,此时回馈数据是输入数据经过极限匹配所得出来的运算结果。

程序回馈完数据以后,就相当于程序运行了一次,并且完全结束了,第一次运算与第二次运算显然是无任何联系的。

但从逻辑上是存在关联的,把用户也想像成另一个对话系统即可,用户得到了输入数据(该输入数据为对话系统的回馈),经过用户大脑的对话系统判断以后会给程序一个回馈(该回馈为对话系统的输入数据)

如下:

对话系统回馈数据 == 用户输入数据

对话系统输入数据 == 用户回馈数据

我设计的对话系统给出的回馈是经过计算的、是有道理依据的,用户给出的回馈更是经过强大计算的、有道理依据的、因为其本就是经过人类思考的。

既然训练系统中的依据是“人”,那么在对话系统中也可以把“人的思考”纳入程序计算中的一部分。

实现方法如图:

在这里插入图片描述

从“极限远离”的两个数据中分析其可能存在逻辑联系,并建立其物理连接,保存至数据库中。

让程序“边用边学”、“边学边用”,实现自我迭代。

2.2 JAVA代码实现方法

使用JAVA实现 依赖与极限思想的数据匹配 算法

需要注意的是整个数据匹配算法,就是一个极限的实现:找出极限相等的两个数据

1.引用数据库中的数据

2.引用用户输入的数据

在这里插入图片描述

例此时:

输入数据:hadoop

数据库数据: asfdsdsa sfdggtr dv haoppd aodpw dsafdffwfcdcwe hadpod hadoops


第一步数据匹配,进行字符串匹配

在这里插入图片描述

第一次匹配运算后:

输入数据:hadoop

数据库数据: asfdsdsa sfdggtr haoppd aodpw hadpod hadoops


第二步数据匹配,进行关键字匹配

在这里插入图片描述

第二次匹配运算后:

输入数据:hadoop

数据库数据: haopp hadpod hadoops aodpw


第三步数据匹配,进行语法结构匹配

在这里插入图片描述

第三次匹配运算后:

输入数据:hadoop

数据库数据:hadoops

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

更多面试题

**《350页前端校招面试题精编解析大全》**内容大纲主要包括 HTML,CSS,前端基础,前端核心,前端进阶,移动端开发,计算机基础,算法与数据结构,项目,职业发展等等

资料获取方式:点击蓝色传送门免费获取

、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

[外链图片转存中…(img-yWkFTsPB-1713608907311)]

更多面试题

**《350页前端校招面试题精编解析大全》**内容大纲主要包括 HTML,CSS,前端基础,前端核心,前端进阶,移动端开发,计算机基础,算法与数据结构,项目,职业发展等等

资料获取方式:点击蓝色传送门免费获取

[外链图片转存中…(img-kJTNzluY-1713608907311)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值