自然語言處理(NLP)路線圖 - kdnuggets

banq發表於2020-11-08

由於 近十年來大資料的發展 。企業現在每天都需要分析來自各種來源的大量資料。
自然語言處理(NLP)是人工智慧領域的研究領域,致力於處理和使用文字和語音資料來建立智慧機器並建立見解。
 

預處理技術
 為了準備用於推理的文字資料,一些最常用的技術是:

  • 標記化: 用於將輸入文字分割成其組成詞(標記)。這樣,將我們的資料轉換為數字格式變得更加容易。
  • 停用詞移除: 用於從我們的文字中移除所有介詞(例如,“一個”,“這個”等),這些介詞只能被視為我們資料中的噪聲源(因為它們不帶有其他附加詞)我們資料中的資訊性資訊)。
  • 詞幹: 最終用於去除資料中的所有詞綴(例如字首或字尾)。這樣,實際上,對於我們的演算法而言,將其視為實際上具有相似含義(例如,有見識的見解)的專有單詞會變得容易得多。

使用標準的Python NLP庫(例如NLTK 和 Spacy),所有這些預處理技術都可以輕鬆地應用於不同型別的文字 。
另外,為了推斷語言的語法和文字結構,我們可以利用諸如詞性(POS)標記和淺解析(圖1)之類的技術。實際上,使用這些技術,我們可以使用單詞的詞法類別(基於短語語法上下文)顯式標記每個單詞。
 

建模技術

  • 言語包

 Bag of Words是一種用於自然語言處理和 計算機視覺的技術 ,目的是為訓練分類器建立新功能(圖2)。透過構建對文件中所有單詞進行計數的直方圖來實現此技術(不考慮單詞順序和語法規則)。
可能會限制這項技術功效的主要問題之一是在我們的課文中出現介詞,代詞,冠詞等。實際上,這些全都可以被認為是在我們的文字中經常出現的單詞,即使不一定真正瞭解我們文件的主要特徵和主題是什麼。
為了解決這種型別的問題,通常使用稱為“術語頻率-反文件頻率”(TFIDF)的技術。TFIDF旨在透過考慮文字中每個單詞在大量文字中整體出現的頻率來重新調整文字中單詞計數的頻率。然後,使用這種技術,我們將獎勵在文字中非常普遍出現但在其他文字中很少出現的單詞(按比例增加頻率值),同時對在文字和其他文字中頻繁出現的單詞(按比例縮小頻率值)進行懲罰(例如介詞,代詞等)。
 
  • 潛在狄利克雷分配(LDA)

潛在狄利克雷分配(LDA)是一種主題建模技術。主題建模是一個研究領域,致力於發現對文件進行聚類的方法,以便發現可以根據其內容表徵其特徵的潛在區分標記(圖3)。因此,主題建模也可以被視為  降維技術,因為它允許我們將初始資料縮減為一組有限的簇。
潛在狄利克雷分配(LDA)是一種無監督的學習技術,用於找出可以表徵不同文件並將相似文件聚類在一起的潛在主題。該演算法將 被認為存在的N個主題作為輸入 ,然後將不同文件分組為 N 個彼此密切相關的文件簇。
LDA與其他聚類技術(例如K均值聚類)的不同之處在於LDA是一種軟聚類技術(每個文件都基於機率分佈分配給聚類)。例如,可以將文件分配給群集A,因為演算法確定該文件屬於此類的可能性為80%,同時仍考慮到嵌入到此文件中的某些特徵(其餘20%)更多可能屬於第二個群集B。
 
  • 詞嵌入

詞嵌入是將詞編碼為數字向量的最常見方法之一,然後可以將其輸入到我們的機器學習模型中進行推理。詞嵌入旨在將我們的詞可靠地轉換為向量空間,以便相似的詞由相似的向量表示。
如今,有為了用來建立的Word曲面嵌入三種主要的技術:Word2Vec手套fastText。所有這三種技術都使用淺層神經網路來建立所需的單詞嵌入。
  • 情緒分析

 情感分析是一種NLP技術,通常用於瞭解某種形式的文字表達的是關於主題的正面,負面還是中立的情緒。例如,在嘗試找出有關某個主題,產品或公司的一般公眾意見(透過線上評論,推文等)時,這可能特別有用。
在情感分析中,文字中的情感通常表示為-1(負情感)和1(正情感)之間的值,稱為極性。
情感分析可以被認為是一種無監督學習技術,因為我們通常不為資料提供手工製作的標籤。為了克服這一障礙,我們使用了預先標記的詞典(一本單詞集),該詞典用來量化不同上下文中大量單詞的情感。情感分析廣泛使用的詞彙的一些例子是 TextBlob 和 VADER
  • Transformer

代表了最新的NLP模型,以便分析文字資料。BERT 和 GTP3是一些眾所周知的Transformers模型的 示例。
在建立Transformer之前,遞迴神經網路(RNN)是順序分析文字資料以進行預測的最有效方法,但是這種方法很難可靠地利用長期依賴關係,例如,我們的網路可能會難以理解前幾次迭代中輸入的單詞可能對當前迭代有用。
藉助一種稱為“注意力”  (Attention)的機制,成功地克服了這一限制(該機制 用於確定文字的哪些部分需要重點關注並給予更大的重視)。此外,Transformers使並行處理文字資料變得容易,而不是順序處理(因此提高了執行速度)。
如今,藉助Hugging Face庫,可以輕鬆地在Python中實現Transfer 。

 

相關文章