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

简介: “AI“聊天程序之极限思想的应用v1.0

前言


高中时我就曾有过要写一个智能聊天的程序,但当时能力有限,也只是一个想法而已.


刚步入大学时学习了”图灵测试“相关知识,刚好我也在学习编程,便又产生了兴趣,但被困于实现方法,当初并未实现,当时我能想到且能实现但方法有两种:


1.编写关键词数据库,用户输入之后与关键词匹配,然后重组再输出。我认为不够智能,便作罢了.


2.根据汉字的语法结构来分析处理,但其工程量太庞大,也作罢了.


但在几次数学课的学习以后,被我找到了问题的解决方法,于是便有了这篇文章.



1.分析与架构设计

1.1 需求分析


用户角度分析:


当用户输入字符串以后,得到一个极限接近于人类语言的字符串回复.


技术角度分析:


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


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


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


1.2 逻辑概念模型设计

1.2.1 总体架构设计


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


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

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

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


程序结构图:4a3061b4294c47c9bbf9d3df3adc4679.png



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

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


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


1.2.2 语言库系统设计


Mysql逻辑模型 表结构如下:

2.png


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

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


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


1.2.3 对话系统设计


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

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


3.png



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.匹配语法结构;

实现思路如下:

4.png


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


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

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

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


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

如下:

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

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


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


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

实现方法如图:

4a3061b4294c47c9bbf9d3df3adc4679.png


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

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


2.2 JAVA代码实现方法


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

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


1.引用数据库中的数据

2.引用用户输入的数据


6.png


例此时:

输入数据:hadoop

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

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

7.png


第一次匹配运算后:

输入数据:hadoop

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


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

8.png


第二次匹配运算后:

输入数据:hadoop

数据库数据: haopp hadpod hadoops aodpw


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

9.png


第三次匹配运算后:

输入数据:hadoop

数据库数据:hadoops


回馈举例:

https://hadoop.apache.org/


实现对话系统代码的模块化设计:

10.png


在主方法中实现整个程序:


11.png


3. 后记


1.在终端中运行该程序:

12.png


2.程序功能展示:

13.png



拓展思考:

既然是使用极限思想探究出的算法,那么是否可以将该算法使用其他语言实现?

又可怎么应用?


答:

可以,基于HTML/CSS/Javascript可以在网页上实现该功能;

使用Python实现更为惊艳,使用基于itchat的Python库:wxpy,可实现类似“微软小冰”的智能聊天程序,尽管不可能达到“微软小冰”的智能程度,但也能当个玩具。

将此程序使用Python重新开发,安置于服务器上,对外提供访问接口,任何开发者只需要调用接口便能使用,开发者向Api Post数据由服务器处理并Get回馈。

设计框架如下:

14.png


目录
相关文章
|
3天前
|
存储 移动开发 Linux
Linux系统之部署h5ai目录列表程序
【5月更文挑战第3天】Linux系统之部署h5ai目录列表程序
23 1
|
3天前
|
人工智能 NoSQL atlas
Atlas Vector Search:借助语义搜索和 AI 针对任何类型的数据构建智能应用
一切才刚刚开始,MongoDB 致力于提供优秀的开发者数据平台,助力开发者打造新一代 AI 赋能的应用
1572 2
|
3天前
|
人工智能 NoSQL atlas
Fireworks AI和MongoDB:依托您的数据,借助优质模型,助力您开发高速AI应用
我们欣然宣布MongoDB与 Fireworks AI 正携手合作让客户能够利用生成式人工智能 (AI)更快速、更高效、更安全地开展创新活动
1577 1
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
构建未来:AI在持续学习系统中的创新应用
【5月更文挑战第11天】 随着人工智能(AI)技术的飞速发展,其在教育领域的应用日益增多。特别是在持续学习系统(Lifelong Learning Systems, LLS)中,AI技术正开启着个性化和适应性教学的新篇章。本文聚焦于AI在LLS中的创新应用,探讨了机器学习、自然语言处理和认知建模等关键技术如何共同作用于构建智能化的学习环境。文章旨在分析当前AI技术在持续学习领域的最新进展,并展望其对未来教育模式的影响。
|
3天前
|
机器学习/深度学习 人工智能 自动驾驶
构建未来:AI在持续学习系统中的创新应用
【5月更文挑战第11天】 在人工智能的迅猛发展浪潮中,一个不断进化的分支便是AI在持续学习系统中的应用。本文旨在探讨AI技术如何革新持续学习系统,并分析其在不同领域的创新实践。文章首先界定了持续学习系统的概念,随后深入解析了深度学习、强化学习以及转移学习等关键技术在其中的作用。通过案例分析,展示了这些技术如何在医疗诊断、自动驾驶及个性化教育中发挥至关重要的角色。最终,讨论了面临的挑战与未来的发展趋势,为读者提供了一个关于AI在持续学习领域未来可能展开的蓝图。
20 1
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术的应用和发展
【5月更文挑战第10天】AI技术的应用和发展
24 1
|
3天前
|
人工智能 搜索推荐 机器人
AI在医疗领域的突破性应用:重塑未来的医疗格局
【5月更文挑战第9天】AI正重塑医疗领域,从医学影像诊断的自动化提升准确性,到个性化治疗方案的制定,智能手术与机器人辅助提高手术安全,预防性医学借助大数据预测健康风险,智能调度优化医院运营,以及聊天机器人和虚拟健康助手提供便捷咨询。这些突破性应用将深刻改变医疗格局,实现更高效率和精度的医疗服务。
|
3天前
|
人工智能 自然语言处理 搜索推荐
AI在医疗领域的应用有哪些?
【5月更文挑战第7天】AI在医疗领域的应用有哪些?
52 6
|
3天前
|
机器学习/深度学习 存储 人工智能
构建未来:AI在持续学习系统中的应用
【5月更文挑战第6天】 随着人工智能技术的飞速发展,AI在各个领域中的应用越来越广泛。本文将探讨AI在持续学习系统中的应用,以及如何通过这种技术提高教育质量和效率。我们将讨论AI如何帮助个性化学习,提供实时反馈,以及如何通过数据分析预测学生的学习进度。此外,我们还将探讨AI在教育中的潜在挑战和解决方案。
19 3
|
3天前
|
人工智能 搜索推荐
【AI 生成式】描述生成式 AI 在医疗保健和药物发现中的应用
【5月更文挑战第4天】【AI 生成式】描述生成式 AI 在医疗保健和药物发现中的应用

热门文章

最新文章