Term Extraction and automatic indexing

 

Term是遍佈在各種科學和技術的文件中。所以對於Term的識別是非常重要的一項議題,後續對於文件的解讀、翻譯、和分析都有非常大的幫助。

本章節主要是提出一些新的研究領域以及NLPTerm的辨識、擷取的處理

以下是我所整理出的概要:

 

什麼是Term

計算上的term和傳統語言中的term兩者組成的定義是有差別的。計算上的term為了符合專業領域的需要而必須適當地轉換其特性。

 

傳統上Term的觀念及應用上會出現的問題?

傳統上 terms就是某種語言的符號,及其在這語言中所包含的concepts。更仔細來說,知識是由非常多的domain所組成的,而每一個domain中,又由許多concepts組成,而每一個concept都和一個term彼此關連。Terms以這種concept為主的想法非常適合語言學上的一致性,但是卻不適合計算上的分析。原因有兩個:

1.      專家心中只知道知識和概念的對應,但是無法從內心建構出整個概念

2.      現在有許多在同一領域中利用terms的半自動建構技術,Thesaurus的自動建構、Ontology

也就是說傳統對Term的看法不能非常成功的適用在各式各樣的應用中。

 

術語工程(Terminological engineering)

那麼該如何定義term才會比較適合應用在樣本為基礎(corpus-base)的技術?Term要看成是某個技術分析程序上的輸入資料。由一個字或多個字組成都有可能(cellblood cell),並且由相關的一群研究者、專家、技術人員共同來決定、建立專業領域的terms(技術資源)。此terms資料庫必須和原本的樣本和後續的應用有一致性。

 

 

 

 

Term為導向的NLP

NLP中有兩個和術語相關的研究領域

1.      term acquisition:如何自動找出新的 terms

2.      term recognition:如何從樣本中找出已知的terms

 

Term acquisition 的例子

找出候選terms(可能是termterm)的方法主要分成兩種

1.      symbolic approach:透過文法來找出term,通常以名詞為主

2.      statistical approach:因為term組成的字通常循環性的一起出現

 

TERMINO,以grammar為基礎的方法

在有樣本的前提下,此方法主要是假設在文件中是可以利用其詞彙及文法的線索來找出terms,主要分成3個步驟

1.        Preprocessing:先移除和過濾文件中多餘及不必要的字

2.        Parsing and Term Extraction:型態分析、名詞片語處理、產生Term

3.        Interactive Term Bank Construction and Management:提供一個有良好介面的工具來管理及建構所抓出來了terms

 

LEXTER

此法是在被標籤過的樣本( tagged corpus)上運作 ,因為可以在字彙及文法上提供更多的樣式(patterns),主要分成2個步驟

1.      Maximal noun phrases:找出名詞片語的界線,來抓出名詞片語,例如過去分詞加上介係詞就是一個界線(The values located on the feeder pipeslocated on就是界線,所以此句就切割成:The valuesthe feeder pipes)

2.      Decomposition into candidate:由人工把前一步驟的名詞片語在分解成二元片語的結構,也就是分成head-expansion兩個部分(也稱做候選term)。然後依照head來分類,相同head的名詞會分到同一類中,最後再由專家來驗證。

 

ACABIT

前面兩者都是運用字彙跟文法的分析,只要是出現過符合條件的terms都可能成為候選term,這將miss掉一些不合條件但是有出現在文間中的terms。所以ACABIT就使用機率、排序、可分析的過濾來擷取terms

1.        Linguistic filtering:和LEXTER相似,以一個final state 轉換器來找出terms。工作原理是英文中主要可以分成3種二元名詞片語(N-NA-NN-P-N)

2.        Statistical ranking:上一步驟所找出來的候選者再使用多種機率分佈來做排序。這種機率的方法和頻率的方法是互補的。

 

Xtract

ACABIT也是結合過濾和機率的方法,而且在文法過濾之前對樣本(corpus)使用機率測量(z-score)。不過Xtract的擷取對象不是terms而是terms之間的組合。

 

ANA

TERMINO是相反的方法,和處理的語言是完全獨立且漸增的。

1.Familiarization module:定義出3種字集

        Stop list :由出現頻率最多的字所組成

        A set of seed terms:由人工收集一些domain中主要的概念

A set of scheme words:找出在樣本中會一起出現的seed terms。在法語中主要是介係詞和冠詞

2.Discovery module:利用上一步驟所產生的seed terms當作是漸增處理( incremental process)的起始點,然後擷取terms

 

結論

