如何让计算机更好的识别理解、理解模拟自然语言
2021-07-01
什么是编程语言?
让我们先谈谈什么是自然语言。
自然语言是我们人类交流的语言,包括汉语、方言、日语、英语、韩语等
自然语言所能承载的信息非常丰富。编程语言越高级,就越接近自然语言。
不同的自然语言有自己独特的语法规则。
近年来,计算机科学家一直在研究如何让计算机更好地识别、理解和模拟自然语言。这是人工智能的一个研究领域。
人类发明计算机的时候,根据计算机的特性,最早的计算机语言是为it而设计的——机器语言。这种语言的组合非常简单,只有0和1两个数字,也是计算机唯一的语言。
中文的基本单位是部首,英文的基本单位是26个字母。
一个原因。
为了方便大家理解,我们将电脑拟人化。
假设计算机要加11和22,程序员需要对计算机“说”:“1”。
计算机会理解。原来是我加了11和22。
后来大家都觉得这太麻烦了。人类就是这样。因为他们觉得上楼很麻烦,所以他们发明了电梯。
因为走路很麻烦,所以我发明了汽车、火车和飞机。
对电脑说机器语言太麻烦,容易出错。如果您输入一个 0 或一个 1,则含义可能会完全改变。
学计算机的前辈觉得机器语言太不好用了,不知道折腾了多久,搞了汇编语言。
如果用汇编语言告诉计算机将 11 和 22 相加,会容易得多。
mov ax, ax,22
Ax 是一个“小盒子”,用于在计算机内部存储数字。它有一个专业术语叫做“注册”。你有没有想过在超市里放置一个临时存放的柜子?这是事实。
但是计算机不能理解汇编语言,因为计算机只能理解机器语言。
于是,大牛又设计了一种叫做“汇编器”的程序。
汇编器相当于翻译,将人类编写的汇编代码翻译成机器语言,让计算机能够理解。
汇编语言的每一行都对应机器语言,所以汇编语言可以理解为人类可以直接理解的“机器语言”。
这个过程听起来很简单计算机编程语言发展史,但实际上非常复杂。
但是人类还是觉得麻烦,能不能简单点?
所以我设计了一些编程语言,让我们以C语言为代表。
11+22
计算机自然更不能理解,所以前辈设计了一个程序,叫做“编译器”。
编译器负责将高级语言翻译成汇编语言。
然后汇编程序将汇编语言翻译成机器语言。
有些朋友不禁要问:高级语言不能直接转换成机器语言吗?为什么先用编译器再用汇编器?
这个问题水平很高,技术上可以实现,但不是最优解。为什么?以后学了就知道编译原理了。
机器语言设计,只能使用0和1.
但不同的公司设计了不同的机器语言标准。
让计算机将两个数字相加:
A公司设计的机器指令为:公司设计的机器指令为:0001
所以如果一个程序使用了 A 公司汇编器生成的机器指令,它就不能在 B 公司的机器上运行。
自然,一些协会诞生了,或者权威组织和企业,为了避免这样的事情发生,会制定一些行业设计标准。
让大家参考某个标准来设计机器语言。不要随意定义。和谐是人类一直追求的东西,但有时为了赚钱,有人会破坏和谐。
x86 架构和 Arm 架构是两种标准指令集(机器语言)的缩写。
假设您购买了联想笔记本电脑,而您的朋友购买了戴尔笔记本电脑。
但是两台电脑的USB接口大小不一。您的 U 盘只能插入指定的笔记本电脑。多么可怕的事情。
(不过USB很快就会被淘汰,当你插上USB口的时候,有没有感觉?第一次插,总不能一直插)
第一张图是现在的USB口,第二张图是近几年流行的USB-type-C接口。正负极都可以插。
手机充电器会逐渐切换到第二个界面。
一段历史记载在圣经中。起初,上帝创造了人类,语言是相通的,但由于人类过于骄傲,想要共同建造巴别塔计算机编程语言发展史,上帝允许人类讲不同的语言,使人类无法交流。失败了,从现在开始散落一地。
这个事件为世界上不同语言和种族的出现提供了解释。
直到今天,我相信一个全球统一的编程语言是许多人曾经或现在所珍视的梦想。
以上只是为了帮助你理解编程语言,用拟人化的思维很简单的给你讲解原理。
慢慢地,计算机不限于计算,当它们可以处理简单的文本和图片信息时。
人类开始考虑计算机是否可以连接到互联网,信息是否可以共享和传输。有了这个洞察力之后,不知道大牛们要花多长时间去摆弄互联网。
随着科学技术的进步,各种电子设备如手机、嵌入式设备应运而生,包括网站一词的诞生。为了满足不同行业的需求,也诞生了很多相关的行业。
在这个过程中,发明了各种编程语言来解决这些需求。当然还有各种硬件厂商,比如CPU、显卡、鼠标、显示器、键盘、打印机、扫描仪、音频、路由器……
编程语言也被一一发明。
、Php、Html、Css、.Net、...截至今天,人类历史上已经有数百种编程语言。今天,它能够生存而不被淘汰,说明确实有市场需要它。
带操作系统、数据库...
随着代码量的增加,开发软件的难度越来越大。以软件工程、代码管理、多人协同开发、设计模式、框架、类库等概念为目的,目的是为了简化从开发难度中诞生的相关技术,保证开发质量,管理开发进度。
但是这个过程非常困难,也不容易。我们今天的计算机技术需要顶尖智商科学家的大量脑力才能拥有。
上面提到的任何一个专业术语都可以写成一本几千页的书来详细描述它们。它们是无穷无尽的,浩瀚的,浩瀚的,深邃的。未来每个人都会随着接触计算机而变得越来越有见识。多么微不足道和卑微。
在某些行业,年轻时学到的知识,到了年老时仍然可以使用。只要坚持下去,就会积累和积累丰富的经验。年龄越大,它就越受欢迎。
但在计算机行业,有些技术被淘汰的非常快。你可能没有彻底学习。使用几年后,某种技术就会被淘汰。如果你追求这些肤浅的技术,你的经验将不会继续累积。随着年龄的增长,经验和记忆力下降,无法为年轻人而战,中年危机……
这个行业有深度有深度,需要广度和广度。
就设计而言,有建筑设计、工业设计、程序设计、动画设计。建筑设计可以分为桥梁设计、古建筑设计、现代建筑设计……动画设计又可以分为2D、3D,各种我不知道的专业术语……程序设计也可以告诉你很多。 ..
不要向东方学习,向西方学习。最后,是半桶水。先选择一个领域深入,到一定的层次,再考虑相关领域的拓展,也就是广度的发展。
说到这里,不仅仅是计算机行业、医疗行业、生物行业、天文学、物理学和力学。
有些人觉得自己学的太多了,觉得很绝望!
不要害怕,活在当下,害怕无限的真相,害怕进入每一寸的喜悦。
不要和别人比较,要和自己比较。今天的自己比昨天的自己好一点吗?
我每天进步一点点。这就是为什么我一开始就强调你必须冷静下来,否则你走不远。即使留在这个行业,走纯技术路线也是不现实的。
而且,单纯走技术路线更难取得更高的成绩。说得具体一点,赚大钱有点难。
在这个人际关系、情绪管理、人际交往的时代,职业发展路线也是多元化的。结合自己的个性,找到适合自己的道路,才是王道。
《从零开始学编程》系列《极客编程》和《计算机简谈》的《计算机原理》摘录