什麼是自然語言處理 (NLP)?

自然語言處理 (NLP) 使電腦能夠解釋人類語言。

學習目標

閱讀本文後,您將能夠:

  • 定義自然語言處理 (NLP)
  • 瞭解 NLP 的運作方式
  • 比較 NLP 與其他類型的人工智慧 (AI)

複製文章連結

什麼是 NLP(自然語言處理)?

自然語言處理 (NLP) 是電腦程式用來解釋人類語言的一種方法。NLP 是人工智慧 (AI) 的一種。現代 NLP 模型大多透過機器學習構建而成,也借鑒了語言學領域——對語言意義的研究。

所有電腦都可以用電腦友善的語言解釋命令和指令。例如,電腦(特別是瀏覽器應用程式)可以理解和解釋以下 JavaScript 程式碼:


window.addEventListener("scroll", popup);

function popup() {
window.alert("Hello, world!");
}

但它無法理解和解釋以下自然語言文字:


If the user scrolls, show an alert that says "Hello, world!"

然而,具有自然語言處理能力的電腦程式即使無法執行該命令,也可能能夠理解上述句子。

雖然程式設計語言是向電腦發出命令的最佳方式,但自然語言處理使電腦程式能夠使用人類語言(口頭和書面)完成各種任務。例如,它可以幫助處理錄音和書面文字的大型資料集合,自動與人類使用者互動,或解釋使用者查詢。

NLP 的其他用途包括:

  • 情緒分析:NLP 可以幫助解釋大量使用者評論、社交媒體貼文或客戶服務請求
  • 虛擬助理:NLP 對於理解 Siri、Alexa 或 Cortana 等助理使用者的請求至關重要
  • 搜尋引擎:NLP 幫助搜尋引擎更好地理解簡單的單字查詢和句子或問題形式查詢背後的搜尋意圖,以及解釋查詢中的拼字錯誤或其他人為錯誤
  • 翻譯:NLP 可以幫助理解內容並將其從一種語言翻譯成另一種語言
  • 內容審核:NLP 可以透過解釋使用者產生文字的含義來幫助標記潛在有害或令人反感的內容

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

NLP 使用機器學習來統計分析人類產生的內容並學習如何解釋它。在訓練過程中,NLP 模型會收到處於上下文中的單字和片語的範例及其解釋。例如,NLP 模型可能無法理解「orange」一詞何時表示顏色而不是水果。但在展示了數千個範例(例如「I ate an orange」或「This car comes in orange」等句子)後,模型可以開始理解這個詞,並正確解釋其含義之間的差異。

鑑於人類語言的複雜性和不一致性,NLP 通常建立在深度學習的基礎上,深度學習是一種更強大的機器學習類型。深度學習模型可以處理未標記的原始資料,但它們需要大量資料才能進行正確訓練。深度學習還需要大量的處理能力。

什麼是 NLP 預處理?

NLP 預處理是準備原始文字以供程式或機器學習模型進行分析。NLP 預處理是將文字轉換為深度學習模型可以更容易分析的格式所必需的。

存在多種 NLP 預處理方法,它們可以一起使用。主要方法包括:

  • 轉換為小寫:就單字的意思而言,大寫和小寫差別不大。因此,將所有單字轉換為小寫更有效,因為許多電腦程式區分大小寫,並且可能不必要地以不同方式處理單字的大寫版本。
  • 詞幹擷取:這種方法透過移除「-ing」或「-tion」等詞尾,將單字縮減到詞根或「詞幹」(例如,「transporting」和「transportation」都變成了「transport」)。
  • 詞形還原:這種 NLP 技術將單字簡化為可以在字典中找到的主要形式。複數或所有格名詞變成單數,例如,「neighbor's」、「neighbors'」和「neighbors」都變成「neighbor」。動詞變成原型:「went」和「goes」變成「go」。
  • 標記化:這會將文字分解成指示含義的較小部分。這些片段通常由片語、單字或子詞(首碼「un-」是子詞的範例)組成。
  • 停用詞移除:許多單字對於語法或人們相互交談時的清晰度很重要,但不會給句子增加很多意義,也不是電腦程式處理語言所必需的。這些單字在 NLP 環境中稱為「停用詞」,停用詞移除會將它們從文字中刪除。舉個例子,在「I went to college for four years」這句話中,需要「to」和「for」這兩個單字才會使這個句子在人類聽來覺得合理,但對於表達意思來說卻不是必需的。停用詞移除版本可能是:「I went college four years」。

NLP 和大型語言模型 (LLM) 有什麼不同?

大型語言模型 (LLM) 是一種機器學習模型,可以理解人類產生的文字並產生聽起來自然的輸出。LLM 與廣泛使用的 ChatGPT 一樣,都是使用非常大的文字資料集進行訓練的。

NLP 和 LLM 詞彙之間有一些重疊:兩者都使用機器學習、大型資料集和訓練來解釋人類語言。事實上,一些來源將 LLM 定義為 NLP 的一種。

然而,LLM 與 NLP 模型在幾個關鍵方面有所不同:

  • NLP 通常針對特定任務進行訓練,而 LLM 則具有廣泛的用途
  • NLP 提供見解和解釋,而 LLM 產生具有統計相關性的文字,但可能無法傳達對潛在含義的理解(儘管許多進階 LLM 可以輕鬆表現出這樣做的樣子)
  • 由於 LLM 具有廣泛的用途,因此比 NLP 模型需要更多的資料和訓練

例如,NLP 模型對於情緒分析會更有用,而 LLM 則可以很好地整合到與客戶互動的聊天機器人中。或者,NLP 模型可以幫助搜尋引擎解釋使用者的查詢並產生相關搜尋結果,而 LLM 可以根據預先存在的相關內容的統計分析編寫自己的查詢回應。

NLP、LLM 與產生式 AI 的對比

NLP 也不同於產生式 AI,但與之相關。產生式 AI 是一種深度學習模型,可以產生文字、音訊、影片、影像或程式碼。相較之下,NLP 模型通常根本不是為產生文字而設計的。同時,LLM 也是一種產生式 AI,因為它們可以產生文字來回應查詢。

Cloudflare 如何支援 NLP 模型的開發?

Cloudflare 讓開發人員在世界各地的 GPU 上執行進階深度學習,使他們能夠以最小的延遲獲得訓練 AI 模型所需的運算能力。Cloudflare R2 是一種經濟高效的儲存方法,可用於儲存對基於深度學習的 NLP 進行訓練所必需的大量資料。深入瞭解 Cloudflare for AI