人工智慧「自然語言處理」:語言學聽起來很有距離感,其實講的根本是人生

人工智慧「自然語言處理」:語言學聽起來很有距離感,其實講的根本是人生
Original Image Credit: Merio, Public Domain
我們想讓你知道的是

只要一群詞彙很常被湊在一塊或一起出現,且出現的時候產出明確詞義,那他們很有可能就是所謂的patterns。知道詞彙的pattern的好處是,能更容易做預測。

文:黃資勻

自然語言處理(理解)是人工智慧的一個重要分支。IBM全球副總裁暨Watson首席技術長的Robert High,在2017年底的訪談中也談到,AI技術雖然存在超過十年,但真的能夠讓AI從研究邁入商業應用的關鍵,在於運用了語言學跟場景概念來理解語義,使AI開始能夠理解人類的語言。而Robert也提出幾個為什麼語言學能夠帶來突破的關鍵點,包括:語意模式(pattern)、詞組、詞彙之間的距離、和原本被視為雜訊的標點符號的應用等等。並強調在現實社會裡面,很多問題是沒有明確對錯的,會因為場景和時空背景的不同,產生不同的結果。所以在這樣的情況之下,強化式學習可能沒有監督式學習來得有成效。而監督式學習的關鍵,就在於語言學裡強調的替資料加上標記或標籤,來讓系統學習到在不同場景裡可能產生的真實數值和語意。

語言學聽起來很有距離感,但其實只要稍微了解之後,會發現講的根本是人生。就先從何謂模式(pattern)開始,逐篇為大家揭開這領域性感的面紗。

在Susan Hunson《Pattern Grammar》這本探討詞彙跟詞彙間關係的書裡,定義出當我們說A詞彙有pattern的時候,指的是只要這個詞彙出現,常常就有幾個「特定詞彙」或「結構」會跟著一起出現。而除了伴隨著出現之外,某種程度會貢獻或是影響這A詞彙的詞義。換句話來說就是,只要一群詞彙很常被湊在一塊或一起出現,且出現的時候產出明確詞義,那他們很有可能就是所謂的patterns。知道詞彙的pattern的好處是,能更容易做預測。

如果還是很抽象,你可以想像其實這些詞彙都跟人一樣有個性,有各種小團體。比如說以前高中的時候,明明就同班,但阿美就是跟大珍還有小真比較好。每次阿美要上廁所,大珍跟小真都一定要跟著去。只要在句子裡面看到阿美,就有很高的機率會看到大珍跟小真這樣的情況,就可以說阿美有特定詞彙pattern。那結構pattern就是說,三個人不只一起上廁所,而且阿美一定要走中間、大珍要走左邊、小真要走右邊,完美「珍-美-真」女團陣容,不排好就不能出發,那就是結構pattern。

而小團體成員之間互相影響很正常,可能小真本來就是比較負面的人,阿美只要跟小真在一起,阿美就會跟著負面起來。久而久之,就算小真不在,大家看到阿美,也會覺得她好像散播著負面能量。詞彙也是,比如說中文裡的「造成」、「導致」這些詞,本來只是用來描述因果關係的中性詞。但因為經常性的連接負面訊息:「地震造成飯店倒塌」、「姿勢不正導致脊椎側彎」、「外遇導致婚姻破裂」等等,久了其本身也沾染了負面習氣,就算單獨看到他們的時候,也會覺得有壞事要發生:「唱歌導致XX」、「自信造成XX」,沒講什麼但感覺就超驚悚。而跟正面訊息一起使用的時候,也會產生一種迷濛感,一種好像聽懂又聽不懂的感覺:「林志玲由內而外的美麗導致他兩岸三地都是他的粉絲」。

那要怎麼去找到某個詞彙屬於哪些小團體,甚至去整理跟分類這些團體呢?以下是實際操作的部分。常用的方法是透過語料庫去觀察。舉中文為例,基本七步驟如下:

  • 選一個想觀察的詞:「愛」
  • 選一個語料庫:中研院平衡語料庫、PTT Corpus……
  • 輸入關鍵字:在語料庫裡輸入要觀察的詞彙