上面這些在單一語系擷取terms的工具其主要差別在要不要選擇使用機率來過濾terms。沒有使用機率的演算法,是假設任何出現在文件中的terms可能是好的候選terms,即使他只出現過一次。這種工具通成會提供一個友善的介面讓使用者來選擇及結構化候選terms。所以相對來說,有使用機率的工具即是希望在處理前提供一些處理好的候選terms給使用者。

 

單一語系中term recognitionautomatic indexing的例子

最簡單建立索引的方式就是建立一個反轉檔案用來記錄每一個字和文件的關連。但是這種方式最大的缺點就是無法保存原本文件中字的語言上結構。而本章節主要是討論NLP中擷取索引的方式而不是上面所提。NLP為基礎的索引會保留字和字間原本的順序及相依關係。這種自動鍵理索引的方式,我們稱做term recognition。下面介紹一些簡單的以NLP為基礎的技術。

 

FASIT,原文的單純化

此自動建立索引的方法主要分成兩個部分:透過文法樣式來擷取索引terms,然後使用text simplification stemming(字根化)來合併index

1.        Tagging and pattern matching:首先使用後序式(suffix-base,從字尾開始處理)的原則對原文作型態分析,以及收集不規則的後序式。下一步文法結構進行時,原文中會出現一些不符合文法樣式的片語索引。

2.        Index conflation:前一步驟所產生出來的片語索引們透過傳統的text simplification來做合併,分成3個部分

a.刪除stop words

b.字根化

c.重新排序

 

CLARIT,找出意義清楚的名詞片語

先對原文做型態的分析及標上意義清楚的標籤。然後使用context-free的文件處理程式建立出候選的名詞片語結構(不考慮模擬兩可的結構),接下來再使用機率測量來重新排序這些名詞片語結構。之後的工作著重在索引的精確修正上,藉由字和字間的關連性及重複性來解決模擬兩可的結構。

 

FASTR

因為term 的變化性而造成terms辨識的結果的變動所產生的問題,在NLP中的自動索引及term擷取已經是一定會遇到的議題。而FASTR即是透過參考一些terms的轉換,來辨識出term變化所產生的的多種型態。

FASTR中是藉由結構的轉換和字彙間的關係所組成的次規則( metarule)來描述出terms的變化性。而字彙間的關係主要是型態間的連結以及意義上的連結(同義字、反義字)

有以下3種主要的變化性

1.      文法上的變化性:只和結構間的轉換有關

2.      型態上的變化性:結構上的轉換和型態的關係

3.      語意上的變化性:和語意上的表現有關

4.       

FASTR是設計用來建立控制索引( controlled indexing) 。他把terms所組成的權威檔轉成可計算的資料然後產生這些terms可能變化成的候選terms。然後這些候選terms被修正回原文中句子裡的樣子以用來檢索實際變化發生的情形。

 

兩種語言下的term acquisition

通常處理跨語系terms擷取程式分成兩的步驟:

1.      先從每一個樣本中擷取terms

2.      兩個語系中所有terms間的關係都要對齊( alignment)

例:藉由part-of-speech tagging A-N 樣式來擷取terms。然後再比較localglobal 共同出現的頻率來做對齊。

 

心得

                這個章節是屬於這本書的應用部分,所以裡面有很多時候都會提到說這一部份是在之前某某章節有提到,所以在看的時候會卡在一些先前的觀念上,不過因為有修過information retrieval,所以大致上知道基本觀念。

 

本章比較像是介紹性質的,列舉了非常多的方法及工具,不過只有簡單、大概性的介紹一下運作原理及流程。看完後可以對term有整體的瞭解,term定義是什麼為什麼要找出termsterms該怎麼記錄、該怎麼存放可以發揮更多的作用。Terms相關的議題大概分成哪些種類,各會用的什麼樣的技術,以及技術間的取捨等

 

據我所知想關的IR技術已經發展非常多年而且也非常成熟,而且西方拼音字先先上就有比較好處理的優勢。回頭看閩南語,發現用羅馬拼音來表示雖然犧牲了中文字對台灣人的親切性,不過卻增加了他的後續發展性,把各式各樣的IR技術應運在羅馬拼音的閩南語上(編碼上的問題已經解決),一定會發生很多有趣的是事。對於沒有實體的閩南話,我想這麼一來這可以找出一些規則的!甚至是文化上變遷的發現等

 

        其實在看這文章的時候,都會去想如果應用在閩南語上會發生什麼有趣的事?光建構出閩南文中的發音、斷詞就是很有趣的問題了∼更不用說進一步ontologythesaurus的建立與運用。但是我想其中最大的問題,就是閩南語實體文字表達方式的普及性和一致性,還沒有推廣開來。這真的需要大家的努力!這堂課對我來說不像是一堂科學的課,比較像是瞭解台灣文化以及如何推廣閩南語,希望有天我也可以盡一份心力^^