天天看點

《自然語言處理實戰入門》 ---- 總目錄前言綜論NLP 前置技術序列标注與分詞算法詞嵌入(分布式文本表示)文本分類NLP 可視化文字檢索資訊抽取使用深度學習進行自然語言處理知識圖譜文本生成聊天機器人語音識别筆試、面試參考文獻

@ toc

前言

大家好,今天開始和大家分享,我在自然語言處理(Natural Language Processing,NLP)的一些學習經驗和心得體會。

随着人工智能的快速發展,自然語言處理和機器學習技術的應用愈加廣泛。為使大家對該領域整體概況有一個系統、明晰的認識,同時入門一些工程實踐,也借CSDN為NLP的學習,開發者們搭建一個交流的平台。我希望能夠通過這個專欄《自然語言處理實戰入門》和廣大NLP愛好者一起學習自然語言處理技術,分享學習資料,打破NLP 技術 的實戰應用壁壘。

由于網絡上的教程等,基本都已英文NLP 作為切入點,但本人認為漢語NLP還是有着很多根本性不同的,是以本專欄的所有代碼與DEMO也都是圍繞着漢語自然語言處理進行建構。

本專欄持續更新中,内容還未完整的請稍安勿躁,部分内容有參考其他書籍或是網絡文獻,都會給出原始出處

配套前期視訊課程 ---- 持續更新中

視訊講解課程 :《自然語言處理實戰入門》

綜論

what is it?

自然語言處理(Natural Language Processing,簡稱 NLP)是人工智能和語言學交叉領域下的分支學科。

用于分析、了解和生成自然語言,以友善人和計算機裝置進行交流,以及人與人之間的交流

自然語言處理在深度學習的支撐下取得了迅猛發展,總結的過去5年ACL文章中自然語言發展的主要工作,包括 Word embeddings、LSTM、Encode decoder、RNN、Pre-trainedmodel 等,這些技術推動了自然語言的應用,包括基于神經網絡的機器翻譯,預訓練模型演化,閱讀了解技術等。

現在自然語言處理相關專業人才屬于供不應求的狀态,這種狀态是因為過去很長一段時間,高校NLP人才的培養是跟不上業界需求的。畢竟目前國内高校比較有積澱的自然語言處理實驗室不是很多,可能也就二三十家,而對于高校來說,建立一個學科是需要時間積累的。這就導緻了培育人才的速度跟不上工業界的需求。目前,工業界對于能夠理論與實踐相結合、學習能力強、能夠推動産品落地的人才是十分渴求的。通過對企業用人端的分析,以及NLP知識架構分析,我們可以從核心能力、工作能力兩個方面回答:

NLP 前置技術

莫要輕視前置基礎,所有技術都不是一蹴而就的 。希望大家能夠沉下心來,慢慢打磨自己的技術,首先将前置技術融彙貫通。本篇章從搭建 開發環境開始講起,以網絡爬蟲作為工程化學習NLP的引入。其次通過學習通用的開源架構,夯實NLP基礎知識,最後帶領大家檢視NLP 工程中常用的資源、語料庫。

開發環境

基礎技術

網絡爬蟲

開源庫

深度學習基礎

常用資源

序列标注與分詞算法

“數學上,序列是被排成一列的對象(或事件);這樣每個元素不是在其他元素之前,就是在其他元素之後。在自然語言處理領域,語句便是序列,對其進行标注是最常見的任務之一,隻要涉及對一個序列中的各個元素進行打标簽的問題,都可以通過序列标注模型解決。

簡介

分詞算法原理

實踐

評測

詞嵌入(分布式文本表示)

word2vector顧名思義,其實就是旨在把每個單詞轉化為詞向量,其實很多方式都可以實作這個功能,最簡單的當然就是one-hot了,但是面對無敵龐大的詞庫,直接使用one-hot來進行表示将會面臨很大的記憶體占用和很高的計算時間,于是有了LDA、GloVe以及現在比較新的bert等,都是嘗試通過使用連續的詞向量模型來進行詞向量轉化,進而進行後續的自然語言處理任務。

文本分類

文本分類用電腦對文本集(或其他實體或物件)按照一定的分類體系或标準進行自動分類标記。 它根據一個已經被标注的訓練文檔集合, 找到文檔特征和文檔類别之間的關系模型, 然後利用這種學習得到的關系模型對 新的文檔進行類别判斷 。文本分類從基于知識的方法逐漸轉變為基于統計 和機器學習的方法。

文本分類一般包括了文本的表達、 分類器的選擇與訓練、 分類結果的評價與回報等過程,其中文本的表達又可細分為文本預處理、索引和統計、特征抽取等步驟。

NLP 可視化

人眼是一個高帶寬的巨量視覺信号輸入并行處理器,最高帶寬為每秒100MB,具有很強的模式識别能力,對可視符号的感覺速度比對數字或文本快多個數量級,且大量的視覺資訊的處理發生在潛意識階段.

其中的一個例子是視覺突變:在一大堆灰色物體中能瞬時注意到紅色的物體。由于在整個視野中的視覺處理是并行的,無論物體所占區間大小,這種突變都會發生.視覺是擷取資訊的最重要通道,超過50%的人腦功能用于視覺的感覺,包括解碼可視資訊、高層次可視資訊處理和思考可視符号。

《自然語言處理實戰入門》 ---- 總目錄前言綜論NLP 前置技術序列标注與分詞算法詞嵌入(分布式文本表示)文本分類NLP 可視化文字檢索資訊抽取使用深度學習進行自然語言處理知識圖譜文本生成聊天機器人語音識别筆試、面試參考文獻

文字檢索

