1. 程式人生 > >[NLP]CS224n學習筆記一:NLP介紹

[NLP]CS224n學習筆記一:NLP介紹

1.什麼是自然語言處理?自然語言處理是做什麼的?自然語言處理難在哪裡?

語言是表達人的想法以及人與人之間交流的工具,而自然語言處理則是讓計算機擁有處理人類語言的能力,從而讓計算機能夠使用和理解人類的語言。如今,自然語言處理在生活中應用已經很廣泛,尤其是蘋果的siri,谷歌的Google Assistant和alex,微軟的Cortana和小冰。國內也有很多語音相關的應用,尤其是筆者所在的機器人行業,各種層出不窮的教育機器人、陪伴機器人、商務機器人無不在著消費者的眼球。而這些產品的基礎技術就是自然語言處理。

那麼自然語言處理到底是什麼?這是一門研究什麼,做什麼的學科呢?

首先我們來看wikipedia上的解釋:

自然語言處理(英語:Natural Language Processing,簡稱NLP)是人工智慧和語言學領域的分支學科。此領域探討如何處理及運用自然語言;自然語言認知則是指讓電腦“懂”人類的語言。自然語言生成系統把計算機資料轉化為自然語言。自然語言理解系統把自然語言轉化為計算機程式更易於處理的形式。
自然語言處理的研究內容包括:

  • 文字到語音(Text to speech)/語音合成(Speech synthesis)
  • 語音識別(Speech recognition)
  • 自動分詞(word segmentation)
  • 詞性標註(Part-of-speech tagging)
  • 句法分析(Parsing)
  • 自然語言生成(Natural language generation)
  • 文字分類(Text categorization)
  • 資訊檢索(Information retrieval)
  • 資訊抽取(Information extraction)
  • 文字校對(拼寫檢查或者錯別字校正)(Text-proofing)
  • 問答系統(對話系統)(Question answering):給一句人類語言的問定,決定其答案。 典型問題有特定答案 (像是加拿大的首都叫什麼?),但也考慮些開放式問句(像是人生的意義是是什麼?)
  • 機器翻譯(Machine translation):將某種人類語言自動翻譯至另一種語言
  • 自動摘要(Automatic summarization):產生一段文字的大意,通常用於提供已知領域的文章摘要,例如產生報紙上某篇文章之摘要
  • 文字蘊涵(推理)(Textual entailment)
  • 知識表示
  • 閱讀理解

可以看到自然語言處理的範圍相當的廣泛,覆蓋了人類語言的方方面面。

2.NLP的研究等級

這裡寫圖片描述

從上圖中可以看到,NLP的底層技術包括:建立在語音基礎上的拼音分析和音韻分析、建立在文字基礎上的標籤化。在這基礎之上的是結構分析、語法分析、語義理解、對話處理。結構分析分析的是句子的結構、語法分析分析的是詞或者字在句子中的角色、語義理解研究的是語句的深層次的含義、對話處理研究的是上下文處理或者推理。隨著等級從上往下,相應的研究領域難度越來越大。

3.一些NLP的應用

在消費領域一般有:

  • 拼寫檢查、關鍵字檢索、同義詞發現
  • 資訊抽取:產品價格、時間、位置、人名或者機構名的抽取
  • 分類:對於新聞的分類、消費者對於產品的評價是正面還是負面
  • 機器翻譯:典型的比如谷歌翻譯
  • 對話系統:比如chatbot、自動客服

在工業領域:

  • 檢索
  • 線上廣告推薦
  • 自動或者輔助翻譯
  • 市場情緒分析
  • 語音識別
  • 客服機器人、對話機器人:自動下單、自動客戶支援、裝置管理等等

可以看到NLP不管是在工業還是消費領域都是應用非常廣泛,並且已經和人們的生活和商業活動息息相關、緊密結合了。

4.自然語言的特殊之處

  • 自然語言不同於訊號處理和影象處理,後者研究的是環境中真真切切的訊號,比如訊號處理研究的是電平的變化,影象處理是對影象中畫素的研究,而自然語言不是具體的環境訊號,它是人類交流的媒介。
  • 自然語言也是對客觀世界的符號化,並且具備豐富的表現形式。比如表達自己的喜愛之情:I looooooove it,就是通過對o的拉長來表達自己喜愛之情的強烈。
  • 語言具備很強的邏輯性,但是又不能用數字去具體的量化,比方說可能,大概表達的是一種概率,但是又不能具體的數字比如80%去衡量。
  • 此外語言還具備多種的表現形式,比如聲音、動作、影象、文字等,神奇的是就算用不同的表現形式去表達,它們的含義卻依然可以保持不變。

5.NLP的難點

NLP的難點分為3個:

  • (1).難在表示,試想一下,對於人類來說,語言儲存在人腦中,那麼對於計算機來說如何對語言進行表示呢?

  • (2).難在歧義:比如南京市長江大橋,可以理解為南京市長/江大橋,也可以理解為南京市/長江大橋。

  • (3).難在背景知識,當我們說一句話的時候,往往都具有上下文或者背景。比如我說:我不難過。那麼問題來了,我到底難不難過呢?這就需要根據具體的語境和具體的環境進行判斷了。

6.NLP+DL

NLP和DL的結合即是用DL的方法和特徵去解決NLP的問題。
近年來,DL在NLP上的應用取得了巨大的進步具體表現在:

  • 從層次上看:語音,片語,語法,語義
  • 從工具上看:詞性標註、命名實體識別、依存句法
  • 從應用上看:機器翻譯、情感分析、對話系統、問答系統

DL將每一個詞表徵為一個多維的向量,每一個維度都表示著獨特的資訊。維度最少取25維,一般去200-300維,當然維度越多越好,但是隨著維度的提高計算效能也會受到影響,所以具體的維度在實踐中需要具體確定。
當用向量表示片語之後,詞向量可以進行計算,比如計算相似度,近義詞的向量比較接近,不同意義的詞向量相距較遠。
片語的向量化之後,就可以應用DL中的模型進行多種NLP任務的計算了,比如:依存句法、語義表示、情緒分析、自然語言生成、機器翻譯等等。
這裡寫圖片描述

7.總結

本文是NLP的常識性介紹,介紹了NLP是什麼、研究什麼、有那些應用領域和產品;最後介紹了NLP和DL的結合。
在下篇博文中,將介紹片語向量化。