自然語言處理（，縮寫作 ）是人工智慧和語言學領域的分支學科。此領域探討如何處理及運用自然語言；自然語言處理包括多方面和步驟，基本有認知、理解、生成等部分。 自然語言認知和理解是讓電腦把輸入的語言變成有意思的符號和關係，然後根據目的再處理。自然語言生成系統則是把計算機資料轉化為自然語言。 自然語言處理要研製表示語言能力和語言應用的模型，建立計算框架來實現並完善語言模型，並根據語言模型設計各種實用系統及探討這些系統的評測技術。 歷史 自然語言處理大體是從 1950 年代開始，雖然更早期也有作為。1950 年，圖靈發表論文「」，提出現在所謂的「圖靈測試」作為判斷智慧的條件。 1954 年的喬治城 IBM 實驗涉及全部超過 60 句俄文成為英文。研究人員聲稱三到五年之內即可解決機器翻譯的問題。不過實際進展遠低於預期，1966 年的發現十年研究未達預期目標，機器翻譯的研究經費遭到大幅削減。一直到 1980 年代末期，統計機器翻譯系統發展出來，機器翻譯的研究才得以更上一層樓。 1960 年代發展特別成功的 NLP 系統包括 SHRDLU 一個詞彙設限、運作於受限如「積木世界」的一種自然語言系統，以及 19641966 年約瑟夫維森鮑姆模擬「個人中心治療」而設計的 ELIZA 幾乎未運用人類思想和感情的訊息，有時候卻能呈現令人訝異地類似人之間的互動。「病人」提出的問題超出 ELIZA 極小的知識範圍之時，可能會得到空泛的回答。例如問題是「我的頭痛」，回答是「為什麼說你頭痛？」 1970 年代，程式設計師開始設計「概念本體論」（conceptual ontologies）的程式，將現實世界的資訊，架構成電腦能夠理解的資料。例項有 MARGIE、SAM、PAM、TaleSpin、QUALM、Politics 以及 Plot Unit。許多聊天機器人在這一時期寫成，包括 、 以及 。 一直到 1980 年代，多數自然語言處理系統是以一套複雜、人工訂定的規則為基礎。不過從 1980 年代末期開始，語言處理引進了機器學習的演演算法，NLP 產生革新。成因有兩個：運算能力穩定增加（參見摩爾定律）；以及喬姆斯基 語言學理論漸漸喪失主導（例如轉換 生成文法）。該理論的架構不傾向於語料庫 機器學習處理語言所用方法的基礎。有些最早期使用的機器學習演演算法，例如決策樹，是硬性的、「如果 則」規則組成的系統，類似當時既有的人工訂定的規則。不過將隱馬爾可夫模型引入 NLP，並且研究日益聚焦於軟性的、以機率做決定的統計模型，基礎是將輸入資料裡每一個特性賦予代表其份量的數值。許多語音識別現今依賴的即是一種統計模型的例子。這種模型通常足以處理非預期的輸入資料，尤其是輸入有錯誤（真實世界的資料總免不了），並且在整合到包含多個子任務的較大系統時，結果比較可靠。 許多早期的成功屬於機器翻譯領域，尤其歸功 IBM 的研究，漸次發展出更複雜的統計模型。這些系統得以利用加拿大和歐盟現有的語料庫，因為其法律規定政府的會議必須翻譯成所有的官方語言。不過，其他大部分系統必須特別打造自己的語料庫，一直到現在這都是限制其成功的一個主要因素，於是大量的研究致力於從有限的資料更有效地學習。 近來的研究更加聚焦於非監督式學習和的演演算法。這種演演算法，能夠從沒有人工註解理想答案的資料裡學習。大體而言，這種學習比監督學習困難，並且在同量的資料下，通常產生的結果較不準確。不過沒有註解的資料量極巨（包含了全球資訊網），彌補了較不準確的缺點。 2011 年以來，深度學習技巧紛紛出爐 Goldberg Yoav 2016 httpswwwjairorgmedia4992live49929623jairpdf A Primer on Neural Network Models for Natural Language Processing Journal of Artificial Intelligence Research 57 2016 345420Ian Goodfellow Yoshua Bengio and Aaron Courville httpwwwdeeplearningbookorg Deep Learning MIT Press 在自然語言處理方面獲得最尖端的成果，例如語言模型 Rafal Jozefowicz Oriol Vinyals Mike Schuster Noam Shazeer and Yonghui Wu 2016 httpsarxivorgabs160202410 Exploring the Limits of Language Modeling、語法分析 Do Kook Choe and Eugene Charniak EMNLP 2016 httpwwwaclweborgwebsiteold_anthologyDD16D161257pdf Parsing as Language ModelingVinyals Oriol et al NIPS2015 httpspapersnipsccpaper5635grammarasaforeignlanguagepdf 等等。2016 年，AlphaGo 打敗李世石；2017 年 Transformer 模型誕生；2018 年 BERT 模型推出，提出了預訓練的方法。 2022 年底，隨著 ChatGPT 等大語言模型的推出，自然語言處理的重點從自然語言理解轉向了自然語言生成。 用途 在許多情況下，學者們需要透過許多不同的資料庫來確定新的研究方向，以識別研究差距並確定迄今為止尚未研究的領域。檢查所有電子資料庫很麻煩，而且經常會遺漏重要的部分。透過使用網路抓取和自然語言處理來縮短識別研究差距所需的時間。在 Google 學術搜尋上索引的出版物的標題，自然語言處理標記化 Tokenization 從最高頻率到最低頻率對搭配進行排序。因此，自然語言處理標記化 Tokenization 確定了標題中未提及的關鍵字集，並將最初的想法確定為研究空白 Li 2021 Building Updated Research Agenda by Investigating Papers Indexed on Google Scholar A Natural Language Processing Approach Advances in Intelligent Systems and Computing book series volume 1213 pp 298305 。 任務和限制 理論上，NLP 是一種很吸引人的人機互動方式。早期的語言處理系統如 SHRDLU，當它們處於一個有限的 積木世界，運用有限的詞彙表會話時，工作得相當好。這使得研究員們對此係統相當樂觀，然而，當把這個系統拓展到充滿了現實世界的含糊與不確定性的環境中時，他們很快喪失了信心。 由於理解自然語言，需要關於外在世界的廣泛知識以及運用操作這些知識的能力，自然語言認知，同時也被視為一個人工智慧完備的問題。同時，在自然語言處理中，理解 的定義也變成一個主要的問題。 實際問題 一些 NLP 面臨的問題例項： 句子 我們把香蕉給猴子，因為（牠 們）餓了 和 我們把香蕉給猴子，因為（它 們）熟透了 有同樣的結構。但是代詞 它們 在第一句中指的是 猴子，在第二句中指的是 香蕉。如果不瞭解猴子和香蕉的屬性，無法區分。（簡體中文和英文的 它 it 沒有區分，但在正體中文裡 「牠」和「它」 是有區別的，只是代詞在中文裡常常被省略，因此需區別屬性並且標示出來） 不少的中文相關笑話即是利用類似結構的中文造句而成，此類笑話通常帶有 中文博大精深 之類的詞彙，敘述多以老外參加考試為背景。例子如下： 自然語言處理研究的難點 單詞的邊界界定 在口語中，詞與詞之間通常是連貫的，而界定字詞邊界通常使用的辦法是取用能讓給定的上下文最為通順且在文法上無誤的一種最佳組合。在書寫上，漢語也沒有詞與詞之間的邊界。 詞義的消歧 許多字詞不單只有一個意思，因而我們必須選出使句意最為通順的解釋。 句法的模糊性 自然語言的文法通常是模稜兩可的，針對一個句子通常可能會剖析出多棵分析樹，而我們必須要仰賴語意及前後文的資訊才能在其中選擇一棵最為適合的剖析樹。 有瑕疵的或不規範的輸入 例如語音處理時遇到外國口音或地方口音，或者在文字的處理中處理拼寫，語法或者光學字元識別（OCR）的錯誤。 語言行為與計劃 句子常常並不只是字面上的意思；例如，你能把鹽遞過來嗎，一個好的回答應當是動手把鹽遞過去；在大多數上下文環境中，能 將是糟糕的回答，雖說回答 不 或者 太遠了我拿不到 也是可以接受的。再者，如果一門課程去年沒開設，對於提問 這門課程去年有多少學生沒透過？ 回答 去年沒開這門課 要比回答 沒人沒透過 好。 當前自然語言處理研究的發展趨勢 第一，傳統的基於句法 語義規則的理性主義方法過於複雜，隨著語料庫建設和語料庫語言學的崛起，大規模真實文字的機器學習處理成為自然語言處理的主要選擇。 第二，統計數學方法越來越受到重視，自然語言處理中越來越多地使用機器自動學習的方法來獲取語言知識。 第三，淺層處理與深層處理並重，統計與規則方法並重，形成混合式的系統。 第四，自然語言處理中越來越重視詞彙的作用，出現了強烈的 詞彙主義 的傾向。詞彙知識庫的建造成為了普遍關注的問題。 統計自然語言處理 統計自然語言處理運用了推測學、機率、統計的方法來解決上述，尤其是針對容易高度模糊的長串句子，當套用實際文法進行分析產生出成千上萬筆可能性時所引發之難題。處理這些高度模糊句子所採用消歧的方法通常運用到語料庫以及馬可夫模型。統計自然語言處理的技術主要由同樣自人工智慧下與學習行為相關的子領域：機器學習及資料採掘所演進而成。 主要範疇 文字朗讀 語音合成 語音識別 斷詞／分詞 中文自動分詞 語法分析／剖析 漢語自動句法分析 詞彙標示框架 n 元語法 詞嵌入 詞性標註 文件分類 自然語言生成 文字分類 資訊檢索 資訊抽取 文字校對 問答系統 給一句人類語言的問句，決定其答案。 典型問題有特定答案（像是加拿大的首都叫什麼？），但也考慮些開放式問句（像是人生的意義是是甚麼？） 聊天機器人 對話系統 機器翻譯 將某種人類語言自動翻譯至另一種語言 自動摘要 產生一段文字的大意，通常用於提供已知領域的文章摘要，例如產生報紙上某篇文章之摘要 文字蘊涵 命名實體識別 主題模型 文字情感分析 語意分析 潛在語義學 詞袋模型 標籤雲 自然語言理解 形態分析 參見 電腦語言學 受限自然語言 資訊抽取 資訊檢索 詞嵌入 自然語言理解 潛在語義索引 潛在語義學 機器記者 計算語言學 深度學習 隱含狄利克雷分佈（LDA） 擴充套件查詢 語音處理 校對 問答系統 Word2vec BERT 參考文獻 延伸閱讀 Steven Bird Ewan Klein and Edward Loper 2009 Natural Language Processing with Python OReilly Media ISBN 9780596516499 Daniel Jurafsky and James H Martin 2008 Speech and Language Processing 2nd edition Pearson Prentice Hall ISBN 9780131873216 Christopher D Manning Prabhakar Raghavan and Hinrich Schütze 2008 Introduction to Information Retrieval Cambridge University Press ISBN 9780521865715 Official html and pdf versions available without charge Christopher D Manning and Hinrich Schütze 1999 Foundations of Statistical Natural Language Processing The MIT Press ISBN 9780262133609 David M W Powers and Christopher C R Turk 1989 Machine Learning of Natural Language SpringerVerlag ISBN 9780387195575 外部連結 人類語言技術當前發展情況概覽 哥倫比亞大學自然語言處理研究組 卡內基梅隆大學語言技術研究院 斯坦福大學自然語言處理研究小組 中文自然語言處理開放平臺 ACL（美國電腦語言學協會）提供的相關雜誌以及研討會的論文 GATE a Java Library for Text Engineering LTP 語言技術平臺（簡體中文） Python 程式語言的自然語言處理工具包教程 fastNLP Category 計算領域研究 Category 計算語言學 Category 語音識別