In the field of computational linguistics, a morphological dictionary is a linguistic resource that contains correspondences between surface form and lexical forms of words. Surface forms of words are those found in any text. The corresponding lexical form of a surface form is the lemma followed by grammatical information (for example the part of speech, gender and number). In English give, gives, giving, gave and given are surface forms of the verb give. The lexical form would be "give", verb. There are two kinds of morphological dictionaries: aligned and non-aligned.
Aligned morphological dictionaries
In an aligned morphological dictionary, the correspondence between the surface form and the lexical form of a word is aligned at the character level, for example:
- (h,h) (o,o) (u,u) (s,s) (e,e) (s,⟨n⟩), (θ,⟨pl⟩)
Where θ is the empty symbol and ⟨n⟩ signifies "noun", and ⟨pl⟩ signifies "plural".
In the example the left hand side is the surface form (input), and the right hand side is the lexical form (output). This order is used in morphological analysis where a lexical form is generated from a surface form. In morphological generation this order would be reversed.
Formally, if Σ is the alphabet of the input symbols, and is the alphabet of the output symbols, an aligned morphological dictionary is a subset , where:
is the alphabet of all the possible alignments including the empty symbol. That is, an aligned morphological dictionary is a set of string in .
Non-aligned morphological dictionary
A non-aligned morphological dictionary is simply a set of pairs of input and output strings. A non-aligned morphological dictionary would represent the previous example as:
- (houses, house⟨n⟩⟨pl⟩)
It is possible to convert a non-aligned dictionary into an aligned dictionary. Besides trivial alignments to the left or to the right, linguistically motivated alignments which align characters to their corresponding morphemes are possible.
Frequently there exists more than one lexical form associated with a surface form of a word. For example, "house" may be a noun in the singular, /haʊs/, or may be a verb in the present tense, /haʊz/. As a result of this it is necessary to have a function which relates input strings with their corresponding output strings.
If we define the set of input words such that , the correspondence function would be defined as .