自然語言處理

出自維基百科,自由嘅百科全書
用家:「喂,Alexa,今日天氣點?我應該著咩衫出街?」
虛擬助理 Alexa:「今日嘅氣溫最高會去到成攝氏 30° 咁高,著短袖嘅裇衫就啱嗮。」

自然語言處理zi6 jin4 jyu5 jin4 cyu2 lei5英文natural language processingNLP)係人工智能語言學嘅一個綜合領域,包含咗一系列用嚟教電腦處理同運算語言文字嘅技術。NLP 工作者仲用呢啲技術開發出有用嘅電腦系統[1]

NLP 做嘅嘢大致如下[1][2]

  • 喺人類當中自然噉發展出嚟、平時講嘢會用嘅語言就係所謂嘅自然語言-好似英文、粵語日本話等都係自然語言(相對於例如程式語言等嘅形式語言);
  • NLP 嘅數據來源可以分做字詞兩大類-前者指事先錄低嘅人講嘢嘅聲,而後者就係以文字形式呈現嘅語言,來源可以係網頁同各種嘅文件,例如好多 NLP 程式開始嗰陣都會有陳述式教部電腦由邊個邊個網頁嘅 HTML 度攞要處理嗰段字;
  • 攞到要處理嘅數據做 input 之後,個 NLP 程式要有啲特定嘅演算法嚟處理段字,最後得出某啲 outputoutput 係乜就視用途而定-有啲程式目的係要翻譯段字,所以 input 係一段字,而 output 係一段用目標語言寫、意思等同 input 嗰段字嘅字[3]

喺廿一世紀初,NLP 俾人工智能研究者視為人工智能其中一個最重要嘅領域,例如好出名嘅 Google 翻譯就用咗 NLP 技術嚟做翻譯[4],而且 NLP 方面嘅技術仲可以攞嚟做傾偈機械人等嘅休閒用途[5]。因為 NLP 咁有用,Python 程式語言仲有埋 NLTK 呢套函式庫專做 NLP 相關嘅工作[6]

定位[編輯]

兩個大人喺度用自然語言嚟傾偈。
內文:人工智能自然語言
睇埋:運算語言學同埋概率論

自然語言處理係一種人工智能(AI)技術,專門教電腦處理自然語言[e 1][註 1]。喺語言學上,自然語言係指一啲响人類當中自然噉發展出嚟、人類日常講嘢寫嘢會用嘅語言-好似粵語客家話英文等等都係自然語言,呢啲語言有異於

自然語言有好多重要嘅特徵[7]

  • 歧義[e 2]:自然語言同電腦處理開嘅形式語言好唔同;喺程式語言同數學語言裏面,隻隻符號都有固定明確嘅意思,而相比之下,自然語言就成日都出現「一隻字有幾個唔同嘅可能意思」嘅情況(例子可以睇一字多意嘅問題),甚至隻字根本冇明確意思
  • 反話[e 3]:自然語言入面可以有反話呢樣嘢;想像一個人聽佢朋友彈結他,聽完佢就話「嘩,你彈得好好喎」-呢句嘢嘅真實意思受制於講嗰個人嘅表情同第啲身體語言影響,例如如果個人講嗰陣個表情係完全唔興奮嘅話,佢好有可能係講緊反話;由呢啲噉嘅例子可以睇得出,判斷一句自然語言句子嘅意思嗰時唔可以齋靠字面解[8]
  • 語言演變:一隻自然語言嘅語義文法等特性會隨時間演變,例子可以睇潮流用語(啲人作新嘅字或者詞)嘅現象;噉亦表示,自然語言梗會有不確定性喺入面,而要模擬自然語言,就要用到涉及機率嘅做法,會用到類似以下噉嘅符號
    ;日常用語講,呢串嘢意思係「串字()係 man zi 嘅機率」[註 2]

... 呀噉。自然語言嘅呢啲特徵會對「應該用咩方法應付佢哋」有具體嘅影響:廿世紀電腦要求用家俾嘅命令極度精確,唔可以有歧義或者含糊,喺一大串 01 裏面多咗或者少噉咗個 0 都會搞到部機做嘅運算錯嗮甚至輕機,更加唔好話會識得考慮對方講嘢嗰陣啲身體語言(理解反話嗰時必要諗嘅嘢)或者語言演變[9]。NLP 就係喺廿世紀後半橛至廿一世紀初興起嘅 AI 技術,專門諗點樣用特製嘅演算法嚟教電腦處理自然語言[1]

符號 NLP[編輯]

一本意大利文字典;字典會講明種語文入面每隻字嘅定義,但唔同語文嘅字係咪吓吓都有得一對一呢?
睇埋:規則為本機械翻譯

符號 NLP 係最原始嗰種 NLP 做法,喺 1950 至 1990 年代盛行[10]。根據符號 AI [e 4]個諗頭,想教電腦做出「處理自然語言」等似有智能嘅行為,淨係需要教電腦識一啲能夠明文噉寫出嚟嘅法則就得,NLP 都唔例外,形成咗所謂嘅符號 NLP;舉個具體例子,想像用呢種方針做自動翻譯,將英文譯做粵語,可以用好似以下噉嘅方法[11][12]

  • 要有本字典,做到將英文入面每隻字轉做粵語入面「對應」嘅字;
  • 要有拃法則表示英文入面嘅句子結構
  • 要有拃法則表示粵語入面嘅句子結構;

