Natural Language Processing 自然語言處理

picture

2024-06-04

Natural Language Processing 自然語言處理

Natural Language Processing 自然語言處理

前言

Natural Language Processing (NLP)自然語言處理是一種機器學習的技術,主要是為了讓電腦能夠理解人類語言。而電腦理解人類語言到底有多困難?人們在說話或打字時有時會發生錯誤,例如輸入錯別字、加入個人習慣的語句,許多文字的意思有時是取決於前後文或是使用情境,這對於人類來說有時候也是會產生誤解與不理解的情況,何況要讓電腦理解人類所想表達的意思。

因現今深度學習應用在自然語言處理方面效果卓越,產生語言模型與語法分析的技術,隨著後續許多語言模型的問世(例如:ChatGPT),現在自然語言處理著重的點也從「理解」轉為「生成」。在這篇文章中將會說明何謂自然語言處理(NLP)、自然語言處理如何運作、自然語言的應用,提供對自然語言有興趣的讀者進行初步的介紹與相關實例的參考。 接下來將會依據以下幾個主題進行敘述:

What is natural language processing 什麼是自然語言處理(NLP)?

自然語言處理(NLP)如何運作?

自然語言處理(NLP)的相關應用

What is natural language processing 什麼是自然語言處理(NLP)?

自然語言處理NLP 是人工智慧(AI)的分支領域,使用機器學習技術來處理與解讀文字和資料,NLP的主要目的是讓電腦能夠像人類一樣理解和生成自然語言,從而實現人機互動。在前言中提到的「理解」指的是自然語言理解是由電腦把輸入的語言變成有意思的符號和關係,然後根據目的再處理;而「生成」指的是自然語言生成系統則是把計算機數據轉化為自然語言。

人類不會想到自己母語的複雜性,這是一種長期習慣後的直覺式行為。語言並沒有遵循一套嚴格的規則,所以包含了很多例外,然而就是這些例外對於人類而言是自然而然的事情,可對於擁有大量非結構化資料、缺乏正式規則而且沒有實際的背景資訊的電腦來說,卻是非常困難。隨著近年來機器學習和人工智慧(AI)引起關注和蓬勃發展的原因,為了需要讓電腦理解我們人類的語言,來更準確且快速地執行任務,自然語言處理(NLP)也隨著AI有所發展。

[!IMPORTANT]
自然語言處理(NLP)對於完整且高效地分析文字和語音資料至關重要。透過深度學習,能夠從日常對話、方言、俚語和不規則性的語法差異來進行運作。

自然語言處理(NLP)的最新發展

隨著AI人工智慧和機器學習技術的快速進步,自然語言處理(NLP)領域也迎來了眾多突破和創新。這些發展不僅提升了NLP系統的性能,也擴展了其應用範圍。 以下簡單介紹NLP的最新發展:

最新發展

預訓練語言模型

[!NOTE] BERT(Bidirectional Encoder Representations from Transformers)由 Google 開發的 BERT 模型通過雙向語境理解,顯著提高了多種 NLP 任務的效果,如問答系統和情感分析。

[!NOTE] GPT(Generative Pre-trained Transformer)OpenAI 開發的 GPT 系列模型以其強大的文本生成能力著稱。最新的 GPT-4 模型可以生成更加流暢和自然的文本,應用於聊天機器人、自動寫作等場景。

多模態學習

[!NOTE] 跨模態模型:將文字和圖像數據結合,實現更複雜的任務,如圖片標註、文字生成和影片分析。CLIP 和 DALL-E 是這方面的典型代表。

[!NOTE] 視覺語言模型:如 VQA(Visual Question Answering),能夠回答有關圖像內容的問題,提升了人機互動的體驗。

自然語言處理(NLP)如何運作?

自然語言處理(NLP)是一個多層次的過程,涉及將機器學習及其他技術應用於語言處理。這些技術通常將語言轉換成數值陣列,稱為「向量」,這些向量代表資料集中的各種情況。這些數值陣列的集合稱為矩陣,每一列代表一個實例,每一行代表一個特徵。 而對於不熟悉數學語言的人來說,以上這些概念比較抽象。以實際的表格類型舉例來說,以一個包含員工資料的表格資料集,每一列代表一位員工,每一行代表員工的不同屬性,如年齡、職位、薪資等。也類似於每一列代表一個實例,每一行代表一個特徵。

NLP的基本術語

在進一步了解NLP是如何運作之前,需要先清楚一些基本術語:

文件(Document):單一語言實例,如一個句子或一篇文章。

語料庫(Corpus):文件的集合。

標記化(Tokenization):將文件分解成較小部分,如單字或短語,這些部分稱為標記(Token)。

詞彙(Vocabulary):語料庫中所有標記的集合。

NLP運作的主要步驟

