为什么说Python是学习人工智能的第一语言
撰文|牛毅昕配图|刘欣
随着人工智能的热度越来越高,Python这个词我们听到的越来越多,伴随着Python这个单词一起涌入我们视线的还有很多句子:人生苦短,我用Python;Python-人工智能第一语言等等这样的句子。Python真的如大家说的那样。这么厉害么?编程语言那么多,常用的也有10多种,Python凭什么能够座上人工智能第一语言的宝座?
在所有编程语言里,Python并不算年轻,从1991年发布第一个版本,至今已经快30年了。最近几年,随着人工智能概念的火爆,Python迅速升温,成为众多AI从业者的首选语言。那么Python到底有什么魔力呢?我们从四个要点看看为什么Python能够成为人工智能的第一语言。01
简便,直观且通俗易懂,新手福音
跟其他语言比较,Python有着简便、直观且通俗易懂的优势。我们请出了以效率著称的C语言,和在业务层面有着优秀战绩的Java语言,让他们和Python做对比。我们分别使用3种语言写一个HelloWorld,看谁对新手更友好。
首先是C语言:嗯,代码量还行,不算{}一共有三行代码。但是,int,main,return这都是什么跟什么?对于新手来说,一开始只能强行记忆了,没有任何理解的成分,我们只需要明白printf()使用来输出的,其他的即使解释了,也跟天书没什么区别。接下来该Java语言上场了,同样还是输出HelloWorld的例子:
貌似比C语言的更复杂了。由于Java语言面向对象的特性,所以任何代码都必须要放在class里面,所以Java的固定代码比较多。同样对于新手来说,Java语言也是从记忆到理解的过程,也只能强行记忆。C和Java语言看上去对新手不太友好,那么Python语言会有什么表现呢?相同的例子,会不会有不一样的结果呢?
就一句话,想输出helloworld,一行print语句就够了。没有C和Java那么多格式和需要额外记忆的东西。所以谁是新手福利,谁是菜鸟杀手呢?02
编译VS解释
当然,仅仅是一个HelloWorld的话,C和Java的代码也多不了几行。可是不要忘了,C和Java都是编译型语言,代码运行前都必须先经过编译的环节。
什么是编译呢?原来,除了艰深难懂的机器语言,我们写下的程序计算机是无法直接读取的。而是要经过“翻译”的过程,计算机才能“理解”要执行的指令。充当“翻译官”的是编译器的程序。当高级语言源程序进入计算机,被编译器翻译成目标程序,以完成源码要处理的运算并取得结果。
对于C语言来说,在不同的操作系统上使用什么样的编译器,也是一个需要斟酌的问题。一旦代码被带到新的机器,运行环境和之前不同,还需要重新编译。有时候不同的计算机的编译环境有所区别,我们还得写文件修改源代码来满足编译环境的需求。
而Python是一门解释型语言。充当编程语言与机器语言的翻译官是解释器,解释器不会一次把整个程序翻译出来,而是每翻译一行程序叙述就立刻运行,然后再翻译下一行再运行,不产生目标程序。解释器就像是同声口译,编程语言每说完一句话,解释器立即翻译给计算机,计算机立即执行程序。
我们可以这么理解,Python语言写的程序是不需要装编译器来编译程序的,就可以直接运行。而C和Java则需要安装编译器,而且如果版本和环境有偏差的话,可能还需要修改源文件。所以对于新手来讲,使用Python这样的解释性语言更直观方便,而且也更省事。03
强大的AI支持库
Python的另一个优势在于它具备了强大的AI支持库,有了支持库,Python就像瑞士军刀一样,在各种各样的场合都可以用到。我们举几个例子,看看Python的支持库有多强大吧。
数据神器NumPy我们知道,不管是机器学习(MachineLearning,ML),还是深度学习(DeepLearning,DL),模型(Model)、算法(algorithm)、网络结构(structure)都可以用现成的,但数据是要自己负责I/O并传递给算法的。而各种算法,实际上处理的都是矩阵和向量。
NumPy由数据科学家TravisOliphant创作,支持维度数组与矩阵运算。结合Python内置的math和random库,堪称AI数据神器!有了它们,就可以放心大胆玩矩阵了!
使用NumPy,矩阵的转置、求逆、求和、叉乘、点乘……都可以轻松地用一行代码搞定,行、列可以轻易抽取,矩阵分解也不过是几行代码的问题。而且,NumPy在实现层对矩阵运算做了大量的并行化处理,通过数学运算的精巧,而不是让用户自己写多线程程序,来提升程序效率。有了Python这种语法简洁明了、风格统一;连矩阵元素都可以像在纸上写公式一样;写完公式还能自动计算出结果的编程语言,开发者就可以把工作重心放在模型和算法上,不用操心运行的问题了。
可视化库Matplotlib
gMatplotlib是Python的绘图库。它可与NumPy一起使用,提供了一种有效的MatLab开源替代方案。它也可以和图形工具包一起使用,如PyQt和wxPython。Matplotlib主要的作用就是强大的数据可视化~在做数据分析的时候可以用各种图表(条形图,散点图,条形图,饼图,堆叠图,3D图和地图图表…..)来展现分析结果。
可以说,Matplotlib在数据科学的领域是非常好用的数据可视化工具。Python是一门非常适合人工智能开发的语言,人工智能所需数据获取、数据分析、数据建模的流程都可以通过Python的类库轻松解决:
网络爬虫库:requests、scrapy、selenium、beautifulSoup
人工智能最重要的是数据,怎么获取巨大的数据量呢?Python的网络爬虫类库就派上用场了。爬虫是一种网络机器人,它可以像真人访问网络一样源源不断地抓取你所需要的信息。用Python制作网络爬虫,你就可以更方便地获得人工智能时代的最重要的资源——数据。
数据处理库:Numpy、scipy、pandas、matplotlib
网络爬虫获取海量数据,而处理和分析数据的工作Python同样可以解决。数据处理相关的库能够帮助你更加直观地分析数据。这些库分别可以进行矩阵计算、科学计算、数据处理、绘图等操作,有了它们,你就可以一步步开始把数据处理成你需要的格式。
建模库:nltk、keras、sklearn
完成数据可视化处理后,我们就需要利用这些数据进行建模。这些库主要是用于自然语言处理、深度学习和机器学习的,把这些用好了,你的模型就构建出来了。
这些类库为我们提供了从数据收集、数据处理和建立模型的一条龙操作,掌握它们,我们就可以在人工智能的海洋里畅游了。
04
规模效应
根据StackOverflow网站的来自高收入国家问题阅读量的主要编程语言趋势统计,可以看出,近年来,Python已然成为目前发达国家增长最快的编程语言。
由图可见,2012年之后,对于Python相关问题的浏览量迅速增长,从时间上看,这一趋势正好和近几年人工智能的发展重合。语言简单易学,支持库丰富强大,这两大支柱从早期就奠定了Python的发展基础。技术的普及推广就像滚雪球,早期的积累相对缓慢,一旦过了临界点,就是大爆发。别的不说,就说现在tensorflow,caffe之类的深度学习框架,主体都是用Python来实现,提供的原生接口也是Python。
正是由于上述4个特点,Python在人工智能领域中已经遥遥领先其他的语言占据了头把交椅。
Python有如此之多的功能,我们从哪开始学习起呢?不用担心,Python为教育者专门准备了“turtle海龟绘图”类库,它继承了经典的编程学习语言Logo,是由浅入深的好工具。今天,科技学堂Python学习课程《Python-Turtle图形编程入门》正式开课,点击下面小程序报名课程吧!
科技学堂科技辅导员在线学习平台
微信号:sciclass
欢迎订阅和分享中国青少年科技辅导员协会
CACSI1981在看
人工智能与自然语言处理技术
随着人工智能技术的发展,我们生活中的许多应用都带上了“AI”的色彩,比如可以用计算机帮翻译外文文档。但有时候人工智也能会出一些小故障,变得不那么智能,尤其在语言处理方面。那么我们怎样才能让人工智能变成真正的“智能”呢?自然语言处理技术就是一个重要的方式。
自然语言处理技术(即natural language processing,简称NPL)是人工智能的一个重要分支,其目的是利用计算机对自然语言进行智能化处理。基础的自然语言处理技术主要围绕语言的不同层级展开,包括音位(语言的发音模式)、形态(字、字母如何构成单词、单词的形态变化)、词汇(单词之间的关系)、句法(单词如何形成句子)、语义(语言表述对应的意思)、语用(不同语境中的语义解释)、篇章(句子如何组合成段落)7个层级。这些基本的自然语言处理技术经常被运用到下游的多种自然语言处理任务中,如机器翻译、对话、问答、文档摘要等。
科学家研究自然语言处理技术(NLP)的目的是让机器能够理解人类语言,用自然语言的方式与人类交流,最终拥有“智能”。AI时代,我们希望计算机拥有视觉、听觉、语言和行动的能力,其中语言是人类区别于动物的最重要特征之一,语言是人类思维的载体,也是知识凝练和传承的载体。在人工智能领域,研究自然语言处理技术的目的就是让机器理解并生成人类的语言,从而和人类平等流畅地沟通交流。
但现在的人工智能常常和我们的人工评价有很大的出入,这也是基于AI算法的自动评测面临的最大挑战:如何与人工评价保持一致?应对这个挑战需要解决很多问题。以智能阅卷为例:如何制定电脑适用的评测标准?人工智能如何应对语言的千变万化?如何设计阅卷综合性的评测指标?有科学家认为,大数据与富知识双轮驱动或许能成为解决问题的关键,即在大数据驱动的基础上加入富知识驱动,可以突破现在智能语言处理技术上的瓶颈。
总而言之,自然语言技术的发展说明人工智能技术的核心还是在“人”。“人工智能和机器学习带给决策过程的支撑和信心将使创新加速,但这并不意味着人类的缺席。人们仍然需要定义分析的起点、标注主题并从收集的信息中提取所需数据。”
本文由北京市第六十五中学一级教师李岩进行科学性把关。
科普中国中央厨房新华网科普事业部科普中国-科学原理一点通联合出品更多精彩内容,请下载科普中国客户端。作者:和卓琳 [责任编辑:魏承瑶]人工智能,语言与伦理
为积极响应国家低碳环保政策,2021年秋季学期开始,中国大学MOOC平台将取消纸质版的认证证书,仅提供电子版的认证证书服务,证书申请方式和流程不变。
电子版认证证书支持查询验证,可通过扫描证书上的二维码进行有效性查询,或者访问https://www.icourse163.org/verify,通过证书编号进行查询。学生可在“个人中心-证书-查看证书”页面自行下载、打印电子版认证证书。
完成课程教学内容学习和考核,成绩达到课程考核标准的学生(每门课程的考核标准不同,详见课程内的评分标准),具备申请认证证书资格,可在证书申请开放期间(以申请页面显示的时间为准),完成在线付费申请。
认证证书申请注意事项:
1. 根据国家相关法律法规要求,认证证书申请时要求进行实名认证,请保证所提交的实名认证信息真实完整有效。
2. 完成实名认证并支付后,系统将自动生成并发送电子版认证证书。电子版认证证书生成后不支持退费。