專欄文章

AI應用-反向字典

何謂「反向字典」?反向字典實為一種AI技術應用,如同字面所言,反向字典的意思即和傳統字典的「查找功能」是相反的。傳統字典的操作方式是先找尋特定的“字 ”,再讀取和該“字”相對的解釋,以及和該“字”相對應以文句所呈現的解釋,舉例若該字是“月”,對應解釋為“星球的一種,和太陽的上升下降時間剛好相反”。而反向字典的查找方法則反過來,先依據相對描述的文句去找尋對應的“字”。反向字典的最大的用途就是用於協助使用者快速查找到腦海中最符合文句描述且想要表達的“字”,需要此功能的對象包含作家或記者等文字工作者,甚至教師、研究人員或學生等對象,反向字典相較於傳統字典的優勢在於更容易精準的協助使用者表達所想,或能協助使用者將已經學會的句子從簡單的口語轉換成以較艱深且精準的詞彙表達,因此即便是年幼的學童也可以輕鬆上手使用反向字典。

 

反向字典研究所使用的技術大至分為兩種,第一種是利用文句中“字”的比對,系統會根據使用者提出的描述文句來搜尋所有資料庫中儲存的解釋範例,而其中含有最多與使用者描述文句相同“字”的解釋範例就算比對成功,便會提供使用者該解釋範例對應的詞彙。以一個實際的例子來說,若今天使用者想找尋符合“住宅中屬於一棟獨立的建築”描述文句的表達字詞,便可透過反向字典來搜尋,將“住宅中屬於一棟獨立的建築”這句解釋文句丟進反向字典中與資料庫的解釋範例比對,會出現以下結果(以得分高低排列):

 

1. “別墅”:“獨立建築的住宅”,相同“字”包含獨、立、建、築、的、住、宅,共7字

2. “公寓”:“分層式的密集住宅”,相同“字”包含的、住、宅,共3字

3. “大樓”:“集合式的住宅裡有加裝電梯”,相同“字”包含的、住、宅,共3字

 

以上列比較結果,範例解釋為“獨立建築的住宅”的對應詞彙“別墅”就是最符合使用者想表達的“字”。

 

第二種方法是利用神經語言的模型把描述文句中的字轉換成數學的向量,再依向量去尋找最貼近的字。此方式可讓處理比對的時間加速,更可在巨量的資料庫中快速計算出結果。目前比較受歡迎的向量轉換器多使用Google 的 BERT 模型。BERT匯集相當大量的詞彙,也給了每個字一個代號,因此在向量轉換上十分常見。以簡單的數學來解釋“獨立建築的住宅”此文句中每個字向量的轉換假設為“獨”的代表是“1209”;“立”的代表是“2308”;“建”的代表是“3620”;“築”的代表是“1822”;“的”的代表是“5670”;“住”的代表是“2234”和“宅”的代表是“4099”,那“獨立建築的住宅”這句文句轉換成向量即為 [1209, 2308, 3620, 1822, 5670, 2234, 4099],再以此組的向量進行運算便可節省大量運算的時間。

 

當然由於人類對字詞的解釋因人而異,所以收集所有不同的解釋來對應出貼切的字並不可行,因此使用資料庫儲存所有解釋為範例文句的反向字典的方式並不實際,反而採用向量及機器學習的演算法來判斷最接近的字卻有較顯著的成效,研究結果亦如此。綜上舉例與說明,由於人類對語言多樣化的表示方法及使用習慣,使得反向字典的研究尚未達到完美的境界,但此項研究對於人類的學習卻有顛覆性的刺激力,因此仍為AI技術應用十分有前瞻性的一項研究。以下提供兩款線上的反向字典給讀者體會一下反向字典的功能,惟此兩款反向字典的研究主力為於英文,至於中文則會是更有潛力的研究專題。

 

OneLook: https://onelook.com/thesaurus/

WantWords: https://wantwords.thunlp.org/

 

撰文者:政大人工智慧與數位教育中心   梁少芬研究員