Morphology and Finite State Machines

This part is about:

The order in which you explore sections is, to some extent, a matter of personal taste. If you are computationally minded you may want to work with the sections that concentrate on knowledge representation and processes first, before looking at Morphology. On the other hand, if you feel more comfortable with descriptions, you may want to read the section on Morphology first - or dip into sections to find your own preferred order.

The sections are:

A Finite State Automaton for word recognition
This presents a simple Finite State Network for recognising a handful of English words. The representation of knowledge about the spelling of English words is introduced, followed by an algorithm for comparing this knowledge with input words.

Introduction to Morphology
Morphology is the name given to the study of the "minimal unit of grammatical analysis". This section introduces some of the technical terms, concentrating on those that are relevant to natural language engineering, such as derivational and inflectional morphology. The topic of cliticization is reviewed as it seems to be a significant problem in designing NLP systems that have the conventional, modular architecture.

Morphological analysis
This section shows how a Finite State Network can be used to implement a simple inflectional morphological analyser.

Finite State Transducer
An extension of the Finite State Network is introduced using the task of correcting the spelling of English words as an example.

Issues in implementation and adequacy for Finite State Automata
Finite State techniques are easy to implement and are efficient, particularly if they are deterministic. However, their knowledge representation qualities are limited and this makes them unsuitable for representing some kinds of linguistic descriptions.

Other approaches to Morphological analysis
Finite State Automata are widely used, but is not the only technique. This section briefly looks at other techniques.

The programs in this part are written in Prolog and should work with any Edinburgh flavour implementation, for instance SICStus Prolog, Quintus Prolog and Open Prolog.