文本預處理

  1. 分詞(Tokenization):分詞是將文本分割成單獨的詞或子詞。這個步驟對於後續的分析和處理至關重要。

    例如:輸入句子:"我喜歡學習自然語言處理。"

分詞結果:中文:["我", "喜歡", "學習", "自然語言處理"]

英文版本:

輸入 "I like learning natural language processing."

分詞結果: ["I", "like", "learning", "natural", "language", "processing"]

  1. 去除停用詞(Stop Words Removal):去除停用詞是指在分析中一些無關緊要的常見詞或贅詞,例如"的"、"是"、"and"、"the"等。

    例如:輸入分詞結果:["我", "非常", "喜歡", "學習", "自然語言處理"]

去除停用詞後:["喜歡", "學習", "自然語言處理"]

  1. 詞形還原和詞幹提取(Lemmatization and Stemming):詞形還原將詞語還原到其基本形式,而詞幹提取則是去掉詞語的詞尾變換。

    輸入詞語(英文範例):["running", "jumps", "easily"]

詞形還原(Lemmatization)結果:["run", "jump", "easy"]

詞幹提取(Stemming)結果:["run", "jump", "easili"]

特徵提取

  1. 詞袋模型(Bag of Words, BoW):將文本表示為詞語的無序集合,僅關注詞頻。

例如:語料庫:["I like learning", "I like coding"]

詞袋模型結果 like learning coding
文本1 1 1 0
文本2 1 0 1
  1. TF-IDF(Term Frequency-Inverse Document Frequency):計算詞語在文檔中的重要性,平衡常見詞和罕見詞的影響。

例如:語料庫:["I like learning", "I like coding"]

TF-IDF 計算結果 like learning coding
文本1 0.5 0.8 0
文本2 0.5 0 0.8

語言模型

  1. 統計語言模型:基於統計方法,使用 n-gram 模型來預測文本中的下一個詞。

例如:假設輸入為 "I like",二元模型 (bigram) 可能預測 "learning" 的概率較高。

  1. 神經網絡語言模型:使用深度學習技術,如 RNN、LSTM 和 Transformer 模型,來捕捉上下文語義並進行文本生成和理解。

例如:輸入語句為 "I like",模型可能生成 "I like learning new things."

自然語言理解(NLU)

  1. 詞性標註(Part-of-Speech Tagging, POS Tagging):標註每個詞的詞性,如名詞、動詞、形容詞等。

例如:輸入句子:"I like learning"

POS 標註結果:["I/PRON", "like/VERB", "learning/VERB"]

  1. 命名實體識別(Named Entity Recognition, NER):識別文本中的實體,如人名、地名、組織名等。

例如:輸入句子:"Straw Ho was born in Chiayi."

NER 結果:["Straw Ho/PERSON", "Chiayi/LOCATION"]

  1. 句法解析(Syntactic Parsing):分析句子的語法結構,構建句法樹。

例如:輸入語句"I like learning" 句法解析結果:

(ROOT

(S

(NP (PRP I))

(VP (VBP like)

(VP (VBG learning)))))

  1. 語義角色標註(Semantic Role Labeling, SRL):識別句子中的謂詞-論元結構,理解動詞和相關實體的關係。

例如:輸入語句"Straw gave Jodie a book." SRL 結果:["Straw/施事者", "gave/動詞", "Jodie/受事者", "a book/受益物"]

自然語言生成(NLG)

  1. 文本生成:根據輸入數據生成自然語言文本,如自動摘要、報告生成等。

例如:輸入摘要請求:"請幫我生成關於NLP的簡介" 生成文本結果:"自然語言處理(NLP)是人工智慧的一個分支,旨在使計算機能夠理解和處理人類語言。"

  1. 對話系統:建立能夠與人類進行自然對話的系統,如聊天機器人和語音助手。

例如:User:"今天天氣怎麼樣?"對話系統回應:"今天是晴天,溫度在25度左右。"

自然語言處理(NLP)的相關應用領域

目前企業將 NLP 應用於多項自動化任務,例如:

    1. 處理、分析和封存大型文件: 自動化文檔處理系統能夠高效地處理和分析大量文件,如法律檔案、醫療記錄和研究報告,從中提取關鍵信息並進行分類和存檔。
    1. 分析客戶意見回饋或呼叫中心記錄: 通過情感分析和主題建模,企業可以了解客戶的情感傾向和關注的問題,從而改進產品和服務。
    1. 執行聊天客服機器人以實現自動化客戶服務: 聊天機器人使用 NLP 技術來理解和回應客戶的問題,提供即時的幫助和支持,減少人工客服的負擔。
    1. 回答可訓練之問題(誰、什麼、何時、在哪裡): 問答系統可以根據自然語言問題從文本數據庫中提取準確的答案,用於知識庫查詢、教育輔助等領域。
    1. 分類和擷取文字: 文本分類和信息擷取技術可以自動對電子郵件、新聞文章、社交媒體帖子等進行分類,並從中提取出有價值的信息,如關鍵實體、事件和數據。

