iT邦幫忙

2024 iThome 鐵人賽

DAY 23
0

自然語言處理 NLP

前言

其實在寫到今天的文章之前,我對於NLP都只是略有耳聞,但不知道他的細節,但在賽前我在規劃要介紹甚麼的時候,請chatGPT給我一點靈感,他剛好提到了NLP,因此抱持著既然我對NLP不理解,那乾脆來寫一篇文章來介紹NLP的同時,順便讓自己對這個酷東西有點認知~

認識NLP

那麼,什麼是自然語言處理呢?簡單來說,NLP 是一種機器學習的技術,目的是讓電腦能夠解譯、操縱及理解人類語言。這使得電腦能像人一樣處理和分析語言數據,並應用於像是語音辨識、語言翻譯及聊天機器人等任務。透過 NLP,電腦不再只是一個數字和符號的處理工具,而是變成一個能理解我們語言的「夥伴」。
image

  • 自然語言和程式語言雖然同為「語言」,但在結構、目的和使用方式上存在很大的差異。
    • 自然語言:自然語言是人類日常用來交流和表達思想的語言,如中文、英文等。它的設計目的是為了溝通交流,具備模糊性和靈活性,讓人們能夠描述思想、情感或事實。
    • 程式語言:程式語言是為了指令電腦執行特定任務而設計的。程式語言必須精確且具結構性,因為電腦只能按照具體指令進行運算。程式語言如 Python、C++、Java 等,主要用來編寫軟體和解決問題。

兩大核心任務:自然語言理解(NLU)和自然語言生成(NLG)

自然語言處理技術依賴於兩個主要的子領域:自然語言理解(NLU) 和 自然語言生成(NLG)。它們分別負責理解語言的內涵和生成語言的表達。

  1. 自然語言理解(NLU, Natural Language Understanding)
    NLU 專注於讓機器理解和解釋人類語言的含義,幫助機器從文本中提取有用的資訊。它的目標是將非結構化的自然語言轉換為結構化的數據,方便後續的處理。NLU 涉及語義分析、語法解析和情感分析等任務。主要應用場景包括:
  • 語音助手:像 Siri 或 Alexa,透過 NLU 來理解使用者語音中的意圖,之後進行適當的回應或操作。
  • 文本分類:根據文章或訊息的內容對其進行自動分類,常見於垃圾郵件過濾或新聞分類系統中。
  • 問答系統:理解使用者問題,並從資料庫或文件中提取相關答案。

NLU 的挑戰之一是處理人類語言的模糊性和上下文依賴,這需要高度先進的語言模型來克服。

  1. 自然語言生成(NLG, Natural Language Generation)
    NLG 是讓機器根據已理解或處理過的資訊生成自然語言表達的過程。NLG 使得機器能夠以流暢、邏輯的方式生成回應或描述,應用於多種場景:
  • 自動摘要:將大量文本濃縮成簡短的關鍵內容摘要,這在新聞或學術研究領域非常常見。
  • 自動回應生成:在客服或聊天機器人應用中,NLG 幫助生成自然的回應來解答顧客的問題或提供幫助。
  • 報告生成:從結構化數據中自動生成報告,如財務報表、醫療報告等。

NLG 的挑戰在於確保生成的內容具備語法正確性、上下文連貫性,並且符合預期的語氣或風格。

NLU 與 NLG 的關聯性

NLU 和 NLG 是 NLP 的兩個互補性任務。NLU 讓機器能夠理解人類語言,而 NLG 則讓機器可以生成自然語言回應。在實際應用中,這兩者經常結合使用,例如在語音助手和智能客服系統中,NLU 用於理解使用者的語音或文本輸入,然後透過 NLG 來生成適當的回應。

這兩個技術的發展使得我們的數位體驗更加人性化,讓機器不僅能聽懂我們的話,還能自然、流暢地回應我們的需求。

透過下面這張圖片可以很清楚的看到自然語言處理的架構:
image
可以注意到在技術應用場景,展示了 NLU 和 NLG 各種技術在實際應用中的場景,如:

  1. 情緒分析等
  2. 搜尋建議更正
  3. 詞類標示
  4. 機器翻譯
  5. 人名辨識擷取
  6. 摘要文本大綱
  7. 語音辨識
  8. 句法分析
  9. 偵測詐騙郵件
    統整下來他們之間透過NLU在語言的解析與理解,並透過NLG根據系統內部的邏輯和資料生成自然語言,最後兩者結合,使 NLP系統能夠更智能地處理和生成自然語言。

流程

在上面有舉了九個例子,其中我覺得很基本也最常見的就是偵測詐騙郵件,這個過程主要利用機器學習和自然語言處理技術來識別和過濾不良郵件,就以這個來作為例子來介紹流程。

在NLP的運作下,通常會有幾個主要流程:

  1. 資料收集
    • 在這個步驟通常會需要收集各類電子郵件樣本,包括正常郵件和詐騙郵件。這些資料可能來自電子郵件服務提供商的歷史數據、用戶反饋或公開的詐騙郵件資料集。
  2. 資料預處理:
    • 清理資料:移除無關或重複的郵件,並標記為正常或詐騙郵件。
    • 文字處理:包括斷詞、去除停用詞(如「是」、「的」等)、詞性標註、詞幹提取或詞形還原,以簡化文本分析。
  3. 特徵提取:
    • 從郵件內容中提取特徵,這些特徵可以是:
      • 詞頻:特定單詞在郵件中的出現頻率。
      • TF-IDF:用來衡量一個詞對於某一郵件的重要性。
      • 郵件結構:如主旨、發件人、收件人、時間等。
      • 語言特徵:例如情感分析、常見的詐騙詞彙(如「免費」、「贈品」、「立即行動」等聳動的或是吸引人的詞彙)。
      • URL和附件分析:檢查郵件中的超連結和附件,是否指向可疑網站或含有惡意代碼。
  4. 訓練
    在這個步驟不用多說,就是要對前面提取的特徵進行訓練。

結語

在看了很多文章及資料後,我覺得這篇文章真的介紹得很好,如果大家對於NLP有更多興趣可以花點時間來看看。文章連結


上一篇
[Day 22] 初見生成對抗網路
下一篇
[Day 24] 生成式AI的影響與挑戰
系列文
深度學習的學習之旅:從理論到實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言