用家 :「喂,Alexa ,今日天氣 點?我應該著咩衫出街?」 虛擬助理 Alexa :「今日嘅氣溫最高會去到成攝氏 30° 咁高,著短袖嘅裇衫 就啱嗮。」 NLP 做嘅嘢大致如下:
喺人類當中自然噉發展出嚟、平時講嘢 會用嘅語言就係所謂嘅自然語言 -好似英文、粵語 同日本話 等都係自然語言(相對於例如程式語言 等嘅形式語言 ); NLP 嘅數據來源可以分做聲 同字詞 兩大類-前者指事先錄低嘅人講嘢嘅聲,而後者就係以文字形式呈現嘅語言,來源可以係網頁 同各種嘅文件 ,例如好多 NLP 程式 開始嗰陣都會有陳述式 教部電腦由邊個邊個網頁嘅 HTML 碼 度攞要處理嗰段字; 攞到要處理嘅數據做 input
之後,個 NLP 程式要有啲特定嘅演算法 嚟處理段字,最後得出某啲 output
;output
係乜就視用途而定-有啲程式目的係要翻譯 段字,所以 input
係一段字,而 output
係一段用目標語言寫、意思等同 input
嗰段字嘅字。 喺廿一世紀初,NLP 俾人工智能研究者視為人工智能其中一個最重要嘅領域,例如好出名嘅 Google 翻譯 就用咗 NLP 技術嚟做翻譯 ,而且 NLP 方面嘅技術仲可以攞嚟做傾偈機械人 等嘅休閒用途。因為 NLP 咁有用,Python 程式語言 仲有埋 NLTK 呢套函式庫 專做 NLP 相關嘅工作。
定位
兩個大人喺度用自然語言 嚟傾偈。 自然語言處理係一種人工智能 (AI)技術,專門教電腦 處理自然語言 。喺語言學 上,自然語言係指一啲响人類 當中自然噉發展出嚟、人類日常講嘢 寫嘢 會用嘅語言 -好似粵語 、客家話 同英文 等等都係自然語言,呢啲語言有異於
自然語言有好多重要嘅特徵:
歧義 :自然語言同電腦處理開嘅形式語言好唔同;喺程式語言同數學語言裏面,隻隻符號都有固定明確嘅意思,而相比之下,自然語言就成日都出現「一隻字有幾個唔同嘅可能意思 」嘅情況(例子可以睇一字多意 嘅問題),甚至隻字根本冇明確意思 ; 反話 :自然語言入面可以有反話呢樣嘢;想像一個人聽佢朋友彈結他 ,聽完佢就話「嘩,你彈得好好喎」-呢句嘢嘅真實意思受制於講嗰個人嘅表情 同第啲身體語言 影響,例如如果個人講嗰陣個表情係完全唔興奮 嘅話,佢好有可能係講緊反話;由呢啲噉嘅例子可以睇得出,判斷一句自然語言句子 嘅意思嗰時唔可以齋靠字面解; 語言演變 :一隻自然語言嘅語義 同文法 等特性會隨時間演變,例子可以睇潮流用語 (啲人作新嘅字或者詞)嘅現象;噉亦表示,自然語言梗會有不確定性 喺入面,而要模擬自然語言 ,就要用到涉及機率 嘅做法,會用到類似以下噉嘅符號 - Pr ( S = man zi ) {\displaystyle \Pr(S={\text{man zi}})} ;日常用語講,呢串嘢意思係「串字( S {\displaystyle S} )係 man zi
嘅機率」。 ... 呀噉。自然語言嘅呢啲特徵會對「應該用咩方法應付佢哋」有具體嘅影響:廿世紀電腦要求用家 俾嘅命令 極度精確 ,唔可以有歧義或者含糊,喺一大串 0
同 1
裏面多咗或者少噉咗個 0
都會搞到部機做嘅運算 錯嗮甚至輕機 ,更加唔好話會識得考慮對方講嘢嗰陣啲身體語言(理解反話嗰時必要諗嘅嘢)或者語言演變。NLP 就係喺廿世紀後半橛至廿一世紀初興起嘅 AI 技術,專門諗點樣用特製嘅演算法 嚟教電腦處理自然語言。
符號 NLP
一本意大利文 字典 ;字典會講明種語文入面每隻字嘅定義 ,但唔同語文嘅字係咪吓吓都有得一對一呢? 符號 NLP 係最原始嗰種 NLP 做法,喺 1950 至 1990 年代盛行。根據符號 AI 個諗頭,想教電腦做出「處理自然語言」等似有智能 嘅行為,淨係需要教電腦識一啲能夠明文噉寫出嚟嘅法則 就得,NLP 都唔例外,形成咗所謂嘅符號 NLP;舉個具體例子,想像用呢種方針做自動翻譯 ,將英文 譯做粵語,可以用好似以下噉嘅方法:
要有本字典 ,做到將英文入面每隻字轉做粵語入面「對應」嘅字; 要有拃法則表示英文入面嘅句子結構 ; 要有拃法則表示粵語入面嘅句子結構; 跟住部機就可以用以下嘅步驟做翻譯:
攞要翻譯嘅文字做 input ,例如家陣想將英文句子 the girl eats an apple 譯做粵語; 同 input 入面每隻字標注好佢係咩詞性 ,睇返例句-the 係指定冠詞 、girl 係名詞 、eats 係動詞 、an 係非指定冠詞 、apple 係名詞; 對句嘢做解析 (知清楚啲字之間嘅句法關係),睇返例句- eats 係簡單現在式 ,第三身,主動,而 eats 嘅受詞 係 apple ; 將句嘢啲字轉換做粵語,睇返例句- The → 嗰個 | girl → 女仔 | eat → 食 | an → 一個 | apple → 蘋果 將啲字砌埋做一句粵語白話文 句子-嗰個女仔食一個蘋果 ,俾出嚟做 output 。 符號 NLP 就噉睇好似掂噉,但查實有好多問題都係呢種做法處理唔嚟嘅:事實表明,呢種做法應付歧義嗰陣好撈絞-想像設計者吓吓都要人手教部電腦「呢隻呢隻字有咁多隻可能意思,喺情況 A 下當係意思 A、喺情況 B 下當係意思 B...」噉嘅資訊;而且用呢種方法做 NLP 嘅電腦亦都唔會識處理反話同語言演變嘅問題。因為噉,廿一世紀初經已好少可會靠符號 NLP 呢種做法。
統計 NLP
1980 年代至 1990 年代係機械學習 (ML)方法興起嘅年代;機械學習响某啲方面可以話係符號 AI 嘅相反-機械學習追求嘅係用特製嘅演算法教電腦自己由數據 度搵出法則,唔使吓吓都要明文噉講俾部電腦知啲法則係乜;於是 NLP 界就興起咗用語料庫 (睇下面)嘅數據,教電腦自己由啲語料數據度搵出規律,途中會用到唔同類嘅機率 等嘅統計 概念,例如 n-gram 嘅做法就係噉。
N-gram 個諗頭建基於一個簡單事實:
語言 同文字 本質上就係一串串符號 ,包括字母 、標點符號 同空格 呀噉。
一串 n-gram 指一串符號當中嘅一連 n 咁多個符號:例如想像有串 100 隻字符 -LLLRLRRRLL...
,一個 3-gram 嘅演算法 會考慮每串連續三個符號係乜嘢樣-LLL, LLR, LRL...,再按打前嗰兩個符號嘅規律計算下一個符號最有可能係乜;例如想像家陣手上串粵語白話文字係噉嘅樣:
喺呢段字入面,如果打前兩個字符係 今朝
,跟住嗰個符號係 落
嘅機率係 100% -喺成串字入面,今朝
淨係出現咗一次,而喺嗰次當中跟尾嗰個字符係 落
,所以如果齋考慮上面呢段字嘅 3-gram 嘅話,「今朝 後面係落 」嘅機會率係 100%。抽象化 啲講,現實應用嘅 n-gram 會用大量語言資源 數據做類似噉嘅估計,計出一隻語言嘅文字啲字符以至字詞 之間嘅統計 關係。精確啲講,即係話一個 n-gram 模型定義 上係用
x i − ( n − 1 ) , … , x i − 1 {\displaystyle x_{i-(n-1)},\dots ,x_{i-1}} 嘅數值預測 x i {\displaystyle x_{i}} ,計算
Pr ( x i ∣ x i − ( n − 1 ) , … , x i − 1 ) {\displaystyle \Pr(x_{i}\mid x_{i-(n-1)},\dots ,x_{i-1})} 事實表明,有好多進階嘅 NLP 應用都係 n-gram 搞唔掂嘅,不過齋靠 n-gram 經已可以做到語言辨認 等比較簡單嘅 NLP 工作:想像家陣設計者攞住每隻已知嘅文字-英文、德文 、法文 ... 呀噉,同每隻 呢啲文字都搵語料數據,同佢建立咗個 3-gram 模型,知道啲 Pr ( x i | x i − 2 , x i − 1 ) {\displaystyle \Pr(x_{i}|x_{i-2},x_{i-1})} 嘅數值,佢跟住就可以計:
Pr ( man zi | hai jing man ) {\displaystyle \Pr({\text{man zi}}|{\text{hai jing man}})} 用日常用語講,佢做嘅嘢係要攞住英文個 3-gram 模型,計吓「如果呢段文字係英文,會出呢段噉嘅字符嘅機率」,然後又攞德文嘅 3-gram 模型,計吓「如果呢段文字係德文,會出段噉嘅字符嘅機率」... 如此類推,跟住就例如揀「出到呢段字符嘅機率」最大嗰隻文字-最後做到辨認手上段字係咩語言嘅文字。除咗 n-gram 之外,統計 NLP 仲有用過隱馬可夫模型 等嘅統計技術。
語言數據
語料庫 喺廿一世紀初,要做 NLP 第一步通常係要攞啲語言 性質嘅數據 返嚟先,而語料庫 就係其中一種最常用最重要嘅數據來源。一個語料庫會係一嚿大型有結構嘅語言資源,一隻語言嘅語料庫會包含大量屬嗰隻語言嘅錄音 同文字 。舉個例說明,國際英文語料庫 就係一個好出名嘅英文 語料庫,ICE 搵勻嗮世界各地超過 20 個以英文做官方語言 一部份嘅國家或者地區(包括香港 ),每個國家地區對應嘅英文語料都係儲咗當地啲人講 英文嘅錄音,仲有係當地啲人用英文寫嘅隨筆 、書信 、學術文 同埋新聞報道 等嘅多種文字材料;到咗 2018 年,ICE 對包括嘅每個國家地區都最少有 1,500,000 字咁長(大型 )嘅材料。
呢幅圖描繪英國國家語料庫 嘅結構-啲語料 90% 係文字,10% 係講嘢 嘅語音,啲文字語料入面包括報紙 、研究期刊 同埋虛構故仔 書 呀噉。 語料庫嘅設計好有技巧,要用好多方法特登整到方便人用,例如:
數據做好嗮啲事前處理(睇下面) 大細 :語料庫基本上就係為語言學同相關嘅研究提供語言樣本 ,而樣本通常係愈大愈好嘅;一個語料庫嘅大細通常會用入面啲語料嘅總字數 嚟計,字數愈高個語料庫就算係愈大,(假設第啲因素不變)個語料庫愈大就愈有用;例如到咗 2020 年,牛津英文語料庫 (一個描述廿一世紀初嘅英文嘅語料庫)總字數有成 21 億 字咁多。 近期 :語言文字係會隨時間而演變 嘅,例如潮流用語 等嘅現象就反映咗語言嘅演變;因為噉,如果一個語料庫啲數據唔夠近期,就會搞到研究者攞唔到最新嘅資訊,例如想像有位 AI 研究者想寫一隻曉同人傾偈嘅傾偈機械人 ,但佢用嘅語料庫數據唔夠新,冇近 10 年嘅數據,就會搞到隻機械人唔識用近 10 年嘅潮流用語-做唔到自然嘅傾談。喺實際應用上,語料庫仲會同啲語料標明埋 每件語料係源自咩年份嘅,方便用家判斷嗰件語料係咪啱用。 廣泛 :一般認為,語料庫最好能夠包含唔同類嘅語料,例如牛津英文語料庫 同國際英文語料庫 都既會包含用英文寫嘅文字 ,又會包括啲人講嘢 嘅錄音 ;除此之外,唔同情境下寫字同講嘢都會唔同,例如新聞報導 、散文 故仔 同學術文 之間就有相當嘅差異,而啲人「喺正式場合講嘢」同「喺一般日常屋企人之間講嘢」又會好唔同,國際英文語料庫等嘅語料庫都有諗到呢一點,所以喺搵語料用嗰陣會包含唔同嘅料,會有新聞報導、虛構故仔同學術文等嘅多種唔同材料;而且仲會有埋搜尋器 噉嘅功能,方便做 NLP 嘅人可以輕易噉摷自己想要嘅料嚟用。 中繼資料 :中繼資料係指「描繪數據嘅數據」,係語料庫不可或缺嘅一環;例如家陣有一份語料,份語料係篇隨筆 ,篇隨筆入面嘅字就係數據本身,而中繼資料就係指描述呢件數據嘅數據-包括係描述篇文嘅作者 、字數 、出嘅年份同埋出處... 呀噉;中繼資料喺好多分析上都好有用,例如描述啲數據「係咩年份出」嘅中繼資料就可以幫手分析隻語言隨時間嘅變化。 呀噉。
順帶一提,有啲語言畀人歸類做低資源 語言,成日唔夠語料用,例如廿一世紀初嘅粵語 噉-粵語唔算係最多使用者嘅語言,而且粵語啲使用者又成日淨係肯寫似標準官話 嘅中文書面語 ,唔肯寫粵文。
事前處理 喺實際攞啲語言文字數據嚟用之前,研究者通常都會或多或少噉對啲數據做啲處理,包括:
記號化 :將句子分做個別嘅字詞 ,通常係將每隻字變成一段字串 :p. 129 ,即係例如 Input :南海潮 係廣為人知嘅粵語 民歌 。
Output :'南海潮' '係' '廣為人知' '嘅' '粵語' '民歌' 。
記號化通常仲會配合埋將每隻字按詞性 分做名詞 、動詞 同形容詞 等嘅類型(詞性標注 )。記號化呢樣嘢喺英文入面好簡單(因為英文入面每隻字都同周圍嘅字之間有空格 ),不過喺(例如)粵文 或者日文 呢啲傳統上唔興用空格嘅文字入面可以幾撈絞。 詞形還原 :指教部電腦一個字喺唔同詞性 下嘅唔同樣,等部電腦識得將呢啲唔同樣當做同一個字噉嚟分析;例如英文 wolf 同 wolves 都係指狼 ,後者係眾數 ,做詞形還原就會教部電腦知 wolf 同 wolves 係同一個字嘅唔同樣。 停用詞 :指做主要處理之前會攞走嘅字,例如喺英文 當中 the 同 a 呢啲字出現得好密,而呢啲字俾人指會干擾某啲 NLP 程式嘅運作,所以喺做完記號化 同詞形還原 之後,一個 NLP 程式好多時就會郁手攞走啲停用詞。 分析樹 :一種語言學 分析上成日會用嘅樹狀數據 ;簡單講即係按文法 將一串字串 嘅句法 結構表述出嚟,例如好似 John hit the ball (阿莊打中咗個波)呢句簡單嘅英文句子噉,就可以畫做以下噉嘅分析樹(NP
:名詞短語 ;VP
:動詞短語 ): 命名實體識別 :指由段字串入面搵出邊啲字係表示有名實體 (即係一件特定嘅物體,例如係某個特定嘅人或者某笪特定嘅地方呀噉)嘅,例如 John hit the ball 嗰句句子入面 John 就係一嚿有名實體;NER 可以幾撈絞-喺英文入面,有名實體一般冚唪唥都會開頭個字母大階 ,但有好多文字唔會噉做,例子有粵文同日文呀噉,又或者好似德文 噉名詞全部都開頭字母大階。命名實體識別呢家嘢可以用到好多統計 方法。 詞性標注 :同啲字串入嘅每隻字詞 標明佢係咩詞性 ,每隻字都標明嗮佢係名詞 定動詞 定形容詞 定點;做到類似下面噉- 等等。
重要應用
自然語言處理用途好廣泛,包括咗以下呢啲:
資訊提取 資訊提取 係指一個 NLP 程式識攞「用家嘅問題」做 input
,output
俾出一份答到條問題嘅文件;進階啲嘅 NLP 程式仲識打分畀每份摷到嘅文件嚟表示份文件同個問題有幾咁𪐀 naa1 更,然之後按呢個分嚟排先後,畀最𪐀更嘅文件畀用家睇先;好似係 okapi BM25 噉,呢套函數會攞用家問嘅嘢( Q {\displaystyle Q} )做 input
,然後同每份文件( D {\displaystyle D} )計個分數( fan sou {\displaystyle {\text{fan sou}}} ):
fan sou ( D , Q ) = ∑ i = 1 n IDF ( q i ) ⋅ f ( q i , D ) ⋅ ( k 1 + 1 ) f ( q i , D ) + k 1 ⋅ ( 1 − b + b ⋅ | D | avgdl ) {\displaystyle {\text{fan sou}}(D,Q)=\sum _{i=1}^{n}{\text{IDF}}(q_{i})\cdot {\frac {f(q_{i},D)\cdot (k_{1}+1)}{f(q_{i},D)+k_{1}\cdot \left(1-b+b\cdot {\frac {|D|}{\text{avgdl}}}\right)}}} 當中有: q 1 , q 2 , . . . q i {\displaystyle q_{1},q_{2},...q_{i}} Q {\displaystyle Q} 入面嘅每隻關鍵字 f ( q i , D ) {\displaystyle f(q_{i},D)} q i {\displaystyle q_{i}} 喺 D {\displaystyle D} 入面出現得有幾密(相對於 D {\displaystyle D} 嘅長度) | D | {\displaystyle |D|} D {\displaystyle D} 嘅長度(以字數 計) avgdl {\displaystyle {\text{avgdl}}} 啲摷咗嘅文件嘅平均 長度 k 1 {\displaystyle k_{1}} 參數 ,好多時冇做最佳化 嘅話就設成 k 1 ∈ [ 1.2 , 2.0 ] {\displaystyle k_{1}\in [1.2,2.0]} , b = 0.75 {\displaystyle b=0.75} b {\displaystyle b} IDF ( q i ) = ln ( N − n ( q i ) + 0.5 n ( q i ) + 0.5 + 1 ) {\displaystyle {\text{IDF}}(q_{i})=\ln \left({\frac {N-n(q_{i})+0.5}{n(q_{i})+0.5}}+1\right)} N {\displaystyle N} :摷咗嘅文件嘅數量 n ( q i ) {\displaystyle n(q_{i})} :摷咗嘅文件當中,有幾多份係有 q i {\displaystyle q_{i}} 喺裏面嘅
如果 q i {\displaystyle q_{i}} 係一隻常用字(例如英文入面嘅 in 或者 of 呀噉),噉佢嘅 IDF ( q i ) {\displaystyle {\text{IDF}}(q_{i})} 分數理應會低( N − n ( q i ) {\displaystyle N-n(q_{i})} 數值細);所以 IDF ( q i ) {\displaystyle {\text{IDF}}(q_{i})} 呢嚿嘢嘅存在係為咗阻止啲常用字干擾搜尋結果。
計完之後,就會每份文件得出個分數表示份文件對條問題嚟講幾有啦更,分數愈高表示愈有啦更,然後個搜尋器 就可以按分數將啲摷到嘅文件列嗮出嚟,分數最高嘅行先。Okapi BM25 源於 1980 年代,到咗廿一世紀初經已廣泛噉俾搜尋器採用。進階嘅演算法仲會考慮埋詞形還原 以及同義詞 等嘅好多問題,例如 PageRank 同 HITS 演算法 就會用到「個網頁有幾多高質網頁連過去」衡量摷到嘅網頁嘅「質素」,並且喺列出摷到嘅網頁嗰陣,將「質素」高啲嘅網頁排先。
用 Google 搜尋 摷同一隻英文字(aspidomancy ;一種偏門嘅占卜術 )相關嘅網頁 ;個搜尋器攞用家想查嘅字(input
)然後列嗮啲同隻字有關嘅網頁出嚟(output
)。 資訊抽取 資訊抽取 係指由一段字度攞出有用嘅資訊。資訊抽取其中一個最簡單嘅情況係噉:假設手上段字係喺度講緊某樣事物-樣事物可能係一個人、一笪地方或者一件產品 呀噉,而個 AI 程式就要抽取有關樣事物嘅資訊,例如手上段字係講一隻電子遊戲 (事物)嘅嘢,個程式要曉由段字度搵出隻遊戲「賣緊咩價錢 」或者「屬啲咩類型 」呀噉(件事物相關嘅資訊);跟住-
Foreach 要抽取嘅資訊,個程式都假設件資訊會跟從一個 template
(模版 ); Template
係指段字講嗰樣資訊嗰時大機率 會跟規律,例如如果家陣想抽取嘅資訊係價錢,template
會係「[$][0-9][0-9][0-9]
」或者「價錢:」等嘅樣(睇埋 regex ); 如果 有段字吻合其中一個 template
,抽嗰段字出嚟; Foreach 噉樣抽咗出嚟嘅字串,攞想要嘅資訊(例:俾出 $
後面嘅數做「價錢」); Foreach 搵唔到嘅資訊,填 missing
落去; 進階啲嘅資訊抽取技術會考慮埋物件之間嘅關係 ,例如家吓個程式讀到 $249.99
噉嘅字串,但佢唔係就噉攞呢串嘢做「價錢」嘅 output,而係會搵埋「個價係講緊邊件物件嘅價」,當中佢嘅 或者佢個 等嘅字眼都會提供到噉嘅資訊(可以睇埋語義網絡 )。
一篇英文維基百科 文(芒果 )用原始碼編輯器 編輯嘅樣;分析者想要嘅內容用黃色 highlight 突顯咗。 機械翻譯 機械翻譯 係指要電腦自動噉做翻譯 ,可以好撈絞。舉個簡單嘅例子說明,想像家陣寫個 程式 出嚟做英 到粵 翻譯 ,而以下有兩句英文句子:
句子 1 :The thriller movie is disturbing. 句子 2 :The noises he makes are disturbing. 喺以上呢兩句句子裏面,講緊嘢嗰個人都用咗 disturbing 呢隻形容詞 ,但係呢隻字要譯做粵文 嘅話起碼有兩個可能嘅意思(歧義 ):
呢隻字就噉睇嘅話可以譯做令人不安 噉解; 但譯做「令人覺得佢煩」噉解又得; 對於呢隻字要點譯,要睇嗮成句句子 先可以做決定:句子 1 用 disturbing 嚟形容一套驚慄片 ,而句子 2 就用 disturbing 嚟形容某個人所發出嘅噪音 。一般會認為喺前者嘅情況當中,disturbing 比較可能係指令人不安 ,而喺後者嘅情況入面,呢隻字就比較可能係指令人覺得佢煩 。而且「啲人傾向點用 disturbing 呢隻字」呢點有可能隨時間演變,所以做翻譯嗰陣又要諗埋句句子係幾時寫低嘅。一個做翻譯嘅 AI 程式一定要考慮嗮咁多因素先可以俾輸出 。
一個簡體中文 牌啲英文譯到鬼五馬六;好多廿世紀嘅人都低估咗翻譯 呢家嘢有幾咁複雜-佢哋成日都諗住翻譯只不過係將啲字換做目標語文裏面「對應」嘅字,但事實表明,噉做通常會出令人啼笑皆非嘅輸出 。 拉雜應用 一個充滿咗垃圾電郵 嘅郵箱 除咗以上呢啲,NLP 仲可以攞嚟做:
反垃圾電郵技術 係攞一封電郵 做 input
,output
俾出「封電郵係咪垃圾電郵 」。反垃圾電郵技術可以想像成簡單嘅監督式學習 ,研究者可以俾隻 NLP 程式睇一大拃嘅正常電郵(0)同垃圾電郵(1),然後叫隻程式分析兩種電郵有咩分別-例如垃圾電郵好多時都係廣告 ,會成日出現「你可以買」或者「快啲去買」等嘅字詞,而且喺英文 等嘅多種語文入面垃圾電郵亦成日會有成句都大階 噉嘅情況,於是研究者可以用 n-gram 嚟分析兩種電郵,教隻程式計 Pr ( {\displaystyle \Pr(} 封電郵係垃圾 | {\displaystyle |} 封電郵入面出現咗「快啲去買」 ) {\displaystyle )} 等嘅好多個機率-最後決定 Pr ( {\displaystyle \Pr(} 封電郵係垃圾 ) {\displaystyle )} 同 Pr ( {\displaystyle \Pr(} 封電郵唔係垃圾 ) {\displaystyle )} 邊個數值大啲。 詞義消歧 係指幫文字同語言解決歧義 嘅問題:自然語言啲字入面好多時都有歧義,而 WSD 就係指教電腦撞到歧義情況嗰陣,同每隻有歧義嘅字搵出佢嘅意思;例如係以下嘅思路噉- 想像語義距離 嘅概念,語義距離最基本上係指兩隻字詞 之間喺表示嘅意思 上爭幾遠;例如用簡化嘅例子講,狼 同狗 呢兩隻字嘅語義距離就好接近(兩隻字都係分別表示緊一種動物 ,而且兩隻字表示嘅動物好相似),而狼 同雲 呢兩隻字嘅語義距離就相對遠(兩隻字表示嘅事物冇乜啦掕);語義距離有好多方法計,例子可以睇吓語義網絡 同相關嘅技術; 攞有歧義嗰隻字嚟睇,foreach 可能意思,計吓嗰個可能意思同周圍啲字(睇埋語境 )之間嘅語義距離有幾遠; 揀同周圍啲字語義距離最短嗰個意思。 文本情感分析 係指「攞一段文字做 input,再俾出段字入面『包含咩情緒 』做 output;例如想像家陣有班做營銷 嘅工作者想做市場調查 ,佢哋走去同社交媒體 合作,睇啲用家嘅留言(文字數據),想由呢啲數據度得知用家對隻產品 有乜睇法;喺最簡單嗰種情況下,佢哋可以簡單噉數某啲字同句子出現得有幾密,例如數吓隻產品個名有幾常同「好鍾意」或者「正」等嘅字眼出現喺同一句句子入面,進階啲嘅做法仲會用深度神經網絡 將啲句子分類-包括係教電腦分辨出邊句句子係客觀 描述性質嘅(呢啲句子冇乜機會透露寫嗰個人嘅情緒,所以要忽視)呀噉。 心理測量 係設計心理測驗 嚟量度 行為 同心理 變數 嘅方法,例如智商測驗 就係量度緊智能 (一種心理特性)嘅心理測驗,設計途中用到好多嚴格指標判定個測驗係咪得;喺 2020 年代尾,心理測量界開始興起用 NLP 整心理測驗,例如對創意 嘅心理測量噉-創意嘅心理測量喺廿世紀不嬲係個大問題,有認知心理學家 指出,創意定義 上就係要諗啲同主流見解唔同嘅諗頭 ,所以可以用語義距離 嘅概念諗(詳情可以睇埋潛在語義分析 ),愈有創意嘅人理應會愈能夠(例如)寫出啲同主流意見語義距離遠嘅字句,又或者因為能夠諗出好多唔同嘅諗頭,而能夠做到自己寫嘅唔同文字之間語義距離遠;呢啲噉嘅研究喺 2020 年代初經已取得初步嘅成功。 語音識別 係指「攞一段講嘢嘅聲 做 input,再俾出段說話對應嘅文字做 output」;呢種工作可以好困難,因為文字同講嘢嘅語言係好唔同嘅兩樣嘢,例如人喺寫嘢嗰陣每隻字之間嘅界線都好清楚,而喺英文等用字母 寫嘢嘅文字裏面,字之間仲會有空格 隔開;相比之下,人講嘢嗰陣好少可會喺字之間明顯噉停低,而且仲會有共同發音 (指一吓講嘢嘅聲受打前或者打後嗰個音影響)等嘅現象;因為噉,直接將上面講到嗰啲(多數係用嚟處理文字嘅)技術直接攞去做語音識別多數都搞唔掂。語音識別亦都因而發展出一套有別於文字 NLP 嘅技術。可以睇埋語音合成 。 語料庫語言學 泛指用語料庫 嚟做語言學 上嘅研究 ;語料庫語言學最簡單最常見嘅做法係數某啲嘢喺語料庫入面出現得幾密 ,例如家陣有語言學家 想研究人點樣學 英文嚟做第二語言 ,語言學家可以去英文語料庫度攞料,睇啲用英文做第二語言嘅人產生嘅語料(假設個語料庫有齊嗮必要嘅中繼資料 ,講明嗮每份語料嘅產生者嘅母語 係乜),睇吓呢啲語料入面文法 出錯嘅頻率會唔會受產生者嘅年紀(繼續假設個語料庫有呢啲中繼資料)影響。呢類噉嘅研究成日會用到 NLP 技術-例如啲語料字數好多時閒閒哋以百萬計,所以要數「每份語料入面有幾多次文法出錯」實要靠電腦程式 幫手。 ... 呀噉。
認知研究
一個人腦由左邊睇嘅圖解;幅圖標明咗布諾卡區 (Broca)同韋力卡區 (Wernicke)嘅位置-呢兩個腦區 對語言認知 嚟講好重要。 NLP 同認知語言學 關係相當密切。認知語言學係認知心理學 嘅一門,專門研究語言相關嘅認知功能 -例如研究人腦 邊啲腦區 有份幫人理解語言呀噉。原則上,喺 NLP 技術出現之前,人腦係唯一一樣已知有能力處理語言文字嘅物體,所以 NLP 技術大可以參考認知語言研究,並且透過「模仿人腦嘅語言功能」達致處理到語言。
心靈話假說 係「NLP 參考認知語言學上嘅諗頭」嘅一個出名例子:心靈話假說係廿一世紀初認知語言學上嘅一個諗頭,個諗頭建基於一啲對語言現象嘅觀察-例如人成日都會話覺得自己可以喺腦入面同自己講嘢 ,而提倡呢個睇法嘅研究者主張
人腦內部有所謂嘅「心靈話 」,即係腦內嘅思緒 好似語言噉有特定嘅句法 ; 一個人諗嘢 嗰時就係將啲思緒組成一句句「心靈話句子」,例如一個人諗緊「阿莊生得好高」,佢個腦入面阿莊 同高 呢兩個諗法(腦入面嘅某啲活動 )以某啲句法組合成連繫, 而如果佢想將呢段思緒講出嚟或者寫出嚟,佢個腦入面就會將嗰兩個諗法同諗法之間嘅連繫「翻譯」做想用嘅語文。 到咗 2020 年代初,心靈話假說依然有咁上下爭議性,唔少認知語言學家仲喺度拗緊「心靈話假說係咪能夠準確噉描述人腦入面發生嘅事」。不過無可爭議嘅係,用心靈話假說嘅諗法嚟做 NLP 經已取得咗一定嘅成功:唔少 NLP 應用都會用人工神經網絡 (尤其係遞迴神經網絡 )嘅做法,用一個人工神經網絡處理資訊,然後將第一個神經網絡嘅 output 設嚟做另一個神經網絡嘅 input ,要第二個神經網絡將啲資訊轉換做語言或者文字-彷彿好似第一個網絡係「處理緊心靈話」噉,而就算將「人工神經網絡」換做第隻運算方法,上述嘅道理都行得通。噉講即係話,姑且勿論心靈話假說係咪準確噉描述得到人腦嘅語言認知,基於心靈話假說或者類似諗頭整出嚟嘅技術能夠俾到令人滿意嘅結果。
註釋 睇埋 文獻 Bates, M. (1995). "Models of natural language understanding". Proceedings of the National Academy of Sciences of the United States of America . 92 (22): 9977-9982. doi:10.1073/pnas.92.22.9977. PMC 40721. PMID 7479812 . Bentley, F., Tollmar, K., Stephenson, P., Levy, L., Jones, B., Robertson, S., ... & Wilson, J. (2013). Health Mashups: Presenting statistical patterns between wellbeing data and context in natural language to promote behavior change (PDF). ACM Transactions on Computer-Human Interaction (TOCHI) , 20(5), 1-27,用 NLP 技術嘅 apps 鼓勵人改變佢哋嘅行為 。 Bird, S., Klein, E., & Loper, E. (2009). Natural language processing with Python: analyzing text with the natural language toolkit . O'Reilly Media, Inc. Bubeck, S., Chandrasekaran, V., Eldan, R., Gehrke, J., Horvitz, E., Kamar, E., ... & Zhang, Y. (2023). Sparks of Artificial General Intelligence: Early experiments with GPT-4 (PDF). arXiv preprint arXiv:2303.12712,依篇文講到語言模型 GPT-4 展示嘅普遍人工智能 。 Kurdi, M. Z. (2016). Natural language processing and computational linguistics: speech, morphology and syntax (Vol. 1). John Wiley & Sons. Kurdi, M. Z. (2017). Natural language processing and computational linguistics 2: semantics, discourse and applications (Vol. 2). John Wiley & Sons. Lee, J., Chen, L., Lam, C., Lau, C. M., & Tsui, T. H. (2022, June). PyCantonese: Cantonese linguistics and NLP in python (PDF). In Proceedings of the Thirteenth Language Resources and Evaluation Conference (pp. 6607-6611),依篇文簡介 PyCantonese,一個可以攞嚟做粵語 NLP 嘅函式庫 。 McIntyre, N., & Lapata, M. (2009, August). Learning to tell tales: A data-driven approach to story generation (PDF). In Proceedings of the Joint Conference of the 47th Annual Meeting of the ACL and the 4th International Joint Conference on Natural Language Processing of the AFNLP (pp. 217-225). Nguyen, D., Doğruöz, A. S., Rosé, C. P., & De Jong, F. (2016). Computational sociolinguistics: A survey . Computational linguistics , 42(3), 537-593,呢篇文用 NLP 方法研究社會語言學 ,包括研究啲人點樣透過電腦嚟溝通 、點樣教電腦自動噉透過分析文字嚟搵出網上欺凌 、點樣透過啲人寫嘅字嚟搵出佢啲特性(例如由用字睇得出係男定女)... 呀噉。 Schütze, H., Manning, C. D., & Raghavan, P. (2008). Introduction to information retrieval (Vol. 39, pp. 234-265). Cambridge: Cambridge University Press. Official html and pdf versions available without charge. Taskin, Z., & Al, U. (2019). Natural language processing applications in library and information science (PDF). Online Information Review ,呢篇文綜述 咗 NLP 技術喺圖書館學 同資訊科學 上有乜用。 Wu, T., Ma, W., Wen, S., Xia, X., Paris, C., Nepal, S., & Xiang, Y. (2021). Analysis of trending topics and text-based channels of information delivery in cybersecurity (PDF). ACM Transactions on Internet Technology (TOIT) , 22(2), 1-27. 引咗 拎
This article uses material from the Wikipedia 粵語 article 自然語言處理 , which is released under the Creative Commons Attribution-ShareAlike 3.0 license ("CC BY-SA 3.0") ; additional terms may apply (view authors ). 呢度嘅所有文字係根據 CC BY-SA 4.0 牌照嘅條款發佈;可能會有附加嘅條款。 Images, videos and audio are available under their respective licenses. ®Wikipedia is a registered trademark of the Wiki Foundation, Inc. Wiki 粵語 (DUHOCTRUNGQUOC.VN) is an independent company and has no affiliation with Wiki Foundation.