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