跟住部機就可以用以下嘅步驟做翻譯:

  1. 攞要翻譯嘅文字做 input,例如家陣想將英文句子 the girl eats an apple 譯做粵語;
  2. 同 input 入面每隻字標注好佢係咩詞性,睇返例句-the指定冠詞girl名詞eats動詞an非指定冠詞apple 係名詞;
  3. 對句嘢做解析(知清楚啲字之間嘅句法關係),睇返例句- eats 係簡單現在式,第三身,主動,而 eats受詞apple
  4. 將句嘢啲字轉換做粵語,睇返例句-
    The → 嗰個 | girl → 女仔 | eat → 食 | an → 一個 | apple → 蘋果
  5. 將啲字砌埋做一句粵語白話文句子-嗰個女仔食一個蘋果,俾出嚟做 output [註 3]

符號 NLP 就噉睇好似掂噉,但查實有好多問題都係呢種做法處理唔嚟嘅:事實表明,呢種做法應付歧義嗰陣好撈絞-想像設計者吓吓都要人手教部電腦「呢隻呢隻字有咁多隻可能意思,喺情況 A 下當係意思 A、喺情況 B 下當係意思 B...」噉嘅資訊;而且用呢種方法做 NLP 嘅電腦亦都唔會識處理反話同語言演變嘅問題。因為噉,廿一世紀初經已好少可會靠符號 NLP 呢種做法。

統計 NLP[編輯]

內文:N-gram機械學習
睇埋:統計學同埋遞迴神經網絡

1980 年代至 1990 年代係機械學習(ML)方法興起嘅年代;機械學習响某啲方面可以話係符號 AI 嘅相反-機械學習追求嘅係用特製嘅演算法教電腦自己由數據度搵出法則,唔使吓吓都要明文噉講俾部電腦知啲法則係乜;於是 NLP 界就興起咗用語料庫(睇下面)嘅數據,教電腦自己由啲語料數據度搵出規律,途中會用到唔同類嘅機率等嘅統計概念[13],例如 n-gram 嘅做法就係噉。

N-gram 個諗頭建基於一個簡單事實:

語言文字本質上就係一串串符號,包括字母標點符號空格呀噉。

一串 n-gram 指一串符號當中嘅一連 n 咁多個符號:例如想像有串 100 隻字符LLLRLRRRLL...,一個 3-gram 嘅演算法會考慮每串連續三個符號係乜嘢樣-LLL, LLR, LRL...,再按打前嗰兩個符號嘅規律計算下一個符號最有可能係乜;例如想像家陣手上串粵語白話文字係噉嘅樣[14][15]

我今朝落樓下買咗兩個叉燒包,同嫲嫲一齊食。

喺呢段字入面,如果打前兩個字符係 今朝,跟住嗰個符號係 嘅機率係 100% -喺成串字入面,今朝 淨係出現咗一次,而喺嗰次當中跟尾嗰個字符係 ,所以如果齋考慮上面呢段字嘅 3-gram 嘅話,「今朝後面係」嘅機會率係 100%。抽象化啲講,現實應用嘅 n-gram 會用大量語言資源數據做類似噉嘅估計,計出一隻語言嘅文字啲字符以至字詞之間嘅統計關係[註 4]。精確啲講,即係話一個 n-gram 模型定義上係用[16]

[註 5]

嘅數值預測 ,計算

[註 6]

事實表明,有好多進階嘅 NLP 應用都係 n-gram 搞唔掂嘅,不過齋靠 n-gram 經已可以做到語言辨認等比較簡單嘅 NLP 工作:想像家陣設計者攞住每隻已知嘅文字-英文、德文法文... 呀噉,同每隻呢啲文字都搵語料數據,同佢建立咗個 3-gram 模型,知道啲 嘅數值,佢跟住就可以計[17]

用日常用語講,佢做嘅嘢係要攞住英文個 3-gram 模型,計吓「如果呢段文字係英文,會出呢段噉嘅字符嘅機率」,然後又攞德文嘅 3-gram 模型,計吓「如果呢段文字係德文,會出段噉嘅字符嘅機率」... 如此類推,跟住就例如揀「出到呢段字符嘅機率」最大嗰隻文字-最後做到辨認手上段字係咩語言嘅文字[17]。除咗 n-gram 之外,統計 NLP 仲有用過隱馬可夫模型等嘅統計技術。

語言數據[編輯]

內文:語言資源
睇埋:XML同埋標記語言

語料庫[編輯]

內文:語料庫

喺廿一世紀初,要做 NLP 第一步通常係要攞啲語言性質嘅數據返嚟先,而語料庫[e 5]就係其中一種最常用最重要嘅數據來源。一個語料庫會係一嚿大型有結構嘅語言資源,一隻語言嘅語料庫會包含大量屬嗰隻語言嘅錄音文字。舉個例說明,國際英文語料庫[e 6]就係一個好出名嘅英文語料庫,ICE 搵勻嗮世界各地超過 20 個以英文做官方語言一部份嘅國家或者地區(包括香港),每個國家地區對應嘅英文語料都係儲咗當地啲人英文嘅錄音,仲有係當地啲人用英文寫嘅隨筆書信學術文同埋新聞報道等嘅多種文字材料;到咗 2018 年,ICE 對包括嘅每個國家地區都最少有 1,500,000 字咁長(大型)嘅材料[18][註 7]

呢幅圖描繪英國國家語料庫[e 7]嘅結構-啲語料 90% 係文字,10% 係講嘢嘅語音,啲文字語料入面包括報紙研究期刊同埋虛構故仔呀噉。

