Morphological parsing or lemmatising Greek and Latin

Lemmatisation and morphological analysis
See: Wikipedia page on lemmatisation

Typically when implementing a search engine for a digital corpus, one wants to enable discovery not only of occurrences of exact word forms in the query but also of other inflections of the search terms. For example if you search Google for "digital classicism", your results will include Digital Classicist and even though "classicist" is not the exact word "classicism", you may be interested in the result. The same applies even more to highly flective languages such as Greek and Latin (this is, after all, how people are taught to use the dictionaries --- you have to know, or predict, the lemma of a word to be able to look up its meaning and other information on it).

The lemma dictionaries typically connect many occurrences of inflected word forms to their lemma form, and act as a mediator between a query (or the one who asks it) and a database, a corpus, or a text collection.

For Greek and Latin, the foremost freely available lemma dictionaries are included in the Morpheus source as XML files.

A related problem is that of parsing an inflected form, that is of performing a morphological analysis of that word. For example, saying that 'hominis' is genitive singular of lemma 'homo, -inis'. This can aid in lemmatisation because often multiple lemma forms can be inflected to the same inflected form, meaning that looking up the inflected form in a lemma dictionary will yield multiple results for the lemma form. This is why lemmatisation software and online services typically also provide a morphological analysis of the inflected form, so they act both as lemmatisers and parsers.

Disambiguating to the correct lemma form is a difficult problem, and parsing words in context to their correct part of speech can aid in this immensely. One approach is to use software such as TreeTagger trained to your language with a Treebank (such as the Perseus Treebanks).

The Archimedes Project Morphology Service also provides an XML-RPC web interface --- a script which forwards queries to the Morpheus lemmatiser/parser. Such a script can be included in pages of other text collections, enabling lemmatizing searches via a "third-party" service.

Stemming
Another approach often used for expanding search results is stemming, which typically tries to use an algorithmic approach to normalize inflected words and "chop off" the inflections to produce a "stem" word. An example for Latin is the Schinke Latin Stemmer. The search engine Egothor also has a trainable stemmer component.

Orthographic Variation
Another difficulty in searching a corpus can be orthographic (spelling) variation in the text. For example, Latin has no standard orthography, which for diplomatic transcriptions (where the spelling has not been normalized by the editor, but remains as it is in the text) can mean that the same word may appear spelled differently throughout the corpus. XTF has a good introduction to how they have approached the problem of spelling correction in their search engine (mainly from the perspective of users "mistyping" their query, but the problem is the same).

Tools

 * Collatinus: lemmatisation and morphological analysis tool for Latin (available source code and packages for Windows, Mac OS and Debian GNU/Linux, developed by Yves Ouvrard). Collatinus-web is the web version of this software
 * Eulexis: lemmatisation tool for ancient Greek
 * LemLat Latin Wordform Lemmatizer (Istituto di Linguistica Computazionale "Antonio Zampolli" - Consiglio Nazionale delle Ricerche - Area della Ricerca di Pisa)
 * Latin Parse Help
 * LATINA parser of classical Latin
 * Tufts/Bamboo Morphology Service API
 * Tufts Morphology service (using Morpheus for Latin): see Morphology Service Beta and Morphological Analysis Service Contract Description - v1.1.1, Morphology Service Setup and Tufts Morphology Service/Arethusa integration
 * The Archimedes Project Morphology Service provides easy Python or Perls scripts to query Morpheus with Latin or Greek word forms
 * The Classical Languages ToolKit (CLTK) has a Latin lemmatizer written in Python. One can install the CLTK via pip or from source on github: https://github.com/cltk/cltk