【NLP】自然语言处理专栏上线,带你一步一步走进“人工智能技术皇冠上的明珠”。...
?
大家好,今天小Dream哥在有三AI開設新專欄《自然語言處理(NLP)》。在這個專欄中,我們會講述自然語言處理相關的內容,覆蓋自然語言處理基礎理論,常用模型以及實際應用等內容。
自然語言處理是一門用于理解人類語言、情感和思想的技術,是人工智能皇冠上的明珠。
作者&編輯 | 小Dream哥?
作為第一篇,我們先介紹一下自然語言處理(NLP)技術是什么,一個NLP工程師應該掌握哪些技術?
1 NLP技術概述
每次與行外之人談起自然語言處理(Natural Language Process,NLP),對方往往都是一片茫然。因此,常常感到很苦惱,如何跟一個從未接觸過NLP的人,解釋NLP到底是什么?畢竟這是一門這么重要的技術(學科),它的發展與應用,會極大的影響這個世界上的每一個行業,每一個人。
那么,到底什么是NLP呢?所謂自然語言處理,就是用計算機(或者其他計算單元,以下類似)來處理人類的自然語言。那么要理解NLP,首先要理解什么是自然語言。所謂“自然語言”,是相對于計算機語言(計算機能夠理解的語言,如匯編、C語言等)而言的,人類日常使用的語言,例如我們都講的中文,國際語言英文,各地的方言。那么為什么會有NLP這樣一個專門的學科(在各大高校都有專門的學科)來研究如何用計算機來處理自然語言呢?
因為計算機設計之初主要是用于計算,或者完成某一項有明確規則任務。所以計算機語言與人類日常使用的語言存在很大的差異,計算機不能直接理解人類語言的含義,即不能直接同人類進行溝通。長期以來,計算機都不能很好的理解人類的語言,通常是程序員寫一些規則去籠統的對語句進行一些判斷和處理。如何讓計算機聽懂人話,同人交談,甚至理解人的情感和文化,這就是NLP要做的事情。
人類語言承載了人的思考、文化等,也是每個人對外交互和表達的最主要手段。NLP就是為了解決這樣一個問題而出現的技術。他希望能夠使得計算機理解人類的語言,甚至是語言背后的文化、意圖與情感。例如說,當你說“我餓了”,計算機能夠明白你肚子餓了,并且提出幫你定外賣;當一個女孩子說“我想要蘋果”的時候,計算機能夠結合當時的情境,明白女孩子說的蘋果,到底是水果,還是手機。
那么,現在的NLP技術能夠實現上述的目的嗎?現在的NLP技術達到了一個什么樣水平?具體是一些什么樣的技術,能夠讓機器理解人的思想。
這里我不想再贅述,NLP技術的應用和意義,有太多的人為它背書了。下面我以構建一個能夠提供查詢天氣服務的聊天機器人為例子,來介紹NLP任務中涉及到的一些技術,以及如何用這些技術實現對人類語言的理解。
2 利用NLP技術構建聊天機器人
圖1.1 查詢天氣機器人處理流程
如圖1.1所示,展示了目前產業用的查詢天氣的聊天機器人的業務處理流程,通過對該流程的介紹,相信讀者能夠對NLP這門技術有一個初步的了解。
首先該機器人的定位為查詢天氣的機器人,是一種任務型的機器人,用來處理用戶查詢天氣的要求。
1)用戶輸入的預處理
當用戶輸入“請問今天深圳的天氣怎么樣?”這樣一段字符串時,需要進行兩步預處理才能很好的被后續的NLP模型處理。這兩步是分詞和詞的向量化。
我們知道,在中文中,構成語義的最小單元是詞。我們在語文學習的早期,老師也會教我們如何去斷句。同樣,利用NLP技術去處理一個句子的前提就是“斷句”,在NLP中叫分詞,就是把句子切分成一個一個的詞。例如:“請問今天的天氣怎么樣?”,分詞之后的結果為“請問/今天/深圳/的/天氣/怎么樣/?”
通過分詞,我們將句子切分為一個一個詞的表示。這個時候,用戶的輸入還是幾個分隔開的字符串。字符串的編碼同語義是毫無關系的,更好的表示詞的方式,應該是利用相應NLP技術,將詞進行向量化的表示。向量化的表示,可以表示詞語之間的關系以及便于后續模型的計算。
2)意圖識別
經過預處理之后,用戶輸入“請問今天深圳的天氣怎么樣?”變成了一個向量列表[[1,0,0,0,0,0],[0,1,0,0,0,0],[0,0,1,0,0,0], [0,0,0,1,0,0], [0,0,0,0,1,0],[0,0,0,0,0,1]],六個詞分別都有他們的向量表示(這里用了one-hot的向量表示法,實際會用詞向量)。這個時候,機器人就需要知道用戶這句話的目的了。當然,這個機器人比較專注,他只關心用戶是不是問天氣,如果用戶是詢問天氣,機器人就幫用戶查詢;如果不是,就做其他的處理。對用戶輸入的意圖進行分析的技術,就是意圖識別。本質上,就是各種各樣的分類模型。在這個例子中,就是一個二分類模型。
3)實體識別
好了,這個時候,聰明的機器人已經聽懂了用戶是要查詢天氣了。但是用戶是要查詢哪里的天氣?什么時候的天氣呢?聰明的機器人當然有辦法知道了,他有實體識別的工具,可以知道地點是“深圳”,時間是“今天”。實體識別是一項發展了很久,但至今仍然沒有得到徹底解決的任務,后面會詳細介紹。這個時候,聰明的機器人就能夠請求相應的系統,例如中國天氣網,去獲取深圳今天的天氣情況,然后反饋給客戶了。
假如用戶這樣說“今天天氣怎么樣?”,這個時候,聰明的機器人就需要再問用戶地點的信息,這就是對話管理的內容,在后面介紹聊天機器人時,我們再詳細介紹。
3 NLP技術棧
怎么樣?是不是很簡單?所謂的“人工智能技術皇冠上的明珠”的自然語言處理技術是不是感覺也沒什么難的?無非就是利用上面那些技能,對用戶輸入進行處理,獲取想要的信息和輸出。各種技能的各種模型會層出不窮,但對語言進行處理的思想不會發生太大的變化。好了,我們后面的任務就是逐一的了解各種技能的不同模型的原理及其實現和應用。
如圖2.2所示,是一個NLP工程師應該掌握的技能棧。主要包括基礎理論和實際應用兩個部分。基礎理論部分,包括常用的機器學習算法和概念及技巧。實際應用部分包括聊天機器人和知識圖譜技術。這是一個龐大的技術圖譜,要一一學習和講解都不是容易的事,但是我們要做的就是不易之事。后續,我會按照該技術圖譜一一介紹相應的技術,請大家關注。介紹會盡量做到深入淺出,貼近實踐。
該圖當然沒有包羅所有的NLP技術和應用,但是了解和掌握這些技術之后,你再繼續學習其他的技術會變得很簡答。
圖2.2 NLP工程師技術棧
4 作者介紹
小Deam哥,畢業于華中科技大學電子系。系國內某知名保險公司科技中心AI團隊的算法工程師,主要研究方向為聊天機器人以及知識圖譜。
總結
軟件工程的同學可能會覺得,今天舉的機器人的例子,似乎并不是那么“人工智能”。確實,現在NLP技術的發展還處在比較初級的階段,特別是在產業界,實際生產在用的技術,很多時候都是一些相對較原始的技術。但是這是一門蓬勃發展的技術,特征提取模型從RNN到LSTM,然后是現在最火的Google的Attention。預訓練模型從詞向量到ELMO,到GPT,到現在GPT2.0與BERT的不斷較勁。在這樣一個領域,你可以有很多的機會去跟隨甚至引領它的發展,你值得關注。
下期預告:NLP中的隱馬爾科夫模型(HMM)。
微信群推薦
這是有三AI唯一的自然語言處理群,將用于討論相關的技術,進群申請可以加有三微信Longlongtogo。
今日網絡結構
轉載文章請后臺聯系
侵權必究
專欄匯總
【完結】深度學習CV算法工程師從入門到初級面試有多遠,大概是25篇文章的距離
【完結】優秀的深度學習從業者都有哪些優秀的習慣
【完結】給新手的12大深度學習開源框架快速入門項目
【完結】總結12大CNN主流模型架構設計思想
【完結】AI1000問以后知識星球和B站見啦
【完結】TensorFlow2.0 快速上手手冊
【完結】中國12大AI研究院,高調的低調的你pick誰
【完結】12篇文章帶你逛遍主流分割網絡
【AutoML】AutoML專欄上線,跟Google一起見證調參黨的末日?
【移動端DL框架】當前主流的移動端深度學習框架一覽
【AI大咖】認真認識一代AI教父Hinton
【AI產品】產品小姐姐分析抖音背后的計算機視覺技術
【模型訓練】如何選擇最適合你的學習率變更策略
總結
以上是生活随笔為你收集整理的【NLP】自然语言处理专栏上线,带你一步一步走进“人工智能技术皇冠上的明珠”。...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有三AI高质量内容推荐(广告)须知
- 下一篇: 【GAN优化】GAN优化专栏上线,首谈生