計算機很是擅長處理標準化和結構化的數據,如數據庫表和財務記錄。他們可以比咱們人類更快地處理這些數據。但咱們人類不使用「結構化數據」進行交流,也不會說二進制語言!咱們用文字進行交流,這是一種非結構化數據。java
不幸的是,計算機很難處理非結構化數據,由於沒有標準化的技術來處理它。當咱們使用c、java或python之類的語言對計算機進行編程時,咱們其實是給計算機一組它應該操做的規則。對於非結構化數據,這些規則是很是抽象和具備挑戰性的具體定義。python
人與計算機對語言的理解數據庫
人類寫東西已經有幾千年了。在這段時間裏,咱們的大腦在理解天然語言方面得到了大量的經驗。當咱們在一張紙上或互聯網上的博客上讀到一些東西時,咱們就會明白它在現實世界中的真正含義。咱們感覺到了閱讀這些東西所引起的情感,咱們常常想象現實生活中那東西會是什麼樣子。編程
天然語言處理 (NLP) 是人工智能的一個子領域,致力於使計算機可以理解和處理人類語言,使計算機更接近於人類對語言的理解。計算機對天然語言的直觀理解還不如人類,他們不能真正理解語言到底想說什麼。簡而言之,計算機不能在字裏行間閱讀。機器學習
儘管如此,機器學習 (ML) 的最新進展使計算機可以用天然語言作不少有用的事情!深度學習使咱們可以編寫程序來執行諸如語言翻譯、語義理解和文本摘要等工做。全部這些都增長了現實世界的價值,使得你能夠輕鬆地理解和執行大型文本塊上的計算,而無需手工操做。學習
讓咱們從一個關於NLP如何在概念上工做的快速入門開始。以後,咱們將深刻研究一些python代碼,這樣你就能夠本身開始使用NLP了!人工智能
NLP難的真正緣由翻譯
閱讀和理解語言的過程比乍一看要複雜得多。要真正理解一段文字在現實世界中意味着什麼,有不少事情要作。例如,你認爲下面這段文字意味着什麼?深度學習
「Steph Curry was on fire last nice. He totallydestroyed the other team」博客
對一我的來講,這句話的意思很明顯。咱們知道 Steph Curry 是一名籃球運動員,即便你不知道,咱們也知道他在某種球隊,多是一支運動隊。當咱們看到「着火」和「毀滅」時,咱們知道這意味着Steph Curry昨晚踢得很好,擊敗了另外一支球隊。
計算機每每把事情看得太過字面意思。從字面上看,咱們會看到「Steph Curry」,並根據大寫假設它是一我的,一個地方,或其餘重要的東西。但後來咱們看到Steph Curry「着火了」…電腦可能會告訴你昨天有人把Steph Curry點上了火!…哎呀。在那以後,電腦可能會說, curry已經摧毀了另外一支球隊…它們再也不存在…偉大的…