1
圖片來源:作者提供
圖1 除了輸入字之外還可以選形式、詞類、跟特徵
  • 選視窗:隨便選定要觀察的視窗大小,再看結果調整。
2
圖片來源:作者提供
圖2 愛的搜尋結果
  • 選邊站:決定要依照詞彙左邊,還是右邊來排序。
  • 選方法:決定要用哪種方式排序。
3
圖片來源:作者提供
圖3 選左邊或右邊之後,再決定排序的方法
  • 統整、觀察和分類。
4
圖片來源:作者提供
圖4 依右邊排序的結果,會從空白開始依照詞類開頭的字母依序陳列

語料庫就像一個堆滿文字資料的倉庫。創立這整個倉庫的人可以自己決定要放什麼類型的資料、加上什麼樣的標記進去:聯合報歷年報紙頭條、PTT十大板歷屆文章、所有民視連續劇台詞等等。每間倉庫裝的內容可以不一樣,而搜尋的過程也會因為語料庫的設計而有差異。就像明明都是倉庫,但有不同的裝潢。比如說在平衡語料庫裡,觀看資料的視窗是固定的,選擇視窗僅是為了做詞類統計、過濾和觀察搭配詞使用。

一般來說,會按照觀察的目的和重點,來決定方向要訂左邊還是右邊。以動詞來說,比較容易從他後面接的東西(補語),觀察出pattern。所以當我想找出「愛」這個詞的pattern,又從圖1的搜尋結果裡認為「愛」這個詞比較常被當作動詞用的時候(愛看書、愛讀書、愛家、愛孩子等等),我就會選擇用右邊來當作排序依準,方便觀察。除了圖4用詞類來當作排序跟分類之外,也可以用詞義來做分類標準。比如說愛的後面可以接一種行為(愛看書、愛讀書)、可以接對象(愛孩子)。而依照前面pattern的定義,後面接的詞也會影響前面「愛」的詞義。比如說就算都是接對象,我愛孩子跟我愛我女朋友的愛還是有差異的:愛孩子指的是對孩子有很深厚的感情,但我愛我女朋友除了心理之外還有強烈生理上面的吸引(同場加映:中文詞彙網路)。

而除了詞彙可能有好幾個pattern之外,同一個pattern也可能會對應到很多個詞彙。就像阿美可以大珍跟小真兩個好朋友,但大珍也可以跟阿珠還有阿花當好朋友。同樣也可以透過以上的方式,去檢驗一個pattern是不是有一對多的傾向。

那我們要怎麼去紀錄、整理、跟顯示找到的這些pattern呢?這部分比較進階一點,可以參考就好。《Pattern Grammar》推薦一套簡單,且容易上手的標記系統:Collins COBUILD English Dictionary(CCED)第二版所使用的系統 (2018年三月將推出第九版)。

5
圖片來源:作者提供
圖5 CCED 2nd edition word-class labels

如果將上述標記方法,用來整理「愛」的搜尋結果,可能就會有v+n(動詞接名詞)的集合、v+to-inf / v+-ing的集合。寫法和整理方法如下:

  • V n:愛小孩、愛家
  • V to-inf / V-ing:愛讀書、愛看書

在套用英文標記架構到中文的時候,遇到不合狀態非常的正常。這只要在使用的時候,在架構裡面去說明清楚這個分類方法明確的定義、做好歧義說明、還有舉例即可。

平常不特別關注自己講話跟打字的時候,其實很難發現詞跟詞之間的關係,或是自己愛用或是常用的組合,因為生活每刻都在溝通。但透過語料庫和標記方法去整理結果(或是讓人啼笑皆非的手機自動選字),想看出些端倪就容易多了。現在有了pattern的定義,有了找pattern的方法,那到底要怎麼去辨識出哪些patterns是真正的patterns,哪些又只是頻率很高偽裝成的patterns?請期待下篇分解。

責任編輯:朱家儀
核稿編輯:翁世航