從這五項的自動化任務中,可延伸出相關的應用,而NLP目前常見的應用如下:

聊天機器人:在公司網站或是其他企業的支援協助頁面都能看到聊天機器人的影子,這些聊天機器人根據複雜性有所不同,有些聊天機器人只能回應特定的關鍵字類似於處理簡易問題的客服,有些卻能與人進行簡單的對話。聊天機器人大多使用到自然語言處理和機器學習,他們能夠理解語言的複雜性並找到句子的實際含義,因應用了深度學習還可以從與人類的對話中學習並隨著時間與次數的推移變得更好。

2303 q897 005 S m009 c10 chat bot flat infographic

搜尋引擎中的自動完成:這個功能在日常是非常常見的,例如Google的搜尋引擎就有這個功能,當輸入「蘋果」時,你有可能會得到有關「蘋果」水果類型的建議,也有可能會得到「Apple」這家科技公司的搜尋建議,這些建議都是透過自動完成功能提供的,該功能會使用自然語言處理來猜測您想問什麼。搜尋引擎使用其龐大的資料庫來分析客戶在輸入特定單字時可能輸入的內容,並在搜尋過程中建議最常見的可能性。他們使用自然語言處理來理解這些單字以及它們如何相互連接以形成不同的句子。

mockup-structure-sample-style-layout-concept

語音助理:目前常見的語音助理像是Siri、Alexa或是Google Assistant都有使用到自然語言處理的技術,而語音助理主要任務通常為協助撥打電話、發出提醒、安排會議、設定鬧鐘、上網等。在技術層面上語音助理是使用語音識別、自然語言理解和自然語言處理的複雜組合來理解人類所說的話,並且採取行動,但目前語音助理還有需要克服的問題,畢竟語音輸入不像文字輸入,語音內容可能會多了些口語化和不必要的贅詞。

5116802

語言翻譯與語法檢查:當你想將中文翻譯成英文,你會使用什麼翻譯工具?常見的翻譯工具像是Google翻譯、DeepL翻譯,都能協助你將文字從一種語言轉換成另一種語言,在NLP的技術層面上翻譯工具使用序列到序列建模。而翻譯過程中有時候會產生語法問題,現今許多語法檢查工具(如:Grammarly、ProWritingAid等),使用NLP演算法經過數百萬個句子的訓練,理解該語言的正確的語法格式。這些語法工具能夠建議使用者正確的動詞時態、推薦更好的同義詞或更清晰的句子結構。

10170121

電子郵件分類與過濾:電子郵件目前仍然是商用與工作常見的溝通方式,但電子郵件容易收到一些促銷或是不必要的推薦內容,以Google Mail系統為例,他將電子郵件自動分類成三個部分,分別為主要、社交與促銷,如果你想查看特定的郵件則點擊對應的分類。但是系統是怎麼去分類這些電子郵件是屬於哪些類型的呢?在電子郵件服務中會使用自然語言處理來識別每封電子郵件的內容並進行文字分類,以便將其放入相似的類別。但這個方法還是有可能發生把信件放置到錯誤的類別的狀況發生。

composing-email-digital-device

總結

自然語言處理 (NLP) 是一個快速發展且影響深遠的技術領域。隨著機器學習和深度學習技術的不斷進步,NLP 已經在許多實際應用中取得了顯著的成就。而目前的NLP並非最完善的階段,其面臨的挑戰包含到「多語言處理」、「語義理解」、「數據偏見」等。但現今所應用NLP的領域十分廣泛,從社交媒體監控、翻譯工具、智慧家庭設備、調查分析等都可以看到NLP的身影,因其應用數量非常驚人,為了要改善人們與計算機的溝通,NLP在未來技術應用上會越來越進步且越貼近人們日常,未來根據使用者不同而有所調整,也就是NLP的使用者族群個人化也有可能誕生,這也間接驗證了「科技始終來自於人性」。

總體而言,自然語言處理技術的迅速發展正不斷改變我們與電腦計算機互動的方式。隨著人工智能與科技技術的不斷進步,我們可以預見NLP將在更多領域中發揮重要作用,為我們的工作和生活帶來更多便利和可能性。

Reference

straw_avatar

Straw Ho

使用者介面设计师

如果用电鳗的电电电鳗电鳗会被电鳗的电电麻吗?如果用刺猬的刺去刺刺猬刺猬会被刺猬的刺刺到还是被刺猬的刺挡住?

查看作者的其他文章

分享到

回上页