iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 29
9
AI & Data

英雄集結:深度學習的魔法使們系列 第 29

[魔法小報] 深度學習在自然語言處理(NLP)的技術與應用

自然語言處理(NLP)的目標是設計演算法來讓電腦「理解」自然語言以執行一些任務,依難易度舉例如下:

  • 簡單
    • 拼寫檢查(Spell Checking)
    • 關鍵字搜尋(Keyword Search)
    • 找出同義詞
  • 中等
    • 從網站、文件中解析訊息
  • 困難
    • 機器翻譯(Machine Translation ),如將英文翻譯成德文
    • 語義分析( Semantic Analysis)
    • 指代(coreference),如『他』、『它』分別指的是什麼
    • 問答系統(Question Answering)

https://ithelp.ithome.com.tw/upload/images/20181112/20112540w85CFIgbs4.png

圖片來源:https://www.ontotext.com/top-5-semantic-technology-trends-2017/

經典的 NLP 實現方法

  • 分詞
    將句子分成最小的語義單位,是信息檢索、文本分類、情感分析等後續自然語言處理任務的基礎。英文的分詞可用空格切,而中文分詞是困難的。

  • 詞形還原
    指的是將詞語還原成最基本的形式,以英文來說,例如: am, are, is 轉成 be

  • 詞性標注(POS,Part-Of-Speech)
    標上詞性類別,像是名詞、動詞、形容詞。以語法特徵為主要依據,為兼顧詞彙意義的對詞進行劃分。
    https://ithelp.ithome.com.tw/upload/images/20181112/20112540UwJtLcztIG.png

    圖片來源:https://nlpforhackers.io/training-pos-tagger/

  • 依存語法
    分析句子中的主謂賓等,相互分析之間的依賴關係,一個句子只有一個「根」。
    https://ithelp.ithome.com.tw/upload/images/20181112/20112540p1MFJQUDA2.png

    圖片來源:https://www.cs.bgu.ac.il/~elhadad/nlp12/nlp03.html

  • 命名實體識別(Named Entity Recognition, NER)
    在句子的序列中,定位並識別人名、地名、機構名等任務。
    https://ithelp.ithome.com.tw/upload/images/20181112/20112540aajJx0HXqy.jpg

    圖片來源:https://blog.paralleldots.com/data-science/named-entity-recognition-milestone-models-papers-and-technologies/

而在深度學習崛起後,加速 NLP 的研究發展。
https://ithelp.ithome.com.tw/upload/images/20181112/20112540C9Un51af6n.png

圖片來源:https://medium.com/intro-to-artificial-intelligence/entity-extraction-using-deep-learning-8014acac6bb8

基於深度學習的 NLP 常用技術

  • Word2vec

將語料庫中的單詞(word)分佈在向量空間中,其中單詞之間的餘弦距離(Cosine Distance)用於衡量彼此的相似性,在上下文中給出一個單詞來識別性別和地理位置,如下圖的 Vector Representations:
https://ithelp.ithome.com.tw/upload/images/20181112/20112540y0B3v1Nrip.png

圖片來源:https://medium.com/cityai/deep-learning-for-natural-language-processing-part-i-8369895ffb98

  • Word2vec 與 one-hot encoding 的比較:

    • 過去在傳統機器學習方法針對單詞是做one-hot encoding,把每個單詞當成一個維度,若總共有十萬個單詞,那就會有十萬個維度。one-hot encoding 使用稀疏方式儲存,非常簡潔,但缺點是不能體現單詞和單詞之間的關係,且容易產生維度災難(curse of dimension)。
    • Word2vec 屬於非監督式學習(Unsupervised Learning),無需標記數據,透過 cluster 單詞來學習,自動完成關聯,有Skip-gramCBOW 等方法來實現。完成 Word2vec 訓練後,可以映射每個詞到一個向量,用來表示詞對詞之間的關係。
      https://ithelp.ithome.com.tw/upload/images/20181112/20112540tReWtVsFM5.png

    圖片來源:https://towardsdatascience.com/word2vec-skip-gram-model-part-1-intuition-78614e4d6e0b

  • RNN/LSTM/GRU
    特色是可處理序列的資料,很高興我們之前有把 RNN 核心魔法陣說明過了,傳送門:- [魔法陣系列] Recurrent Neural Network(RNN)之術式解析
    https://ithelp.ithome.com.tw/upload/images/20181112/20112540Fl3jCJ4pFG.png

圖片來源:論文《Recent Trends in Deep Learning Based Natural Language Processing》

圖片來源:論文《Recent Trends in Deep Learning Based Natural Language Processing》
莉森之喃喃:曾用 CNN 處理文本分類的任務,實作的效果很不錯。

例子:NLP 處理流程

詞嵌入(Word Embeddings)→→→ 編碼(Encode) →→→ 注意力(Attend) →→→ 預測(Predict)

  1. 詞嵌入:將維數為所有詞數量的高維空間壓縮/嵌入低維空間,是連續的實數域的向量空間。把詞與詞之間的關係,也編碼進入這個向量。
    https://ithelp.ithome.com.tw/upload/images/20181112/20112540aL6eNrm2j5.png

圖片來源:論文《Recent Trends in Deep Learning Based Natural Language Processing》

  1. 編碼:透過 RNN 等技術將詞語向量進一步編碼,編碼成一個考慮上下文和語義的向量。
    https://ithelp.ithome.com.tw/upload/images/20181112/2011254044omIwc65x.png

圖片來源:https://towardsdatascience.com/seq2seq-model-in-tensorflow-ec0c557e560f

  1. Attention 機制:Attention 的概念為注意力,聚焦在輸入序列中被認為比較重要的詞。
    參考資源:

圖片來源:論文《Recent Trends in Deep Learning Based Natural Language Processing》

  1. 解碼:通過全連接層將一個壓縮的向量映射到目標對象,如詞語。

呼~這一篇跟電腦視覺一樣花了非常多時間在寫,下一篇,也就是鐵人賽最後一篇了!一同來為「英雄集結:深度學習的魔法使們」系列畫下句點吧。


上一篇
[魔法小報] 深度學習在電腦視覺(Computer Vision)的技術與應用
下一篇
[魔法小報] 深度學習在聊天機器人(Chatbot)的技術與應用
系列文
英雄集結:深度學習的魔法使們31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
喵咪大師
iT邦新手 5 級 ‧ 2019-08-21 14:28:04

受益良多

我要留言

立即登入留言