摘要: 這裏有改變世界的7大NLP技術,點進來了解一下吧!
改變世界的七大NLP技術,你瞭解多少?(上)算法
在第1部分中,我介紹了天然語言處理(NLP)領域以及爲其提供支持的深度學習。我還介紹了NLP中的3個關鍵概念:文本嵌入(字符串的矢量表示),機器翻譯(使用神經網絡翻譯語言),以及Dialogue和Conversations(能夠實時與人進行對話的技術)。在第2部分中,我將介紹另外4項重要的NLP技術,你應該關注這些技術,以跟上這一研究領域快速增加的步伐。網絡
人際交往不只僅是文字和其明確的含義,並且它仍是微妙且複雜的。即便在徹底基於文本的對話中,你也能夠根據單詞選擇和標點符號判斷客戶是否感到憤怒。你能夠閱讀產品在天貓平臺的評論,並瞭解評論者是否喜歡或不喜歡它,即便他們從未直接說過。爲了使計算機真正理解人類天天的交流方式,他們須要理解的不只僅是客觀意義上的詞語定義、並且他們須要瞭解咱們的情緒。情緒分析是經過較小元素的語義組成來解釋較大文本單元(實體、描述性術語、事實、論據、故事)的含義的過程。架構
傳統情感分析的方法是將句子視爲一個詞袋,並查閱「積極」和「消極」單詞的策劃列表,以肯定該句子的情緒。這須要手工設計的特徵來捕捉情緒,全部這是很是耗時和不可擴展的。框架
用於情感分析的現代深度學習方法可用於形態學、語法和邏輯語義,其中最有效的是遞歸神經網絡。顧名思義,遞歸神經網絡開發的主要假設遞歸是描述語言的天然方式。遞歸在消歧方面頗有用,有助於某些任務引用特定的短語,而且對於使用語法樹結構的任務很是有效。機器學習
遞歸神經網絡很是適合具備嵌套層次結構和內部遞歸結構的設置。語法的句法規則是高度遞歸的,所以,咱們利用遞歸神經網絡!使用RNN對句子進行建模的另外一個好處是,咱們如今能夠輸入任意長度的句子,這對於在NLP中使用神經網絡來講是一個巨大的難題,使用很是聰明的技巧使句子的輸入向量具備相同的大小,儘管句子的長度不相等。學習
標準RNN是一種遞歸神經網絡的最基本的版本。它具備最大邊距結構預測架構,能夠在複雜的場景圖像和句子中成功地運用這種結構。它用於爲天然語言句子提供有競爭力的語法分析器好比說Penn Treebank。做爲參考,Penn Treebank是第一個大型樹形數據集,由華爾街日報三年(WSJ)收集的24,799個故事組成,它普遍用於句法註釋。此外,它優於語義場景分割、註釋和分類的替代方法。優化
然而,標準RNN並不能捕獲語法短語的完整語法。在語法上解開RNN,也被稱爲成分矢量語法(CVG),這個方法是解決這個問題的一個重大升級。它使用語法解開的遞歸神經網絡來學習句法語義和組合向量表示。該模型可以像標準RNN同樣快速地進行訓練和實施。編碼
另外一個演變是Matrix-Vector RNN,它可以捕獲更長短語的組成含義。該模型爲解析樹中的每一個節點分配一個向量和一個矩陣:向量用於捕獲成分的固有含義,而矩陣捕獲它如何改變相鄰單詞或短語的含義。並且該矩陣向量RNN能夠在命題邏輯和天然語言中學習運算符的含義。
該模型在三個不一樣的實驗中得到過不錯的表示:spa
迄今爲止用於情感分析的最強大的RNN模型是遞歸神經張量網絡,其在每一個節點處具備神經網絡的樹結構。該模型可用於邊界分割,以肯定哪些詞組是積極的,哪些是消極的。在Sentiment Treebank上接受訓練時,該模型在幾個指標上的表現優於全部之前的方法。翻譯
問答(QA)系統的想法是直接從文檔、對話、在線搜索和其餘地方提取信息,以知足用戶的信息需求。QA系統不是讓用戶閱讀整個文檔,而是更喜歡簡短而簡潔的答案。現在,QA系統能夠很是容易地與其餘NLP系統結合使用,而且一些QA系統甚至超越了對文本文檔的搜索,而且能夠從圖片集合中提取信息。
事實上,大多數NLP問題均可以被視爲一個問題回答問題。範例很簡單:咱們發出查詢指令,機器提供響應。經過閱讀文檔或一組指令,智能系統應該可以回答各類各樣的問題。
強大的深度學習架構(稱爲動態內存網絡(DMN))已針對QA問題進行了專門開發和優化。給定輸入序列(知識)和問題的訓練集,它能夠造成情節記憶,並使用它們來產生相關答案。該體系結構具備如下組件:
DMN不只在質量保證方面作得很是好,並且在情感分析和詞性標註方面也優於其餘架構。自開發以來,動態內存網絡已經有了重大改進,進一步提升其在問答環境中的準確性,包括:
技術6:文本摘要
人類很難手動彙總大型文本文檔。文本摘要是NLP爲源文檔建立簡短、準確和流暢的摘要問題。隨着推送通知和文章摘要得到愈來愈多的注意力,爲長文本生成智能且準確摘要的任務天天都在增加。
經過首先計算整個文本文檔的單詞頻率來自動彙總文本。而後,存儲和排序100個最經常使用的單詞。而後根據它包含的高頻詞數對每一個句子進行評分,更高頻率的詞,價值更大。最後,根據它們在原始文本中的位置來獲取和排序前X個句子。
文本摘要有兩種基本方法:提取和抽象。前者從原始文本中提取單詞和單詞短語以建立摘要。後者是學習內部語言表示以生成更像人類的摘要,解釋原始文本的意圖。
提取摘要的方法是經過選擇子集來工做。這是經過從實際文章中提取短語或句子以造成摘要來完成的,LexRank和TextRank是衆所周知的摘要總結,它們都使用了Google PageRank算法的變體。
抽象歸納的模型屬於深度學習。使用深度學習的文本摘要已經取得了必定的突破。如下是一些NLP領域最大公司最顯着的公佈結果:
神經網絡中的注意力機制是基於人類的視覺注意機制。人類的視覺注意力雖然存在不一樣的模型,但它們都基本上歸結爲可以以「高分辨率」聚焦於圖像的某個區域,同時以「低分辨率」感知周圍的圖像,而後隨着時間的推移調整焦點。
想象一下,你正在閱讀一篇完整的文章:不是按順序瀏覽每一個單詞或字符,而是潛意識地關注一些信息密度最高的句子並過濾掉其他部分。你的注意力有效地以分層方式捕獲上下文信息,這樣就能夠在減小開銷的同時作出決策。
那爲何這很重要?諸如LSTM和GRU之類的模型依賴於讀取完整的句子並將全部信息壓縮爲固定長度的矢量。這須要基於文本統計屬性的複雜特徵工程,用幾個單詞表示的數百個單詞的句子確定會致使信息丟失,翻譯不足等。
經過注意力機制,咱們再也不嘗試將全文編碼爲固定長度的矢量。相反,咱們容許解碼器在輸出生成的每一個步驟處理源語句的不一樣部分。咱們讓模型根據輸入句子以及它到目前爲止產生的內容來學習要注意的內容。
根據上面從基於注意力的神經機器翻譯的有效方法的圖像,藍色表示編碼器,紅色表示解碼器,所以咱們能夠看到上下文向量將全部單元格的輸出做爲輸入來計算每一個單元格的源語言單詞的機率分佈。解碼器想要生成單個字,經過利用該機制,解碼器能夠捕獲全局信息而不是僅基於一個隱藏狀態進行推斷。
除了機器翻譯以外,注意力模型還能夠處理各類其餘NLP任務。在Show,Attend和Tell:使用視覺注意生成神經圖像標題,做者將注意力機制應用於生成圖像描述的問題。他們使用卷積神經網絡對圖像進行編碼,使用具備註意力機制的遞歸神經網絡來生成描述。經過可視化注意力,他們能夠在生成單詞時解釋模型正在查看的內容:
在語法做爲外語中,做者使用具備註意力機制的遞歸神經網絡來生成句子解析的樹。可視化的注意力矩陣能夠深刻了解網絡如何生成這些樹:
在閱讀和理解的教學機器中,做者使用迴歸神經網絡來閱讀文本,閱讀問題,而後產生答案。經過可視化關注矩陣,它們能夠在嘗試查找問題答案時顯示網絡的外觀:
然而,注意力機制須要付出代價。咱們須要計算輸入和輸出字的每一個組合的注意力值。若是你有一個100字的輸入序列並生成一個100字的輸出序列,那將是10,000個注意力值。若是你進行字符級計算並處理由數百個令牌組成的序列,上述機制可能變得很是昂貴。
值得注意的是,研究人員不得不處理各類障礙:算法的侷限性、模型的可擴展性、對人類語言的模糊理解。好消息是,這個領域的發展彷佛是一個巨大的開源項目:研究人員不斷構建更好的模型來解決現有問題並與社區分享他們的結果。因爲最近的學術研究進展,如下是NLP中已經解決的主要障礙:
本系列文章展現了主要的天然語言處理技術的基本概要,這些技術能夠幫助計算機從單個文本或文本序列中提取,分析和理解有用的信息。從跨文化鏈接人的機器翻譯到幫助客戶服務的對話聊天機器人; 從深入理解人類情緒的情感分析,到能夠模仿咱們視覺注意力的注意力機制。由於NLP的領域過於龐大可能我並無徹底介紹,因此我鼓勵你進一步探索,不管是經過在線課程,博客教程,或研究論文。
本文做者:【方向】
本文爲雲棲社區原創內容,未經容許不得轉載。