資訊檢索定義為對使用者做出的查詢進行響應并檢索出最合适的資訊的過程。在資訊檢索中,根據中繼資料或基于上下文的索引,進行搜尋。搜尋引擎 是資訊檢索的一個示例,對于每個使用者的查詢,它基于所使用的資訊檢索算法進行響應。資訊檢索算法中使用了反向索引的索引機制。

資訊抽取

資訊抽取 (Information Extraction) 是把文本中包含的資訊進行結構化處理,變成表格一樣的組織形式。資訊抽取的主要任務是将各種各樣的資訊點從文檔中抽取出來。然後以統一的形式內建在一起,友善後序的檢索和比較。

使用深度學習進行自然語言處理

深度學習是利用多層次神經網絡結合機器學習 形成的,使計算機通過自動完成學習過程的一類算 法。其與以設計為主的傳統機器學習相比,不僅實 現了機器學習的自動化,減少了面對不同問題時的 人工設計成本,還增強了對資料中潛在資訊的提取 與分析能力。

在深度學習技術成熟之前,機器學習主要使用 的算法模組化是帶有一層或是沒有隐形節點的,如條件随機場(Conditional Random Field,CRF)、支援向 量機(Support Vector Machine, SVM)及最大嫡模型 (Maximum Entropy,ME)等。這些帶有一層或是沒 有隐形節點的模組化在面對結構複雜的資料泛化問題

精确度的需要⑵。2006年,深度學習 被用于手寫文字識别的領域,并取得了很好的效果。 此後,深度學習的方法也被用于解決自然語言處理 (NLP)領域中的問題2011年到2012年,深度 神經網絡(Deep Neural Network,DNN)被應用在圖 像識别領域和語音識别領域,并取得了顯著的成績。 但是,由于自然語言處理領域待解決的問題的複雜 性、多樣性以及對訓練資料海量的要求,導緻深度學 習在該領域還沒有重大的突破。

知識圖譜

2012 年,谷 歌 提 出 了 知 識 圖 譜 (knowledge Graph)的概念,為世界知識和領 域知識的建構提供了一個可資借鑒的手段。

知識圖譜的基本組成是由頭實體、尾實體和兩者之間的關 系組成的三元組關系。目前,對知識圖譜 的研究應用主要 包括通用知識圖譜和垂直領域知識圖譜。

典型的通用知識圖譜有 google knowledgegraph、 DBpedia、CN-DBpedia、XLore等。雖然通用知識圖譜收集了大量的領域知識,但是受到概念限制,無法完整描述比較複雜 的領域知識。垂直領域知識圖譜在領域知識的描述方面優于通用知識圖譜,但常采用手工建構方法,是以其建構成本很高。

文本生成

文本生成目前主要試用的是GPT-2 模型

基本上隻要了解 Transformer 架構,你馬上就懂 GPT-2 了。

聊天機器人

自動問答是指利用計算機自動回答使用者所提出的問題以滿足使用者知識需求的任務。問答系統是資訊服務的一種進階形式,系統回報給使用者的不再是基于關鍵詞比對排序的文檔清單,而是精準的自然語言答案,這和搜尋引擎提供給使用者模糊的回報是不同的。在自然語言了解領域,自動問答和機器翻譯、複述和文本摘要一起被認為是驗證機器是否具備自然了解能力的四個任務。

自動問答系統在回答使用者問題時,首先要正确了解使用者所提出的問題,抽取其中關鍵的資訊,在已有的語料庫或者知識庫中進行檢索、比對,将擷取的答案回報給使用者。這一過程涉及了包括詞法句法語義分析的基礎技術,以及資訊檢索、知識工程、文本生成等多項技術。

傳統的自動問答基本集中在某些限定專業領域,但是伴随着網際網路的發展和大規模知識庫語料庫的建立,面向開放領域和開放性類型問題的自動問答越來越受到關注。根據目标資料源的不同,問答技術大緻可以分為檢索式問答、社群問答以及知識庫問答

三種。檢索式問答和搜尋引擎的發展緊密聯系,通過檢索和比對回答問題,推理能力較弱。社群問答是 web2.0 的産物,使用者生成内容是其基礎,Yahoo!、Answer、百度知道等是典型代表,這些社群問答資料覆寫了大量的使用者知識和使用者需求。檢索式問答和社群問答的核心是淺層語義分析和關鍵詞比對,而知識庫問答則正在逐漸實作知識的深層邏輯推理。

縱觀自動問答發展曆程,基于深度學習的端到端的自動問答将是未來的重點關注,同時,多領域、多語言的自動問答,面向問答的深度推理,篇章閱讀了解以及對話也會在未來得到更廣闊的發展

語音識别

語音識别技術就是讓機器通過識别和了解過程把語音信号轉變為相應的文本或指令的技術。

  • 語音識别本質上是一種模式識别的過程,未知語音的模式與已知語音的參考模式逐一進行比較,最佳比對的參考模式被作為識别結果。
  • 語音識别的目的就是讓機器賦予人的聽覺特性,聽懂人說什麼,并作出相應的動作。目前大多數語音識别技術是基于統計模式的,從語音産生機理來看,語音識别可以分為語音層和語言層兩部分。
  • 當今語音識别技術的主流算法
主要有基于動态時間規整(DTW)算法、基于非參數模型的矢量量化(VQ)方法、基于參數模型的隐馬爾可夫模型(HMM)的方法、基于人工神經網絡(ANN)和支援向量機等語音識别方法。

筆試、面試

參考文獻

  • 《Python自然語言處理實戰-核心技術與算法》
  • 《漢語自然語言處理原理與實踐》
  • 《自然語言處理理論與實踐》
  • 做項目一定能用到的NLP資源