Difference between revisions of "Constraint Grammar"

From Apertium
Jump to navigation Jump to search
Line 37: Line 37:
* [[Sámi languages]]
* [[Sámi languages]]
* [[Irish Gaelic]]
* [[Irish Gaelic]]

and many others. The following languages currently (2014-06-27) have CG's of over 100 rules:

* 3888 [[apertium-nno]] (based on the Oslo-Bergen tagger)
* 3649 [[apertium-sme]] (from Giellatekno)
* 2275 [[apertium-nob]] (based on the Oslo-Bergen tagger)
* 1552 [[apertium-est]]
* 1524 [[apertium-fin]] (based on Fred Karlsson's)
* 850 [[apertium-dan]]
* 594 [[apertium-gle]]
* 453 [[apertium-fao]] (from Giellatekno)
* 298 [[apertium-spa]]
* 279 [[apertium-bre]]
* 255 [[apertium-cat]]
* 205 [[apertium-hbs]]
* 190 [[apertium-isl]]
* 131 [[apertium-cym]]
* 130 [[apertium-tur]]
* 127 [[apertium-eng]]
* 118 [[apertium-mkd]]
* 106 [[apertium-kaz]]


==When is CG needed?==
==When is CG needed?==

Revision as of 11:44, 27 June 2014

Constraint Grammar is a tool that can be used to POS-tag ambiguous text. There are free constraint grammars developed outside the Apertium project for: Norwegian (the Oslo-Bergen tagger), Sámi languages (from Giellatekno) and Faroese (also from Giellatekno).

Terminology

See also: Apertium stream format
Apertium equivalent: ^words/word<n><pl>/word<vblex><pres><p3><sg>$
  • baseform — the lemma of a word.
  • reading — a single analysis of a word.
Apertium equivalent: ^word<n><pl>$

Note on parenthesis

The use of parentheses to distinguish between tags and lists/sets seems to be the main confusing point for people learning CG. If we have the morphological tags tag1 and tag2, then we can have rules like this:

LIST set1 = tag1 ;
LIST set2 = (tag1 tag2) ; # matches a word with both tag1 and tag2
LIST set3 = tag1 tag2 ;   # matches a word with tag1 or tag2
LIST word = "hello" ;

SELECT:1a (tag1) (1 word) ;
SELECT:1b  set1  (1 word) ;   # equivalent to 1a

SELECT:2a (tag1 tag2) (1 word) ;
SELECT:2b  set2       (1 word) ;   # equivalent to 2a

SELECT:3a tag1 (1 word) ;
SELECT:3b tag2 (1 word) ;
SELECT:3c set3 (1 word) ;   # equivalent to 3a and 3b combined

SELECT:1c  set1  (1 ("hello")) ; # equivalent to 1a (or 1b)

Languages using CG in Apertium

and many others. The following languages currently (2014-06-27) have CG's of over 100 rules:

When is CG needed?

Currently some of the CG rules written in the above language pairs may be written as forbid rules in the TSX format used by apertium-tagger. If the rules for your language pair can be written in the .tsx format, you can go for an easier design without a CG module in that language pair.

See also

External links