u-TBL Lite: A Small, Extendible Transformation-Based Learner
43759Authors
nan
Abstract
This short paper describes - and in fact gives the complete source for - a tiny Prolog program implementing a flexi- ble and fairly efficient Transformation- Based Learning (TBL) system: 1
Keywords
Full Content
Proceedings of EACL '99 #-TBL Lite: A Small, Extendible Transformation-Based Learner Torbj6rn Lager Department of Linguistics Uppsala University SWEDEN Torbjorn.Lager@ling.uu.se Abstract This short paper describes - and in fact gives the complete source for - a tiny Prolog program implementing a flexi- ble and fairly efficient Transformation- Based Learning (TBL) system: 1 Introduction Transformation-Based Learning (Brill, 1995) is a well-established learning method in NLP circles. This short paper presents a 'light' version of the #-TBL system - a genera/, logically transparent, flexible and efficient transformation-based learner presented in (Lager, 1999). It turns out that a transformation-based learner, complete with a compiler for templates, can be implemented in less than one page of Prolog code. 2 #-TBL Rules &= Representations The point of departure for TBL is a tagged initial- state corpus and a correctly tagged training cor- pus. Assuming the part-of-speech tagging task, corpus data can be represented by means of three kinds of clauses: wd(P,W) is true iff the word W is at position P in the corpus tag(P,A) is true iff the word at position P in the corpus is tagged A tag(A,B,P) is true iff the word at P is tagged A and the correct tag for the word at P is B Although this representation may seem a bit re- dundant, it provides exactly the kind of indexing into the data that is needed3 A decent Prolog system can deal with millions of such clauses. 1 Assuming a Prolog with first argument indexing. The #-TBL systems are implemented in SICStus Pro- log. The object of TBL is to learn an ordered se- quence of transformation rules. Such rules dictate when - based on the context - a word should have its tag changed. An example would be "replace tag vb with nn if the word immediately to the left has a tag dr." Here is how this rule is represented in the #-TBL rule/template formalism: tag:vb>nn <- tag:dr@[-1]. Conditions may refer to different features, and complex conditions may be composed from sim- pler ones. For example, here is a rule saying "re- place tag rb with j j, if the current word is "only", and if one of the previous two tags is dr.": tag:rb>jj <- wd:only@[O] ~ tag:dt~[-l,-2]. Rules that can be learned in TBL are instances of templates, such as "replace tag A with B if the word immediately to the left has tag C", where A, B and C are variables. In the/~-TBL formalism: t3(A,B,C) # tag:A>B <- tag:C~[-l]. Positive and negative instances of rules that are instances of this template can be generated by means of the following clauses: pos (t3(A,B,C)) :- dif(A,B),tag(A,B,P),Pl is P-l,tag(Pl,C). neg(t3(A,B,C)) :- tag(A,A,P),P1 is P-l,tag(Pi,C). Tied to each template is also a procedure that will apply rules that are instances of the template: app(t3(A,B,C)) :- (tag(A,X,P), Pl is P-l, tag(Pl,C), retract (tag(A,X,P)), retract (tag(P,A)), assert(tag(B,X,P)), assert(tag(P,B)), fail ; true). 3 The #-TBL Template Compiler To write clauses such as the above by hand for large sets of …
Content truncated to 500 words
Labeled Text
This short paper describes - and in fact gives the complete source for - a tiny Prolog program implementing a flexi- ble and fairly efficient Transformation- Based Learning (TBL) system: 1
Publication Details
- Paper ID:
- 43759
- Year:
- 1999
- Publication:
- TIPSTER
- Publication Type:
- conf
- DOI:
- nan