語料庫嘅設計好有技巧,要用好多方法特登整到方便人用,例如:

  • 數據做好嗮啲事前處理(睇下面)
  • 大細:語料庫基本上就係為語言學同相關嘅研究提供語言樣本,而樣本通常係愈大愈好嘅;一個語料庫嘅大細通常會用入面啲語料嘅總字數嚟計,字數愈高個語料庫就算係愈大,(假設第啲因素不變)個語料庫愈大就愈有用[19];例如到咗 2020 年,牛津英文語料庫[e 8](一個描述廿一世紀初嘅英文嘅語料庫[20])總字數有成 21 字咁多[21]
  • 近期:語言文字係會隨時間而演變嘅,例如潮流用語等嘅現象就反映咗語言嘅演變;因為噉,如果一個語料庫啲數據唔夠近期,就會搞到研究者攞唔到最新嘅資訊,例如想像有位 AI 研究者想寫一隻曉同人傾偈嘅傾偈機械人,但佢用嘅語料庫數據唔夠新,冇近 10 年嘅數據,就會搞到隻機械人唔識用近 10 年嘅潮流用語-做唔到自然嘅傾談[22]。喺實際應用上,語料庫仲會同啲語料標明埋每件語料係源自咩年份嘅,方便用家判斷嗰件語料係咪啱用。
  • 廣泛:一般認為,語料庫最好能夠包含唔同類嘅語料,例如牛津英文語料庫國際英文語料庫都既會包含用英文寫嘅文字,又會包括啲人講嘢錄音;除此之外,唔同情境下寫字同講嘢都會唔同,例如新聞報導散文故仔學術文之間就有相當嘅差異,而啲人「喺正式場合講嘢」同「喺一般日常屋企人之間講嘢」又會好唔同,國際英文語料庫等嘅語料庫都有諗到呢一點,所以喺搵語料用嗰陣會包含唔同嘅料,會有新聞報導、虛構故仔同學術文等嘅多種唔同材料;而且仲會有埋搜尋器噉嘅功能,方便做 NLP 嘅人可以輕易噉摷自己想要嘅料嚟用[23]
  • 中繼資料[e 9]:中繼資料係指「描繪數據嘅數據」,係語料庫不可或缺嘅一環;例如家陣有一份語料,份語料係篇隨筆,篇隨筆入面嘅字就係數據本身,而中繼資料就係指描述呢件數據嘅數據-包括係描述篇文嘅作者字數、出嘅年份同埋出處... 呀噉;中繼資料喺好多分析上都好有用,例如描述啲數據「係咩年份出」嘅中繼資料就可以幫手分析隻語言隨時間嘅變化[24]

呀噉。

順帶一提,有啲語言畀人歸類做低資源[e 10]語言,成日唔夠語料用,例如廿一世紀初嘅粵語噉-粵語唔算係最多使用者嘅語言,而且粵語啲使用者又成日淨係肯寫似標準官話中文書面語,唔肯寫粵文[25]

事前處理[編輯]

睇埋:解析同埋事前數據處理

喺實際攞啲語言文字數據嚟用之前,研究者通常都會或多或少噉對啲數據做啲處理,包括[26]

Input南海潮係廣為人知嘅粵語民歌

