要說近幾年科技圈什么最火熱,無疑就是人工智能,各大科技公司紛紛投入這個(gè)浪潮之中,很多從事的是毫不相關(guān)的行業(yè)的企業(yè)也投入到了人工智能的開發(fā)與應(yīng)用中,也想在里面分得一勺半羹。
提及人工智能,就不得不說到和他息息相關(guān)的開發(fā)工具,python就是最接近AI的預(yù)言之一??偹苤?,機(jī)器學(xué)習(xí)和深度學(xué)習(xí)是開發(fā)人工智能兩個(gè)非常重要的模塊,而 Python擁有keras、Numpy、matplotlib、sklearn、等大量的庫(kù),像matplotlib、sklearn、pandas這些庫(kù)都是做數(shù)據(jù)分析、數(shù)據(jù)處理、數(shù)據(jù)建模和繪圖的庫(kù),基本上機(jī)器學(xué)習(xí)中對(duì)數(shù)據(jù)的爬?。╯crapy)、對(duì)數(shù)據(jù)的處理和分析(pandas)、對(duì)數(shù)據(jù)的繪圖(matplotlib)和對(duì)數(shù)據(jù)的建模(sklearn)在Python中全都能找到對(duì)應(yīng)的庫(kù)來進(jìn)行處理。
那么要想學(xué)人工智能,想學(xué)Python,那以下這些是必不可少的:
首先,你要學(xué)Python如何爬取數(shù)據(jù),你要做數(shù)據(jù)分析、數(shù)據(jù)建模,起碼你要有數(shù)據(jù),這些數(shù)據(jù)來源有多種方法,但是很多都來自網(wǎng)絡(luò),這就是爬蟲。
爬蟲:爬蟲主要分為兩個(gè)部分,第一個(gè)是網(wǎng)頁(yè)界面的獲取,第二個(gè)是網(wǎng)頁(yè)界面的解析;爬蟲的原理是利用代碼模擬瀏覽器訪問網(wǎng)站,與瀏覽器不同的是,爬蟲獲取到的是網(wǎng)頁(yè)的源代碼,沒有了瀏覽器的翻譯效果。
舉個(gè)列子
源代碼:
import urllib2
repr = urllib2.urlopen("URL")
html = repr.read
import re
省略一行代碼
print url
python爬蟲的話很多模塊包提供給開發(fā)者直接抓取網(wǎng)頁(yè),urllib,urllib2,requests(urllib3)等等
然后,有了數(shù)據(jù)就可以進(jìn)行數(shù)據(jù)處理和分析了,這個(gè)時(shí)候,你需要用到數(shù)據(jù)處理的一些庫(kù)。
數(shù)據(jù)處理:Numpy、scipy、pandas、matplotlib,這些庫(kù)分別可以進(jìn)行矩陣計(jì)算、科學(xué)計(jì)算、數(shù)據(jù)處理、繪圖等操作,有了這些庫(kù),你就可以一步步開始把數(shù)據(jù)處理成你需要的格式。
接著,數(shù)據(jù)符合你的格式以后,你就需要利用這些數(shù)據(jù)進(jìn)行建模了,這個(gè)時(shí)候你用到的庫(kù)也有很多。
建模:當(dāng)你開發(fā)一款智能電話機(jī)器人時(shí)候,建模是必須要的,這直接影響到你電話機(jī)器人好不好用的問題,像nltk、keras、sklearn,這些庫(kù)主要是用于自然語言處理、深度學(xué)習(xí)和機(jī)器學(xué)習(xí)的,把這些用好了,你的模型就構(gòu)建出來了,你的產(chǎn)品雛形也就構(gòu)成了。
最后,如果你的項(xiàng)目是基于Python開發(fā)的線上系統(tǒng),你還可以學(xué)一學(xué)Python的Web開發(fā),這樣,你做的模型還能直接用在線上系統(tǒng)。
Web開發(fā):django、flask、tornado,這些庫(kù)搞明白了,你Web開發(fā)也就搞定了。
為什么開發(fā)AI要先掌握python呢?因?yàn)閜ython有其他預(yù)言不具備的優(yōu)勢(shì),首先一點(diǎn)就是,對(duì)初學(xué)非常友好,python非常適合閱讀,特別是英語必要好的同學(xué),pythone更像是一種偽代碼。在學(xué)習(xí)python你甚至都不用去搞懂預(yù)言本身的意義。
基于他的開源屬性,導(dǎo)致你只需要做一點(diǎn)點(diǎn)小小的改動(dòng),Python就能夠被移植到許多的平臺(tái)上面。如果你是基于系統(tǒng)特性這一點(diǎn)出發(fā),你可以無需修改就可以讓你寫的程序在平臺(tái)上面運(yùn)行。
可擴(kuò)展性和可嵌入性。如果你需要你的一段關(guān)鍵代碼運(yùn)行得更快或者希望某些算法不公開,你可以把你的部分程序用C或C++編寫,然后在你的Python程序中使用它們。你可以把Python嵌入你的C/C++程序,從而向你的程序用戶提供腳本功能。
所以,如果你想要去學(xué)習(xí)AI但是不懂Python,就好比想學(xué)習(xí)英語但是不懂單詞是一樣的道理。有句話叫人生苦短,我用Python,之所以這么說是因?yàn)镻ython在實(shí)現(xiàn)各個(gè)功能的時(shí)候要遠(yuǎn)比其他語言簡(jiǎn)練的多 。