Output:'南海潮' '係' '廣為人知' '嘅' '粵語' '民歌' 。

  • 記號化通常仲會配合埋將每隻字按詞性分做名詞動詞形容詞等嘅類型(詞性標注)。記號化呢樣嘢喺英文入面好簡單(因為英文入面每隻字都同周圍嘅字之間有空格),不過喺(例如)粵文或者日文呢啲傳統上唔興用空格嘅文字入面可以幾撈絞[27]
  • 詞形還原[e 12]:指教部電腦一個字喺唔同詞性下嘅唔同樣,等部電腦識得將呢啲唔同樣當做同一個字噉嚟分析;例如英文 wolfwolves 都係指,後者係眾數,做詞形還原就會教部電腦知 wolfwolves 係同一個字嘅唔同樣[28]
  • 停用詞[e 13]:指做主要處理之前會攞走嘅字,例如喺英文當中 thea 呢啲字出現得好密,而呢啲字俾人指會干擾某啲 NLP 程式嘅運作,所以喺做完記號化詞形還原之後,一個 NLP 程式好多時就會郁手攞走啲停用詞[29]
  • 分析樹[e 14]:一種語言學分析上成日會用嘅樹狀數據;簡單講即係按文法將一串字串句法結構表述出嚟,例如好似 John hit the ball(阿莊打中咗個波)呢句簡單嘅英文句子噉,就可以畫做以下噉嘅分析樹(NP名詞短語VP動詞短語[30]
  • 命名實體識別[e 15]:指由段字串入面搵出邊啲字係表示有名實體(即係一件特定嘅物體,例如係某個特定嘅人或者某笪特定嘅地方呀噉)嘅,例如 John hit the ball 嗰句句子入面 John 就係一嚿有名實體;NER 可以幾撈絞-喺英文入面,有名實體一般冚唪唥都會開頭個字母大階,但有好多文字唔會噉做,例子有粵文同日文呀噉,又或者好似德文噉名詞全部都開頭字母大階。命名實體識別呢家嘢可以用到好多統計方法[31]
  • 詞性標注[e 16]:同啲字串入嘅每隻字詞標明佢係咩詞性,每隻字都標明嗮佢係名詞動詞形容詞定點;做到類似下面噉[32]
    原句:「佢喺淺水灣蠔殼屋。」
    • 做咗詞性標注就會變成好似噉-
    佢 (代名詞) 喺 (介詞) 淺水灣 (名詞) 起 (動詞) 蠔殼屋 (名詞)。

等等。

重要應用[編輯]

睇埋:圖書館學同埋資訊科學

自然語言處理用途好廣泛,包括咗以下呢啲:

資訊提取[編輯]

內文:資訊提取
睇埋:Tf-idf

資訊提取[e 17]係指一個 NLP 程式識攞「用家嘅問題」做 inputoutput 俾出一份答到條問題嘅文件;進階啲嘅 NLP 程式仲識打分畀每份摷到嘅文件嚟表示份文件同個問題有幾咁𪐀naa1更,然之後按呢個分嚟排先後,畀最𪐀更嘅文件畀用家睇先;好似係 okapi BM25 噉,呢套函數會攞用家問嘅嘢()做 input,然後同每份文件()計個分數([33][34]

[註 8]
當中有:
入面嘅每隻關鍵字
入面出現得有幾密(相對於 嘅長度)
嘅長度(以字數計)
啲摷咗嘅文件嘅平均長度
參數,好多時冇做最佳化嘅話就設成 [35]
:摷咗嘅文件嘅數量
:摷咗嘅文件當中,有幾多份係有 喺裏面嘅

如果 係一隻常用字(例如英文入面嘅 in 或者 of 呀噉),噉佢嘅 分數理應會低( 數值細);所以 呢嚿嘢嘅存在係為咗阻止啲常用字干擾搜尋結果。

計完之後,就會每份文件得出個分數表示份文件對條問題嚟講幾有啦更,分數愈高表示愈有啦更,然後個搜尋器就可以按分數將啲摷到嘅文件列嗮出嚟,分數最高嘅行先。Okapi BM25 源於 1980 年代,到咗廿一世紀初經已廣泛噉俾搜尋器採用[33][34]。進階嘅演算法仲會考慮埋詞形還原以及同義詞等嘅好多問題,例如 PageRankHITS 演算法就會用到「個網頁有幾多高質網頁連過去」衡量摷到嘅網頁嘅「質素」,並且喺列出摷到嘅網頁嗰陣,將「質素」高啲嘅網頁排先[36][37]

Google 搜尋摷同一隻英文字(aspidomancy;一種偏門嘅占卜術)相關嘅網頁;個搜尋器攞用家想查嘅字(input)然後列嗮啲同隻字有關嘅網頁出嚟(output)。

資訊抽取[編輯]

內文:資訊抽取

資訊抽取[e 18]係指由一段字度攞出有用嘅資訊。資訊抽取其中一個最簡單嘅情況係噉:假設手上段字係喺度講緊某樣事物-樣事物可能係一個人、一笪地方或者一件產品呀噉,而個 AI 程式就要抽取有關樣事物嘅資訊,例如手上段字係講一隻電子遊戲(事物)嘅嘢,個程式要曉由段字度搵出隻遊戲「賣緊咩價錢」或者「屬啲咩類型」呀噉(件事物相關嘅資訊);跟住[38][39]

  • Foreach 要抽取嘅資訊,個程式都假設件資訊會跟從一個 template模版);
  • Template 係指段字講嗰樣資訊嗰時大機率會跟規律,例如如果家陣想抽取嘅資訊係價錢,template 會係「[$][0-9][0-9][0-9]」或者「價錢:」等嘅樣(睇埋 regex);
  • 如果有段字吻合其中一個 template,抽嗰段字出嚟;
  • Foreach 噉樣抽咗出嚟嘅字串,攞想要嘅資訊(例:俾出 $ 後面嘅數做「價錢」)[註 9]
  • Foreach 搵唔到嘅資訊,填 missing 落去;

進階啲嘅資訊抽取技術會考慮埋物件之間嘅關係,例如家吓個程式讀到 $249.99 噉嘅字串,但佢唔係就噉攞呢串嘢做「價錢」嘅 output,而係會搵埋「個價係講緊邊件物件嘅價」,當中佢嘅或者佢個等嘅字眼都會提供到噉嘅資訊(可以睇埋語義網絡)。

一篇英文維基百科文(芒果)用原始碼編輯器編輯嘅樣;分析者想要嘅內容用黃色 highlight 突顯咗。

機械翻譯[編輯]

內文:機械翻譯

機械翻譯[e 19]係指要電腦自動噉做翻譯,可以好撈絞。舉個簡單嘅例子說明,想像家陣寫個程式出嚟做翻譯[40][41][42],而以下有兩句英文句子:

句子 1:The thriller movie is disturbing.
句子 2:The noises he makes are disturbing.

喺以上呢兩句句子裏面,講緊嘢嗰個人都用咗 disturbing 呢隻形容詞,但係呢隻字要譯做粵文嘅話起碼有兩個可能嘅意思(歧義[43]

  • 呢隻字就噉睇嘅話可以譯做令人不安噉解;
  • 但譯做「令人覺得佢煩」噉解又得;

對於呢隻字要點譯,要睇嗮成句句子先可以做決定:句子 1 用 disturbing 嚟形容一套驚慄片,而句子 2 就用 disturbing 嚟形容某個人所發出嘅噪音。一般會認為喺前者嘅情況當中,disturbing 比較可能係指令人不安,而喺後者嘅情況入面,呢隻字就比較可能係指令人覺得佢煩。而且「啲人傾向點用 disturbing 呢隻字」呢點有可能隨時間演變,所以做翻譯嗰陣又要諗埋句句子係幾時寫低嘅。一個做翻譯嘅 AI 程式一定要考慮嗮咁多因素先可以俾輸出[40][44]

一個簡體中文牌啲英文譯到鬼五馬六;好多廿世紀嘅人都低估咗翻譯呢家嘢有幾咁複雜-佢哋成日都諗住翻譯只不過係將啲字換做目標語文裏面「對應」嘅字,但事實表明,噉做通常會出令人啼笑皆非嘅輸出

拉雜應用[編輯]

一個充滿咗垃圾電郵嘅郵箱

除咗以上呢啲,NLP 仲可以攞嚟做:

  • 反垃圾電郵技術[e 20][45][46]係攞一封電郵inputoutput 俾出「封電郵係咪垃圾電郵」。反垃圾電郵技術可以想像成簡單嘅監督式學習,研究者可以俾隻 NLP 程式睇一大拃嘅正常電郵(0)同垃圾電郵(1),然後叫隻程式分析兩種電郵有咩分別-例如垃圾電郵好多時都係廣告,會成日出現「你可以買」或者「快啲去買」等嘅字詞,而且喺英文等嘅多種語文入面垃圾電郵亦成日會有成句都大階噉嘅情況,於是研究者可以用 n-gram 嚟分析兩種電郵,教隻程式計
    封電郵係垃圾 封電郵入面出現咗「快啲去買」
    • 等嘅好多個機率-最後決定 封電郵係垃圾 封電郵唔係垃圾 邊個數值大啲。
  • 詞義消歧[e 21]係指幫文字同語言解決歧義嘅問題:自然語言啲字入面好多時都有歧義,而 WSD 就係指教電腦撞到歧義情況嗰陣,同每隻有歧義嘅字搵出佢嘅意思;例如係以下嘅思路噉[47]
    • 想像語義距離[e 22]嘅概念,語義距離最基本上係指兩隻字詞之間喺表示嘅意思上爭幾遠;例如用簡化嘅例子講,呢兩隻字嘅語義距離就好接近(兩隻字都係分別表示緊一種動物,而且兩隻字表示嘅動物好相似),而呢兩隻字嘅語義距離就相對遠(兩隻字表示嘅事物冇乜啦掕);語義距離有好多方法計,例子可以睇吓語義網絡同相關嘅技術[48]
    • 攞有歧義嗰隻字嚟睇,foreach 可能意思,計吓嗰個可能意思同周圍啲字(睇埋語境)之間嘅語義距離有幾遠;
    • 揀同周圍啲字語義距離最短嗰個意思。
  • 文本情感分析[e 23]係指「攞一段文字做 input,再俾出段字入面『包含咩情緒』做 output;例如想像家陣有班做營銷嘅工作者想做市場調查,佢哋走去同社交媒體合作,睇啲用家嘅留言(文字數據),想由呢啲數據度得知用家對隻產品有乜睇法;喺最簡單嗰種情況下,佢哋可以簡單噉數某啲字同句子出現得有幾密,例如數吓隻產品個名有幾常同「好鍾意」或者「正」等嘅字眼出現喺同一句句子入面[49],進階啲嘅做法仲會用深度神經網絡將啲句子分類-包括係教電腦分辨出邊句句子係客觀描述性質嘅(呢啲句子冇乜機會透露寫嗰個人嘅情緒,所以要忽視)呀噉[50]
  • 心理測量[e 24]係設計心理測驗量度行為心理變數嘅方法,例如智商測驗就係量度緊智能(一種心理特性)嘅心理測驗,設計途中用到好多嚴格指標判定個測驗係咪得;喺 2020 年代尾,心理測量界開始興起用 NLP 整心理測驗,例如對創意嘅心理測量噉-創意嘅心理測量喺廿世紀不嬲係個大問題,有認知心理學家指出,創意定義上就係要諗啲同主流見解唔同嘅諗頭,所以可以用語義距離嘅概念諗(詳情可以睇埋潛在語義分析),愈有創意嘅人理應會愈能夠(例如)寫出啲同主流意見語義距離遠嘅字句,又或者因為能夠諗出好多唔同嘅諗頭,而能夠做到自己寫嘅唔同文字之間語義距離遠[51];呢啲噉嘅研究喺 2020 年代初經已取得初步嘅成功[52]
  • 語音識別[e 25]係指「攞一段講嘢嘅做 input,再俾出段說話對應嘅文字做 output」;呢種工作可以好困難,因為文字同講嘢嘅語言係好唔同嘅兩樣嘢,例如人喺寫嘢嗰陣每隻字之間嘅界線都好清楚,而喺英文等用字母寫嘢嘅文字裏面,字之間仲會有空格隔開;相比之下,人講嘢嗰陣好少可會喺字之間明顯噉停低,而且仲會有共同發音(指一吓講嘢嘅聲受打前或者打後嗰個音影響)等嘅現象;因為噉,直接將上面講到嗰啲(多數係用嚟處理文字嘅)技術直接攞去做語音識別多數都搞唔掂。語音識別亦都因而發展出一套有別於文字 NLP 嘅技術[53]。可以睇埋語音合成
  • 語料庫語言學[e 26]泛指用語料庫嚟做語言學上嘅研究;語料庫語言學最簡單最常見嘅做法係數某啲嘢喺語料庫入面出現得幾密,例如家陣有語言學家想研究人點樣學英文嚟做第二語言,語言學家可以去英文語料庫度攞料,睇啲用英文做第二語言嘅人產生嘅語料(假設個語料庫有齊嗮必要嘅中繼資料,講明嗮每份語料嘅產生者嘅母語係乜),睇吓呢啲語料入面文法出錯嘅頻率會唔會受產生者嘅年紀(繼續假設個語料庫有呢啲中繼資料)影響。呢類噉嘅研究成日會用到 NLP 技術-例如啲語料字數好多時閒閒哋以百萬計,所以要數「每份語料入面有幾多次文法出錯」實要靠電腦程式幫手[54]

... 呀噉。

認知研究[編輯]

一個人腦由左邊睇嘅圖解;幅圖標明咗布諾卡區(Broca)同韋力卡區(Wernicke)嘅位置-呢兩個腦區語言認知嚟講好重要。
睇埋:認知語言學同埋神經語言學

NLP 同認知語言學[e 27]關係相當密切。認知語言學係認知心理學嘅一門,專門研究語言相關嘅認知功能-例如研究人腦邊啲腦區有份幫人理解語言[註 10]呀噉[55]。原則上,喺 NLP 技術出現之前,人腦係唯一一樣已知有能力處理語言文字嘅物體,所以 NLP 技術大可以參考認知語言研究,並且透過「模仿人腦嘅語言功能」達致處理到語言[56]

心靈話假說[e 28]係「NLP 參考認知語言學上嘅諗頭」嘅一個出名例子:心靈話假說係廿一世紀初認知語言學上嘅一個諗頭,個諗頭建基於一啲對語言現象嘅觀察-例如人成日都會話覺得自己可以喺腦入面同自己講嘢[57],而提倡呢個睇法嘅研究者主張[58]

  • 人腦內部有所謂嘅「心靈話」,即係腦內嘅思緒好似語言噉有特定嘅句法
  • 一個人諗嘢嗰時就係將啲思緒組成一句句「心靈話句子」,例如一個人諗緊「阿莊生得好高」,佢個腦入面阿莊呢兩個諗法(腦入面嘅某啲活動)以某啲句法組合成連繫,
  • 而如果佢想將呢段思緒講出嚟或者寫出嚟,佢個腦入面就會將嗰兩個諗法同諗法之間嘅連繫「翻譯」做想用嘅語文。

到咗 2020 年代初,心靈話假說依然有咁上下爭議性,唔少認知語言學家仲喺度拗緊「心靈話假說係咪能夠準確噉描述人腦入面發生嘅事」。不過無可爭議嘅係,用心靈話假說嘅諗法嚟做 NLP 經已取得咗一定嘅成功[56]:唔少 NLP 應用都會用人工神經網絡(尤其係遞迴神經網絡)嘅做法,用一個人工神經網絡處理資訊,然後將第一個神經網絡嘅 output 設嚟做另一個神經網絡嘅 input,要第二個神經網絡將啲資訊轉換做語言或者文字-彷彿好似第一個網絡係「處理緊心靈話」噉,而就算將「人工神經網絡」換做第隻運算方法,上述嘅道理都行得通[59]。噉講即係話,姑且勿論心靈話假說係咪準確噉描述得到人腦嘅語言認知,基於心靈話假說或者類似諗頭整出嚟嘅技術能夠俾到令人滿意嘅結果。

註釋[編輯]

  1. 原則上,講嘢用嘅語言寫嘢用嘅文字係兩樣好唔同嘅嘢。呢篇文主要講對文字嘅 NLP,而且假定咗啲文字反映口語;有關對講嘢嘅語言嘅處理,可以睇吓語音識別等嘅課題。
  2. 有關呢啲數學符號嘅詳情,可以睇吓概率論
  3. 喺某啲語文當中,仲要諗埋詞形變化
  4. 不過要考慮語言演變:就算有串可能字符喺語料裏面出現咗 0 次,現實嘅 NLP 通常都會設佢嘅機率做一個極細嘅非 0 數值。
  5. 順帶一提,即係話 n-gram 係馬可夫鏈嘅一種。
  6. 想理解呢啲數學符號嘅意思,可以睇吓概率論
  7. 不過都有人指出,以廿一世紀初嘅語料庫嚟講,得嗰百幾萬字算係有啲細。
  8. 加總
  9. 呢種做法亦有問題-同一樣資訊可能有多種表達法,例如篇文要講件產品嘅價錢,可以用「XX 嘅價錢係」或者「XX 賣咁多錢」等嘅多款句子,款款可能句子都同佢整個 template 未必得。
  10. 可以睇吓顳葉

睇埋[編輯]

文獻[編輯]

引咗[編輯]

篇文用咗嘅行話或者專有名詞英文名如下:

  1. natural language
  2. ambiguity
  3. sarcasm
  4. symbolic AI
  5. text corpus
  6. International Corpus of English,ICE
  7. British National Corpus,BNC
  8. Oxford English Corpus
  9. metadata
  10. low-resource
  11. tokenization
  12. lemmatization
  13. stop word
  14. parse tree
  15. named-entity recognition,NER
  16. part-of-speech tagging,POS tagging
  17. information retrieval
  18. information extraction
  19. machine translation
  20. anti-spam
  21. word-sense disambiguation,WSD
  22. semantic distance
  23. sentiment analysis
  24. psychometrics
  25. speech recognition
  26. corpus linguistics
  27. cognitive linguistics
  28. language of thought hypothesis,LOTH

篇文引用咗以下呢啲文獻網頁

  1. 1.0 1.1 1.2 Collobert, R., Weston, J., Bottou, L., Karlen, M., Kavukcuoglu, K., & Kuksa, P. (2011). Natural language processing (almost) from scratch. Journal of machine learning research, 12(Aug), 2493-2537.
  2. Data analytics with human language data 互聯網檔案館歸檔,歸檔日期2019年12月9號,..
  3. Berger, A. L., Pietra, V. J. D., & Pietra, S. A. D. (1996). A maximum entropy approach to natural language processing. Computational linguistics, 22(1), 39-71.
  4. Groves, M., & Mundt, K. (2015). Friend or foe? Google Translate in language for academic purposes. English for Specific Purposes, 37, 112-121.
  5. Abdul-Kader, S. A., & Woods, J. C. (2015). Survey on chatbot design techniques in speech conversation systems. International Journal of Advanced Computer Science and Applications, 6(7).
  6. 6.0 6.1 Bird, S., Klein, E., & Loper, E. (2009). Natural language processing with Python: analyzing text with the natural language toolkit. O'Reilly Media, Inc.
  7. Lyons, John (1991). Natural Language and Universal Grammar. New York: Cambridge University Press. pp. 68-70.
  8. Rockwell, P. A. (2006). Sarcasm and Other Mixed Messages: The Ambiguous Ways People Use Language. Edwin Mellen Press.
  9. Kongthon, Alisa; Sangkeettrakarn, Chatchawal; Kongyoung, Sarawoot; Haruechaiyasak, Choochart (October 27–30, 2009). Implementing an online help desk system based on conversational agent. MEDES '09: The International Conference on Management of Emergent Digital EcoSystems. France: ACM.
  10. Koskenniemi, Kimmo (1983), Two-level morphology: A general computational model of word-form recognition and production 互聯網檔案館歸檔,歸檔日期2018年12月21號,. (PDF), Department of General Linguistics, University of Helsinki.
  11. Forcada, M. L., Ginestí-Rosell, M., Nordfalk, J., O’Regan, J., Ortiz-Rojas, S., Pérez-Ortiz, J. A., ... & Tyers, F. M. (2011). Apertium: a free/open-source platform for rule-based machine translation. Machine translation, 25(2), 127-144.
  12. Charoenpornsawat, P., Sornlertlamvanich, V., & Charoenporn, T. (2002). Improving translation quality of rule-based machine translation. In COLING-02: machine translation in Asia.
  13. Johnson, M. (2009, March). How the statistical revolution changes (computational) linguistics. In Proceedings of the EACL 2009 Workshop on the Interaction between Linguistics and Computational Linguistics: Virtuous, Vicious or Vacuous? (pp. 3-11).
  14. Brown, P. F., Desouza, P. V., Mercer, R. L., Pietra, V. J. D., & Lai, J. C. (1992). Class-based n-gram models of natural language. Computational linguistics, 18(4), 467-479.
  15. Jurafsky, D., & Martin, J. H. (2021). Speech and Language Processing. Stanford University. Ch. 3.
  16. Millington, I. (2019). AI for Games. CRC Press. p. 582-584.
  17. 17.0 17.1 Russell, S., & Norvig, P. (2002). Artificial intelligence: a Modern Approach. Pearson. Ch. 2.
  18. Kirk, J., & Nelson, G. (2018). The International Corpus of English project: A progress report (PDF). World Englishes, 37(4), 697-716.
  19. Hanke, T., Schulder, M., Konrad, R., & Jahn, E. (2020, May). Extending the Public DGS Corpus in size and depth. In Proceedings of the LREC2020 9th Workshop on the Representation and Processing of Sign Languages: Sign Language Resources in the Service of the Language Community, Technological Challenges and Application Perspectives (pp. 75-82).
  20. Culpeper, J. (2009). The metalanguage of impoliteness: using Sketch Engine to explore the Oxford English Corpus. na.
  21. "The Oxford English Corpus". Sketch Engine. Lexical Computing CZ s.r.o. Retrieved 27 October 2016.
  22. Renouf, A., & Kehoe, A. (2013). Filling the gaps: Using the WebCorp Linguist's Search Engine to supplement existing text resources. International Journal of Corpus Linguistics, 18(2), 167-198.
  23. International Corpus of English (ICE) Homepage.
  24. What is metadata and why do you need it?. Developing Linguistic Corpora: a Guide to Good Practice.
  25. Liu, E. K. Y. (2022, October). Low-Resource Neural Machine Translation: A Case Study of Cantonese (PDF). In Proceedings of the Ninth Workshop on NLP for Similar Languages, Varieties and Dialects (pp. 28-40).
  26. Linguistic Knowledge in Natural Language Processing. Towards Data Science.
  27. Kroeger, Paul (2005). Analyzing Grammar: An Introduction. Cambridge: Cambridge University Press. p. 35.
  28. Müller, Thomas; Cotterell, Ryan; Fraser, Alexander; Schütze, Hinrich (2015). Joint Lemmatization and Morphological Tagging with LEMMING. 2015 Conference on Empirical Methods in Natural Language Processing. Lisbon: Association for Computational Linguistics. pp. 2268-2274.
  29. Rajaraman, A.; Ullman, J. D. (2011). "Data Mining" (PDF). Mining of Massive Datasets. pp. 1–17.
  30. Noam Chomsky (26 December 2014). Aspects of the Theory of Syntax. MIT Press.
  31. Nadeau, David; Sekine, Satoshi (2007). A survey of named entity recognition and classification (PDF). Lingvisticae Investigationes.
  32. NLP Guide: Identifying Part of Speech Tags using Conditional Random Fields. Medium.
  33. 33.0 33.1 Spärck Jones, K.; Walker, S.; Robertson, S. E. (2000). "A probabilistic model of information retrieval: Development and comparative experiments: Part 1". Information Processing & Management. 36 (6): 779-808.
  34. 34.0 34.1 Spärck Jones, K.; Walker, S.; Robertson, S. E. (2000). "A probabilistic model of information retrieval: Development and comparative experiments: Part 2". Information Processing & Management. 36 (6): 809-840.
  35. Christopher D. Manning, Prabhakar Raghavan, Hinrich Schütze. An Introduction to Information Retrieval, Cambridge University Press, 2009, p. 233.
  36. Altman, Alon; Moshe Tennenholtz (2005). "Ranking Systems: The PageRank Axioms". Proceedings of the 6th ACM conference on Electronic commerce (EC-05). Vancouver, BC.
  37. Kleinberg, Jon (December 1999). Hubs, Authorities, and Communities. Cornell University.
  38. FREITAG, DAYNE. "Machine Learning for Information Extraction in Informal Domains" (PDF). 2000 Kluwer Academic Publishers. Printed in the Netherlands.
  39. Mitkov, Ruslan (2003). The Oxford Handbook of Computational Linguistics. Oxford University Press. p.754.
  40. 40.0 40.1 Brown, P. F., Cocke, J., Pietra, S. A. D., Pietra, V. J. D., Jelinek, F., Lafferty, J. D., ... & Roossin, P. S. (1990). A statistical approach to machine translation. Computational linguistics, 16(2), 79-85.
  41. Somers, H. (1999). Example-based machine translation. Machine translation, 14(2), 113-157.
  42. Machine Translation | SYSTRAN Technologies.
  43. Definition of 'disturbing'. Collins English Dictionary.
  44. Importance of Context in Translation 互聯網檔案館歸檔,歸檔日期2021年1月26號,..
  45. Xie, S., Wang, G., Lin, S., & Yu, P. S. (2012, August). Review spam detection via temporal pattern discovery. In Proceedings of the 18th ACM SIGKDD international conference on Knowledge discovery and data mining (pp. 823-831).
  46. Firte, L., Lemnaru, C., & Potolea, R. (2010, August). Spam detection filter using KNN algorithm and resampling. In Proceedings of the 2010 IEEE 6th international conference on intelligent computer communication and processing (pp. 27-33). IEEE.
  47. Diamantini, C.; Mircoli, A.; Potena, D.; Storti, E. (2015-06-01). "Semantic disambiguation in a social information discovery system". 2015 International Conference on Collaboration Technologies and Systems (CTS): 326-333.
  48. Agirre, E., & Rigau, G. (1997). A proposal for word sense disambiguation using conceptual distance. AMSTERDAM STUDIES IN THE THEORY AND HISTORY OF LINGUISTIC SCIENCE SERIES 4, 161-172.
  49. Vong Anh Ho, Duong Huynh-Cong Nguyen, Danh Hoang Nguyen, Linh Thi-Van Pham, Duc-Vu Nguyen, Kiet Van Nguyen, Ngan Luu-Thuy Nguyen. "Emotion Recognition for Vietnamese Social Media Text". In Proceedings of the 2019 International Conference of the Pacific Association for Computational Linguistics (PACLING 2019), Hanoi, Vietnam (2019).
  50. Pang, Bo; Lee, Lillian (2008). "4.1.2 Subjectivity Detection and Opinion Identification". Opinion Mining and Sentiment Analysis. Now Publishers Inc.
  51. Kenett, Y. N. (2019). What can quantitative measures of semantic distance tell us about creativity?. Current Opinion in Behavioral Sciences, 27, 11-16.
  52. Olson, J. A., Nahas, J., Chmoulevitch, D., Cropper, S. J., & Webb, M. E. (2021). Naming unrelated words predicts creativity. Proceedings of the National Academy of Sciences, 118(25).
  53. P. Nguyen (2010). "Automatic classification of speaker characteristics". International Conference on Communications and Electronics 2010. pp. 147-152.
  54. Gries, S. T. (2009). What is corpus linguistics? (PDF). Language and linguistics compass, 3(5), 1225-1241.
  55. Ellis, N. C. (2019). Essentials of a theory of language cognition. The Modern Language Journal, 103, 39-60.
  56. 56.0 56.1 Jackson Jr, P. C. (2018). Natural language in the Common Model of Cognition. Procedia computer science, 145, 699-709.
  57. Coppola, M., & Brentari, D. (2014). From iconic handshapes to grammatical contrasts: longitudinal evidence from a child homesigner. Frontiers in Psychology, 5, 830.
  58. Fodor, Jerry A. (1975-01-01). The Language of Thought. Harvard University Press.
  59. Abdel Monem, A., Shaalan, K., Rafea, A., Baraka, H., Generating Arabic Text in Multilingual Speech-to-Speech Machine Translation Framework, Machine Translation, Springer, Netherlands, 20(4): 205-258, December 2008.

[編輯]