org.languagetool.resource.br.create-lexicon.pl Maven / Gradle / Ivy
The newest version!
#!/usr/bin/perl -w
#
# Convert the Breton lexicon from Apertium into a lexicon suitable for
# the LanguageTool grammar checker.
#
# LanguageTool POS tags for Breton are more or less similar to French tags to
# keep it simple. This makes it easier to maintain grammar for both French
# and Breton without too much to remember.
#
# POS tags for LanguageTool simplify POS tags present in Apertium.
# Simpler POS tags make it easier to write regular expression in
# LanguageTool, but information can be lost in the conversion.
#
# How to use this script:
#
# 1) Download the Apertium Breton dictionary:
# $ svn co https://svn.code.sf.net/p/apertium/svn/trunk/apertium-br-fr/
# $ cd apertium-br-fr/
# 2) Install Apertium tools:
# $ sudo apt-get install lttoolbox
# 3) Download morfologik-stemming-1.4.0.zip from
# http://sourceforge.net/projects/morfologik/files/morfologik-stemming/1.4.0/
# $ unzip morfologik-stemming-1.4.0.zip
# This creates morfologik-stemming-nodict-1.4.0.jar
# 4) Run the script:
# $ ./create-lexicon.pl
#
# Author: Dominique Pelle
#
# Patches received from:
# - Fulup Jakez
# - Thierry Vignaud
use strict;
my $dic_in = 'apertium-br-fr.br.dix';
my $dic_out = "$dic_in-LT.txt";
my $dic_err = "$dic_in-LT.err";
my %soft = (
'B' => 'V', 'D' => 'Z',
'G' => 'C’h', # Gw => W, Gou[ei] => Ou[ei]
'K' => 'G', 'M' => 'V', 'P' => 'B', 'T' => 'D',
'b' => 'v', 'd' => 'z',
'g' => 'c’h', # Gw => W, gou[ei] => ou[ei]
'k' => 'g', 'm' => 'v', 'p' => 'b', 't' => 'd'
);
my %hard = (
'B' => 'P', 'D' => 'T', 'G' => 'K',
'b' => 'p', 'd' => 't', 'g' => 'k');
my %spirant = (
'K' => 'C’h', 'P' => 'F', 'T' => 'Z',
'k' => 'c’h', 'p' => 'f', 't' => 'z');
# List of plural masculine nouns of persons for which it matters to know
# whether they are persons or not for the mutation after article "ar".
# Those are unfortunately not tagged in the Apertium dictionary.
# So we enhance tagging here to be able to detect some incorrect mutations
# after the article ar/an/al.
#
# The tag "N m p t" (N masculine plural tud) is used not only for mutation
# after ar/an/al (such as *Ar Kelted* -> "Ar Gelted") but also for
# mutations of adjective after noun such as:
# *Ar studierien pinvidik* -> "Ar studierien binvidik"
#
# This list is far from being complete. The more words the more
# mutation errors can be detected. But missing words should not
# cause false positives.
# Case matters!
my @anv_lies_tud = (
map {
my ($soft, $hard, $spirant);
$spirant = s/^([ktp])/$spirant{$1}/ier if /^[ktp]/i;
$hard = s/^([bdg])/$hard{$1}/ier if /^[bdg]/i;
if (/^[bdgkmpt]/i) {
$soft = $_;
if (/^gou[ei]/i) {
$soft =~ s/^g[oO]/o/;
$soft =~ s/^G[oO]/O/;
} else {
# prevent 'Ghanaianed' => 'C’hhanaianed' (instead of 'C’hanaianed').
$soft =~ s/^(g)h/$1/i;
# special cases for 'Gw.*' & 'Gou[ei].*' roots.
$soft =~ s/^g[wW]/w/;
$soft =~ s/^G[wW]/W/;
}
$soft =~ s/^([bdgkmpt])/$soft{$1}/ie;
}
grep { $_ } $_, $soft, $hard, $spirant;
}
"Abkhazianed",
"Afrikaned",
"Akadianed",
"Aljerianed",
"Alamaned",
"Amerikaned",
"Andoraned",
"Angled",
"Aostralianed",
"Aostrianed",
"Arabed",
"Asturianed",
"Barbared",
"Bachkired",
"Bahameaned",
"Barbadianed",
"Belarusianed",
"Belizeaned",
"Berbered",
"Bermudaned",
"Bolivianed",
"Brazilianed",
"Bretoned",
"Brezhoned",
"Bruneianed",
"Bulgared",
"Chileaned",
"Daned",
"Dominikaned",
"Eskimoed",
"Fidjianed",
"Finned",
"Flamanked",
"Franked",
"Frañsizien",
"Frañsizion",
"Frioulaned",
"Frizianed",
"Gallaoued",
"Gambianed",
"Germaned",
"Ghanaianed",
"Gineaned",
"Glaziked",
"Grenadianed",
"Gwenedourien",
"Gwenedourion",
"Gresianed",
"Hindoued",
"Honduraned",
"Indianed",
"Italianed",
"Jamaikaned",
"Jordanianed",
"Kabiled",
"Kanadianed",
"Kanaked",
"Karnuted",
"Kastilhaned",
"Katalaned",
"Kazaked",
"Kelted",
"Kenyaned",
"Kolombianed",
"Komorianed",
"Koreaned",
"Kostarikaned",
"Kreizafrikaned",
"Kroated",
"Kubaned",
"Kurded",
"Kuriosolited",
"Laponed",
"Makedonianed",
"Malgached",
"Malianed",
"Maouritanianed",
"Marokaned",
"Mec’hikaned",
"Mongoled",
"Muzulmaned",
"Namibianed",
"Navajoed",
"Nevezkaledonianed",
"Nigerianed",
"Normaned",
"Okitaned",
"Ouzbeked",
"Palestinianed",
"Panameaned",
"Papoued",
"Parizianed",
"Polinezianed",
"Romaned",
"Rusianed",
"Salvadorianed",
"Samoaned",
"Saozon",
"Sarded",
"Savoazianed",
"Serbed",
"Sikilianed",
"Sirianed",
"Slovaked",
"Slovened",
"Spagnoled",
"Suafrikaned",
"Suised",
"Tadjiked",
"Tanzanianed",
"Tatared",
"Tibetaned",
"Tonganed",
"Tunizianed",
"Turked",
"Turkmened",
"Tuvaluaned",
"Vikinged",
"Yakouted",
"Zambianed",
"Zouloued",
"abostoled",
"addiorroerien",
"addiorroerion",
"adeiladourien",
"adeiladourion",
"adregerien",
"adregerion",
"advibien",
"advibion",
"akademiidi",
"aktorien",
"aktorion",
"aktourien",
"aktourion",
"alamanegerien",
"alamanegerion",
"alc’hwezerien",
"alc’hwezerion",
"alierien",
"alierion",
"alkimiourien",
"alkimiourion",
"alouberien",
"alouberion",
"alpaerien",
"alpaerion",
"aluzenerien",
"aluzenerion",
"alvokaded",
"alvokaded-enor",
"amaezhierien",
"amaezhierion",
"amatourien",
"amatourion",
"ambrougerien",
"ambrougerion",
"ambulañserien",
"ambulañserion",
"ambulañsourien",
"ambulañsourion",
"amiegourien",
"amiegourion",
"amiraled",
"amezeien",
"amezeion",
"amourouzien",
"amourouzion",
"amprevanoniourien",
"amprevanoniourion",
"animatourien",
"animatourion",
"annezerien",
"annezerion",
"annezidi",
"antropologourien",
"antropologourion",
"aotrouien",
"aotrounez",
"aozerien",
"aozerion",
"aozourien",
"aozourion",
"apotikerien",
"apotikerion",
"arbennigourien",
"arbennigourion",
"arboellerien",
"arboellerion",
"archerien",
"archerion",
"arc’hwilierien",
"arc’hwilierion",
"ardivikerien",
"ardivikerion",
"ardivinkerien",
"ardivinkerion",
"arerien",
"arerion",
"argaderien",
"argaderion",
"arkeologourien",
"arkeologourion",
"armdiourien",
"armdiourion",
"armeourien",
"armeourion",
"armerzhourien",
"armerzhourion",
"arsellerien",
"arsellerion",
"artizaded",
"arvalien",
"arvalion",
"arvesterien",
"arvesterion",
"arvestourien",
"arvestourion",
"arzourien",
"arzourion",
"askellerien",
"askellerion",
"astraerien",
"astraerion",
"astrofizikourien",
"astrofizikourion",
"asurerien",
"asurerion",
"aterserien",
"aterserion",
"atletourien",
"atletourion",
"avielerien",
"avielerion",
"avielourien",
"avielourion",
"bachelourien",
"bachelourion",
"bac’herien",
"bac’herion",
"bagsavourien",
"bagsavourion",
"bagsturierien",
"bagsturierion",
"baleerien",
"baleerion",
"baleerien-vro",
"baleerion-vro",
"bamerien",
"bamerion",
"bangounellerien",
"bangounellerion",
"bankerien",
"bankerion",
"bannerien",
"bannerion",
"bannikerien",
"bannikerion",
"banvezerien",
"banvezerion",
"baraerien",
"baraerion",
"barbared",
"bargederien",
"bargederion",
"bargedourien",
"bargedourion",
"barnerien",
"barnerion",
"baroned",
"barverien",
"barverion",
"barzhed",
"barzhonegourien",
"barzhonegourion",
"barzhoniezhourien",
"barzhoniezhourion",
"bastrouilherien",
"bastrouilherion",
"beajourien",
"beajourion",
"bedoniourien",
"bedoniourion",
"begeged",
"begennelourien",
"begennelourion",
"beleien",
"beleion",
"beliourien",
"beliourion",
"bellerien",
"bellerion",
"benerien",
"benerion",
"berranaleien",
"berrskriverien",
"berrskriverion",
"berrskrivourien",
"berrskrivourion",
"bes-sekretourien",
"bes-sekretourion",
"bes-teñzorerien",
"bes-teñzorerion",
"besrektorien",
"besrektorion",
"besrenerien",
"besrenerion",
"bessekretourien",
"bessekretourion",
"besteñzorerien",
"besteñzorerion",
"beulkeed",
"bevezerien",
"bevezerion",
"bevezourien",
"bevgimiourien",
"bevgimiourion",
"bevoniourien",
"bevoniourion",
"bezhinaerien",
"bezhinaerion",
"bezhinerien",
"bezhinerion",
"bezierien",
"bezierion",
"bidanellerien",
"bidanellerion",
"bigrierien",
"bigrierion",
"biniaouerien",
"biniaouerion",
"biolinourien",
"biolinourion",
"bisamiraled",
"bizaouierien",
"bizaouierion",
"bleinerien",
"bleinerion",
"blenierien",
"blenierion",
"boloñjerien",
"boloñjerion",
"bombarderien",
"bombarderion",
"bonelourien",
"bonelourion",
"boseien",
"boserien",
"boserion",
"botaouerien",
"botaouerion",
"botaouerien-koad",
"botaouerion-koad",
"botaouerien-lêr",
"botaouerion-lêr",
"bouedourien",
"bouedourion",
"bouloñjerien",
"bouloñjerion",
"bourc’hizien",
"bourc’hizion",
"bourevien",
"bourevion",
"boutellerien",
"boutellerion",
"boutinelerien",
"boutinelerion",
"bouzared",
"brabañserien",
"brabañserion",
"braeererien-gaozioù",
"braeererion-gaozioù",
"brammerien",
"brammerion",
"braventiourien",
"braventiourion",
"bravigourien",
"bravigourion",
"bredelfennerien",
"bredelfennerion",
"bredklañvourien",
"bredklañvourion",
"bredoniourien",
"bredoniourion",
"bredourien",
"bredourion",
"bredvezeien",
"bredvezeion",
"brellien",
"brellion",
"breolimerien",
"breolimerion",
"breolimourien",
"breolimourion",
"breserien",
"breserion",
"bresourien",
"bresourion",
"bretorien",
"bretorion",
"breudeur",
"breutaerien",
"breutaerion",
"brezelourien",
"brezelourion",
"brezhonegerien",
"brezhonegerion",
"brezhonegourien",
"brezhonegourion",
"brientinien",
"brigadennourien",
"brigadennourion",
"brigadierien",
"brigadierion",
"brikerien",
"brikerion",
"brizhkeltiegourien",
"brizhkeltiegourion",
"brizhkredennourien",
"brizhkredennourion",
"brizhouizieien",
"broadelourien",
"broadelourion",
"brogarourien",
"brogarourion",
"brorenerien",
"brorenerion",
"brozennourien",
"brozennourion",
"brudourien",
"brudourion",
"bugale",
"bugale-vihan",
"bugaleigoù",
"bugaligoù",
"bugelien",
"bugelion",
"bugulien",
"bugulion",
"buhezegezhourien",
"buhezegezhourion",
"buhezoniourien",
"buhezoniourion",
"buhezourien",
"buhezourion",
"buhezskridourien",
"buhezskridourion",
"buhezskriverien",
"buhezskriverion",
"burutellerien",
"burutellerion",
"butunerien",
"butunerion",
"butunourien",
"butunourion",
"chakerien",
"chakerion",
"chalboterien",
"chalboterion",
"chaokerien",
"chaokerion",
"charreerien",
"charreerion",
"charretourien",
"charretourion",
"chaseourien",
"chaseourion",
"cherifed",
"chikanerien",
"chikanerion",
"cow-boyed",
"c’hoarierien",
"c’hoarierion",
"c’hoarzherien",
"c’hoarzherion",
"c’hwennerien",
"c’hwennerion",
"c’hwiblaerien",
"c’hwiblaerion",
"c’hwiletaerien",
"c’hwiletaerion",
"c’hwilierien",
"c’hwilierion",
"c’hwisterien",
"c’hwisterion",
"dafarerien",
"dafarerion",
"dalc’hourien",
"dalc’hourion",
"damesaerien",
"damesaerion",
"damkanourien",
"damkanourion",
"danevellerien",
"danevellerion",
"danevellourien",
"danevellourion",
"dantourien",
"dantourion",
"danvez-ofiserien",
"danvez-ofiserion",
"daranverien",
"daranverion",
"darbarerien",
"darbarerion",
"daremprederien",
"daremprederion",
"dastumerien",
"dastumerion",
"dastumerien-wirioù",
"dastumerion-wirioù",
"dañserien",
"dañserion",
"dañsourien",
"dañsourion",
"deaned",
"debarzhadourien",
"debarzhadourion",
"debrerien",
"debrerion",
"demokrated",
"dengarourien",
"dengarourion",
"denoniourien",
"denoniourion",
"dentourien",
"dentourion",
"deraouidi",
"deroerien",
"deroerion",
"deskadourien",
"deskadourion",
"deskarded",
"deskerien",
"deskerion",
"deskidi",
"deuñved",
"deuñvien",
"dezougerien",
"dezougerion",
"dezvarnourien",
"dezvarnourion",
"diabarzhidi",
"diagoned",
"diaraogerien",
"diaraogerion",
"diazezerien",
"diazezerion",
"diazezourien",
"diazezourion",
"dibaberien",
"dibaberion",
"dibennerien",
"dibennerion",
"dibunerien",
"dibunerion",
"dielfennerien",
"dielfennerion",
"diellourien",
"diellourion",
"difennerien",
"difennerion",
"difankerien",
"difankerion",
"difraosterien",
"difraosterion",
"diktatourien",
"diktatourion",
"dilennidi",
"dileuridi",
"diorroerien",
"diorroerion",
"diouganerien",
"diouganerion",
"diplomated",
"disivouderien",
"disivouderion",
"diskarerien-wez",
"diskarerion-wez",
"diskarerien-keuneud",
"diskarerion-keuneud",
"diskargerien-win",
"diskargerion-win",
"diskibien",
"diskibion",
"diskibled",
"diskiblien",
"diskiblion",
"diskouezerien",
"diskouezerion",
"diskouezerien-c’hiz",
"diskouezerion-c’hiz",
"disoudarded",
"dispac’herien",
"dispac’herion",
"dispac’hourien",
"dispac’hourion",
"displegadegerien",
"displegadegerion",
"displegerien",
"displegerion",
"disrannerien",
"disrannerion",
"diveliourien",
"diveliourion",
"divizourien",
"divizourion",
"dizalc’hourien",
"dizalc’hourion",
"dizertourien",
"dizertourion",
"doktored",
"dorloerien",
"dorloerion",
"dorloerien-leuñvourien",
"dorloerion-leuñvourion",
"dorloerion",
"dornlabourerien",
"dornlabourerion",
"dornvicherourien",
"dornvicherourion",
"dornwezhourien",
"dornwezhourion",
"douarened",
"douarourien",
"douarourion",
"doueoniourien",
"doueoniourion",
"dougerien",
"dougerion",
"dougerien-kroaz",
"dougerion-kroaz",
"dougerien-vanniel",
"dougerion-vanniel",
"dourgimiourien",
"dourgimiourion",
"drailherien-keuneud",
"drailherion-keuneud",
"dramaourien",
"dramaourion",
"dreistwelourien",
"dreistwelourion",
"drouized",
"drouklazherien",
"drouklazherion",
"duarded",
"duged",
"ebenourien",
"ebenourion",
"ebestel",
"egoraerien",
"egoraerion",
"eil-sekretourien",
"eil-sekretourion",
"eil-teñzorerien",
"eil-teñzorerion",
"eilbanerien",
"eilbanerion",
"eilc’hoarierien",
"eilc’hoarierion",
"eilerien",
"eilerion",
"eiloberierien",
"eiloberierion",
"eilrenerien",
"eilrenerion",
"eilsekretourien",
"eilsekretourion",
"eilteñzorerien",
"eilteñzorerion",
"ekografourien",
"ekografourion",
"ekologourien",
"ekologourion",
"eksibien",
"eksibion",
"embannerien",
"embannerion",
"embregourien",
"embregourion",
"emgannerien",
"emgannerion",
"emrenerien",
"emrenerion",
"emsaverien",
"emsaverion",
"emstriverien",
"emstriverion",
"emzivaded",
"enaouerien",
"enaouerion",
"enbroerien",
"enbroerion",
"enbroidi",
"eneberien",
"eneberion",
"enebourien",
"enebourion",
"eneoniourien",
"eneoniourion",
"engraverien",
"engraverion",
"enklaskerien",
"enklaskerion",
"enporzhierien",
"enporzhierion",
"ensellerien",
"ensellerion",
"eontred",
"eontred-kozh",
"eosterien",
"eosterion",
"erbederien",
"erbederion",
"erlec’hidi",
"ergerzherien",
"ergerzherion",
"estlammerien",
"estlammerion",
"estrañjourien",
"estrañjourion",
"etnolouzawourien",
"etnolouzawourion",
"etrebroadelourien",
"etrebroadelourion",
"etrevroadelourien",
"etrevroadelourion",
"eveshaerien",
"eveshaerion",
"evezhierien",
"evezhierion",
"evnoniourien",
"evnoniourion",
"ezporzhierien",
"ezporzhierion",
"faezherien",
"faezherion",
"faktorien",
"faktorion",
"falc’herien",
"falc’herion",
"falserien",
"falserion",
"faragouellerien",
"faragouellerion",
"farderien",
"farderion",
"farserien",
"farserion",
"faskourien",
"faskourion",
"feizidi",
"fellerien",
"fellerion",
"fentourien",
"fentourion",
"feurmerien",
"feurmerion",
"ficherien-vlev",
"ficherion-vlev",
"filhored",
"filmaozerien",
"filmaozerion",
"filozofed",
"filozoferien",
"filozoferion",
"fistoulerien",
"fistoulerion",
"fizikourien",
"fizikourion",
"flatrerien",
"flatrerion",
"fleüterien",
"fleüterion",
"foeterien-vro",
"foeterion-vro",
"fougaserien",
"fougaserion",
"fourmajerien",
"fourmajerion",
"frankizourien",
"frankizourion",
"fungorollerien",
"fungorollerion",
"furcherien",
"furcherion",
"furien",
"furion",
"furlukined",
"gallaouegerien",
"gallaouegerion",
"gallegerien",
"gallegerion",
"gaoloc’hed",
"gaoperien",
"gaoperion",
"gaouiaded",
"gaouiarded",
"gaouidi",
"gargammed",
"gastaouerien",
"gastaouerion",
"genaoueien",
"genaoueion",
"genetikourien",
"genetikourion",
"geriadurourien",
"geriadurourion",
"gevelled",
"ginekologourien",
"ginekologourion",
"gitarourien",
"gitarourion",
"golferien",
"golferion",
"goprsoudarded",
"gouarnerien",
"gouarnerion",
"gouarnourien",
"gouarnourion",
"gouarnourien-veur",
"gouarnourion-veur",
"gouennelourien",
"gouennelourion",
"gouestlaouidi",
"gopraerien",
"gopraerion",
"goprerien",
"goprerion",
"gopridi",
"gouarnourien",
"gouarnourion",
"gouerien",
"gouerion",
"gouizieien",
"goulawourien",
"goulawourion",
"goulennerien",
"goulennerion",
"goulevierien",
"goulevierion",
"gounezerien",
"gounezerion",
"gourdonerien",
"gourdonerion",
"gourenerien",
"gourenerion",
"gouroned",
"gouzañverien",
"gouzañverion",
"goved",
"grafourien",
"grafourion",
"greantourien",
"greantourion",
"greferien",
"greferion",
"groserien",
"groserion",
"gwallerien",
"gwallerion",
"gwarded",
"gwaregerien",
"gwaregerion",
"gwastadourien",
"gwastadourion",
"gwazed",
"gwazedoù",
"gwazhwelerien",
"gwazhwelerion",
"gweledvaourien",
"gweledvaourion",
"gwiaderien",
"gwiaderion",
"gwizien",
"gwazourien",
"gwazourion",
"gweladennerien",
"gweladennerion",
"gweledvaourien",
"gweledvaourion",
"gwellwelerien",
"gwellwelerion",
"gwenanerien",
"gwenanerion",
"gwennarded",
"gwerzherien",
"gwerzherion",
"gwerzherien-red",
"gwerzherion-red",
"gwiaderien",
"gwiaderion",
"gwiniegourien",
"gwiniegourion",
"gwiraourien",
"gwiraourion",
"haderien",
"haderion",
"hailhoned",
"hanterourien",
"hanterourion",
"harozed",
"harperien",
"harperion",
"harzlammerien",
"harzlammerion",
"hañvourien",
"hañvourion",
"heforzhourien",
"heforzhourion",
"hegazerien",
"hegazerion",
"helavarourien",
"helavarourion",
"hellenegourien",
"hellenegourion",
"hemolc’herien",
"hemolc’herion",
"henaourien",
"henaourion",
"hendraourien",
"hendraourion",
"henoniourien",
"henoniourion",
"herperien",
"herperion",
"hevlezourien",
"hevlezourion",
"heñcherien",
"heñcherion",
"hêred",
"hidrokimiourien",
"hidrokimiourion",
"hollveliourien",
"hollveliourion",
"hollwashaourien",
"hollwashaourion",
"horolajerien",
"horolajerion",
"houarnerien-gezeg",
"houarnerion-gezeg",
"houlierien",
"houlierion",
"hudourien",
"hudourion",
"hudsteredourien",
"hudsteredourion",
"hudstrilhourien",
"hudstrilhourion",
"hugunoded",
"hunerien",
"hunerion",
"huzarded",
"ijinadennourien",
"ijinadennourion",
"ijinourien",
"ijinourion",
"imbourc’herien",
"imbourc’herion",
"imbrouderien",
"imbrouderion",
"impalaerien",
"impalaerion",
"implijerien",
"implijerion",
"implijidi",
"inosanted",
"intañvien",
"intañvion",
"irrinnerien",
"irrinnerion",
"iskrimerien",
"iskrimerion",
"ispiserien",
"ispiserion",
"isprefeded",
"isrenerien",
"isrenerion",
"istorourien",
"istorourion",
"jahinerien",
"jahinerion",
"jakerien",
"jakerion",
"jedoniourien",
"jedoniourion",
"jentiled",
"jiboesaourien",
"jokeed",
"jiboesaourion",
"jubennourien",
"jubennourion",
"juloded",
"junterien",
"junterion",
"kabitened",
"kadarnidi",
"kadoniourien",
"kadoniourion",
"kadourien",
"kadourion",
"kalifed",
"kalonourien",
"kalonourion",
"kalvezourien",
"kalvezourion",
"kamaladed",
"kamaraded",
"kameraourien",
"kameraourion",
"kampioned",
"kanaouennerien",
"kanaouennerion",
"kanerien",
"kanerion",
"kannaded",
"kannaderien",
"kannaderion",
"kannadourien",
"kannadourion",
"kannerien",
"kannerion",
"kanolierien",
"kanolierion",
"kantennerien",
"kantennerion",
"kantonierien",
"kantonierion",
"kantreerien",
"kantreerion",
"kapitalourien",
"kapitalourion",
"karidi",
"kargiaded",
"kargidi",
"kariaded",
"karngerzherien",
"karngerzherion",
"karourien",
"karourion",
"karrdiourien",
"karrdiourion",
"karrellerien",
"karrellerion",
"karrerien",
"karrerion",
"karrezerien-votoù",
"karrezerion-votoù",
"kartennourien",
"kartennourion",
"kasedourien",
"kasedourion",
"kaserien",
"kaserion",
"kaserien-garr",
"kaserion-garr",
"kasourien",
"kasourion",
"katoliged",
"katoliked",
"kavadennerien",
"kavadennerion",
"kavalierien",
"kavalierion",
"kazetennerien",
"kazetennerion",
"kañfarded",
"kañsellerien",
"kañsellerion",
"kefierien",
"kefierion",
"kefredourien",
"kefredourion",
"kefridierien",
"kefridierion",
"keginerien",
"keginerion",
"kelaouennerien",
"kelaouennerion",
"kelaouerien",
"kelaouerion",
"kelennerien",
"kelennerion",
"kelennerien-enklasker",
"kelennerion-enklasker",
"kelennerien-enklaskerien",
"kelennerien-enklaskerion",
"kelennerion",
"kelennerien-klaskerien",
"kelennerion-klaskerion",
"kembraegerien",
"kembraegerion",
"kemenerien",
"kemenerion",
"kempouezerien",
"kempouezerion",
"kenaozerien",
"kenaozerion",
"kenberc'henned",
"kenbrezegerien",
"kenbrezegerion",
"kenderc’herien",
"kenderc’herion",
"kendirvi",
"kendiskulierien",
"kendiskulierion",
"kendivizerien",
"kendivizerion",
"kenedourien",
"kenedourion",
"keneiled",
"kengourenerien",
"kengourenerion",
"kenlabourerien",
"kenlabourerion",
"kenoberourien",
"kenoberourion",
"kensanterien",
"kensanterion",
"kenseurted",
"kenskriverien",
"kenskriverion",
"kenstriverien",
"kenstriverion",
"kenurzhierien",
"kenurzhierion",
"kenvroidi",
"kenwallerien",
"kenwallerion",
"kenwerzherien",
"kenwerzherion",
"keodedourien",
"kereon",
"kereourien",
"kereourion",
"kerzherien",
"kerzherion",
"kevalaourien",
"kevalaourion",
"kevelerien",
"kevelerion",
"kevezerien",
"kevezerion",
"kevrinourien",
"kevrinourion",
"kigerien",
"kigerion",
"kigerien-voc’h",
"kigerion-voc’h",
"kigourien",
"kigourion",
"kilstourmerien",
"kilstourmerion",
"kilvizien",
"kilvizion",
"kimiourien",
"kimiourion",
"kinkailherien",
"kinkailherion",
"kinnigerien",
"kiropraktored",
"kivijerien",
"kivijerion",
"kizellerien",
"kizellerion",
"klapezeien",
"klapezeion",
"klaskerien",
"klaskerion",
"klaskerien-vara",
"klaskerion-vara",
"klañvdiourien",
"klañvdiourion",
"klañvourien",
"klañvourion",
"kleiziaded",
"kleizidi",
"kleiziourien",
"kleiziourion",
"klerinellourien",
"klerinellourion",
"kleuzierien",
"kleuzierion",
"klezeourien",
"klezeourion",
"kloareged",
"kloareien",
"kloareion",
"kloer",
"koataerien",
"koataerion",
"kollerien",
"kollerion",
"komandanted",
"komedianed",
"komiserien",
"komiserion",
"komisien",
"kompezourien",
"kompezourion",
"komunourien",
"komunourion",
"komzerien",
"komzerion",
"konterien",
"konterion",
"kontourien",
"kontourion",
"korollerien",
"korollerion",
"korollourien",
"korollourion",
"korporaled",
"kouerien",
"kouerion",
"koumananterien",
"koumananterion",
"kouraterien",
"kouraterion",
"kouraterien-vor",
"kouraterion-vor",
"kouronkerien",
"kouronkerion",
"kourserien",
"kourserion",
"kourvibien",
"kozhidi",
"koñversanted",
"krakaotrouien",
"krakaotrouien",
"krampouezherien",
"krampouezherion",
"kravazherien",
"kravazherion",
"krazerien",
"krazerion",
"kreaterien",
"kreaterion",
"kredennourien",
"kredennourion",
"kreizourien",
"krennarded",
"kretadennerien",
"kretadennerion",
"kriponed",
"kristenien",
"kristenion",
"krouadurien",
"krouadurion",
"krouerien",
"krouerion",
"krougerien",
"krougerion",
"kulatorien",
"kulatorion",
"kunduerien",
"kunduerion",
"kureed",
"kuzulierien",
"kuzulierion",
"kuzulierien-departamant",
"kuzulierion-departamant",
"kuzulierien-kêr",
"kuzulierion-kêr",
"kuzulierien-rannvro",
"kuzulierion-rannvro",
"kêraozourien",
"kêraozourion",
"labourerien",
"labourerien-douar",
"labourerion",
"labourerion-douar",
"laeron",
"laezherien",
"laezherion",
"lagadourien",
"lagadourion",
"lakizien",
"lakizion",
"lammerien",
"lammerion",
"lamponed",
"lavarerien",
"lavarerion",
"lazherien",
"lazherion",
"leaned",
"legumajerien",
"legumajerion",
"lemmerien",
"lemmerion",
"lenneien",
"lenneion",
"lennerien",
"lennerion",
"lennourien",
"lennourion",
"lestrsavourien",
"lestrsavourion",
"letiourien",
"letiourion",
"leubeurc'henned",
"leurennerien",
"leurennerion",
"levraouaerien",
"levraouaerion",
"levraouegerien",
"levraouegerion",
"levraouerien",
"levraouerion",
"levrierien",
"levrierion",
"lezvibien",
"lezvibion",
"liorzherien",
"liorzherion",
"liorzhourien",
"liorzhourion",
"liperien",
"liperion",
"lipouzerien",
"lipouzerion",
"liseidi",
"liverien",
"liverion",
"livourien",
"livourion",
"lizheregourien",
"lizheregourion",
"lizherennerien",
"lizherennerion",
"loenoniourien",
"loenoniourion",
"lomaned",
"lonkerien",
"lonkerion",
"loreidi",
"louaded",
"louangened",
"louzaouerien",
"louzaouerion",
"louzawourien",
"louzawourion",
"lubanerien",
"lubanerion",
"luc’hengraverien",
"luc’hengraverion",
"luc’hskeudennerien",
"luc’hskeudennerion",
"luc’hvannerien",
"luc’hvannerion",
"luderien",
"luderion",
"lunederien",
"lunederion",
"lunedourien",
"lunedourion",
"luskerien",
"luskerion",
"mibien-gaer",
"mac'homed",
"madoberourien",
"madoberourion",
"maendreserien",
"maendreserion",
"maengizellerien",
"maengizellerion",
"maered",
"maesaerien",
"maesaerion",
"magerien",
"magerion",
"mailhed",
"maketennourien",
"maketennourion",
"maltouterien",
"maltouterion",
"manifesterien",
"manifesterion",
"maodierned",
"marc’hadourien",
"marc’hadourion",
"marc’hegerien",
"marc’hegerion",
"marc’heien",
"marc’hekaerien",
"marc’hekaerion",
"marc’hergerien",
"marc’hergerion",
"marc’hhouarnerien",
"marc’hhouarnerion",
"marc’homerien",
"marc’homerion",
"marichaled",
"margodennerien",
"margodennerion",
"markizien",
"markizion",
"marokinerien",
"marokinerion",
"martoloded",
"marvailherien",
"marvailherion",
"mañsonerien",
"mañsonerion",
"marc’heien",
"marc’heion",
"merdeidi",
"mederien",
"medisined",
"medisinourien",
"medisinourion",
"meingimiourien",
"meingimiourion",
"mekanikerien",
"mekanikerion",
"melenarded",
"melestrourien",
"melestrourion",
"moanarded",
"melldroaderien",
"melldroaderion",
"mendemerien",
"mendemerion",
"menec’h",
"mengleuzierien",
"mengleuzierion",
"merc’hetaerien",
"merc’hetaerion",
"merdeerien",
"merdeerion",
"mererien",
"mererion",
"merourien",
"merourion",
"merserien",
"merserion",
"merzherien",
"merzherion",
"merzherierien",
"merzherierion",
"mesaerien",
"mesaerion",
"mestroù-pastezer",
"metalourien",
"metalourion",
"meveled",
"mevelien",
"mevelion",
"mezeien",
"mezvierien",
"mezvierion",
"mibien",
"mibien-gaer",
"mibien-vihan",
"micherelourien",
"micherelourion",
"micherourien",
"micherourion",
"mic’hieien",
"mignoned",
"milinerien",
"milinerion",
"milourien",
"milourion",
"milvezeien",
"milvezeion",
"minerien",
"minerion",
"ministred",
"minored",
"minterien",
"minterion",
"mirerien",
"mirerion",
"mirourien",
"mirourion",
"misionerien",
"misionerion",
"mistri",
"mistri-pastezer",
"mistri-prezegennerien",
"mistri-prezegennerion",
"mistri-skol",
"mistri-vicherour",
"mogned",
"monitourien",
"monitourion",
"moraerien",
"moraerion",
"morianed",
"morianetaerien",
"morianetaerion",
"morlaeron",
"moruteaerien",
"moruteaerion",
"mouezhierien",
"mouezhierion",
"moullerien",
"moullerion",
"moused",
"mouskederien",
"mouskederion",
"mouskedourien",
"mouskedourion",
"mouzherien",
"mouzherion",
"mudien",
"muntrerien",
"muntrerion",
"munuzerien",
"munuzerion",
"muzikerien",
"muzikerion",
"muzulierien",
"muzulierion",
"naetaerien",
"naetaerion",
"nagenned",
"naturoniourien",
"naturoniourion",
"naturourien",
"naturourion",
"nervourien",
"nervourion",
"neurologourion",
"neurologourien",
"neurologourion",
"neurosurjianed",
"neuñverien",
"neuñverion",
"nijerien",
"nijerion",
"nized",
"nizien",
"nizion",
"notered",
"noterien",
"noterion",
"nozourien",
"nozourion",
"oadourien",
"oadourion",
"oberataourien",
"oberataourion",
"obererien",
"obererion",
"oberiataerien",
"oberiataerion",
"oberierien",
"oberierion",
"oberourien",
"oberourion",
"ofiserien",
"ofiserion",
"ograouerien",
"ograouerion",
"optometrourien",
"optometrourion",
"orfebourien",
"orfebourion",
"orined",
"oristaled",
"oueskerien",
"oueskerion",
"paeerien",
"paeerion",
"paeroned",
"palerien",
"palerion",
"palforserien",
"palforserion",
"paluderien",
"paluderion",
"pampalarded",
"pantierien",
"pantierion",
"paotred",
"paotredoù",
"paotredigoù",
"paparazzied",
"paramantourien",
"paramantourion",
"pardonerien",
"pardonerion",
"pareourien",
"pareourion",
"pastezerien",
"pastezerion",
"pastored",
"pec’herien",
"pec’herion",
"peizanted",
"pellenndroaderien",
"pellenndroaderion",
"pellskriverien",
"pellskriverion",
"pennijinourien",
"pennijinourion",
"penngorporaled",
"pennprokulored",
"pennprokulorien",
"pennprokulorion",
"pennsekretourien",
"pennsekretourion",
"pennsellerien",
"pennsellerion",
"pennskridaozerien",
"pennskridaozerion",
"pennskrivagnerien",
"pennskrivagnerion",
"pennsonerien",
"pennsonerion",
"pennvekanikerien",
"pennvekanikerion",
"penterien",
"penterion",
"peoc’hgarourien",
"peoc’hgarourion",
"peorien",
"peorion",
"perc’henned",
"perc’herined",
"personed",
"perukennerien",
"perukennerion",
"perukennourien",
"perukennourion",
"perzhidi",
"peskedoniourien",
"peskedoniourion",
"peskerien",
"peskerion",
"pesketaerien",
"pesketaerion",
"pesketaourien",
"pesketaourion",
"pianoourien",
"pianoourion",
"piaouerien",
"piaouerion",
"pibien",
"pikerien",
"pikerion",
"pilhaouaerien",
"pilhaouaerion",
"pinvidien",
"pinvidion",
"plastrerien",
"plastrerion",
"pleustrerien",
"pleustrerion",
"plomerien",
"plomerion",
"poberien",
"poberion",
"poderien",
"poderion",
"poliserien",
"poliserion",
"politikacherien",
"politikacherion",
"politikerien",
"politikerion",
"politikourien",
"politikourion",
"poltredourien",
"poltredourion",
"pomperien",
"pomperion",
"porfumerien",
"porfumerion",
"porzhierien",
"porzhierion",
"porzhiourien",
"porzhiourion",
"posterien",
"posterion",
"pouferien",
"pouferion",
"poultrerien",
"poultrerion",
"pourchaserien",
"pourchaserion",
"pourchasourien",
"pourchasourion",
"pourvezerien",
"pourvezerion",
"prederourien",
"prederourion",
"prefeded",
"preizherien",
"preizherion",
"preizhourien",
"preizhourion",
"prenerien",
"prenerion",
"prestaouerien",
"prestaouerion",
"prezegennerien",
"prezegennerion",
"prezidanted",
"priourien",
"priourion",
"prizachourien",
"prizachourion",
"prizonidi",
"prizonierien",
"prizonierion",
"priñsed",
"produerien",
"produerion",
"prokulored",
"prokulorien",
"prokulorion",
"psikiatrourien",
"psikiatrourion",
"psikologourien",
"psikologourion",
"rakprenerien",
"rakprenerion",
"randonerien",
"randonerion",
"ratouzed",
"rebecherien",
"rebecherion",
"rederien",
"rederien-vor",
"rederien-vro",
"rederion",
"rederion-vor",
"rederion-vro",
"reizhaouerien",
"reizhaouerion",
"reizherien",
"reizherion",
"rektorien",
"rektorion",
"renerien",
"renerion",
"republikaned",
"repuidi",
"retredidi",
"retretidi",
"reuzeudien",
"reuzeudion",
"reveulzierien",
"reveulzierion",
"riblerien",
"riblerion",
"riboderien",
"riboderion",
"riboulerien",
"riboulerion",
"roberien",
"roberion",
"roerien",
"roerion",
"romanterien",
"romanterion",
"rugbierien",
"rugbierion",
"rubgiourien",
"rubgiourion",
"ruzarded",
"ruzerien",
"ruzerion",
"ruzikerien",
"ruzikerion",
"salverien",
"salverion",
"saoznegerien",
"saoznegerion",
"savadennerien",
"savadennerion",
"saverien",
"saverion",
"saveteerien",
"saveteerion",
"savourien",
"savourion",
"sekretourien",
"sekretourien-kontour",
"sekretourion-kontour",
"sekretourien-kontourien",
"sekretourion",
"sekretourion-kontourion",
"selaouerien",
"selaouerion",
"sellerien",
"sellerion",
"sellourien",
"sellourion",
"senedourien",
"senedourion",
"servijerien",
"servijerion",
"sevenerien",
"sevenerion",
"sikourerien",
"sikourerion",
"sinerien",
"sinerion",
"skarzherien",
"skarzherion",
"skeudennaouerien",
"skeudennaouerion",
"skeudennourien",
"skeudennourion",
"skiantourien",
"skiantourion",
"skignerien",
"skignerion",
"sklavourien",
"sklavourion",
"skoazellerien",
"skoazellerion",
"skolaerien",
"skolaerion",
"skolajidi",
"skolidi",
"skolveuridi",
"skorerien",
"skorerion",
"skraperien",
"skraperion",
"skridaozerien",
"skridaozerion",
"skridvarnourien",
"skridvarnourion",
"skrivagnerien",
"skrivagnerion",
"skuberien",
"skuberion",
"skultourien",
"skultourion",
"sodien",
"sokialourien",
"sokialourion",
"sokiologourien",
"sokiologourion",
"sokioyezhoniourien",
"sokioyezhoniourion",
"sonaozourien",
"sonaozourion",
"sonerien",
"sonerion",
"soniawourien",
"soniawourion",
"sonourien",
"sonourion",
"soroc’horien",
"soroc’horion",
"sorserien",
"sorserion",
"soudarded",
"soñjerien",
"soñjerion",
"sperederien",
"sperederion",
"spierien",
"spierion",
"splujerien",
"splujerion",
"sponsorien",
"sponsorion",
"sponterien",
"sponterion",
"sporterien",
"sporterion",
"sportourien",
"sportourion",
"stadrenerien",
"stadrenerion",
"stajidi",
"stalierien",
"stalierion",
"sterdeidi",
"steredoniourien",
"steredoniourion",
"steredourien",
"steredourion",
"stilourien",
"stilourion",
"stlejerien",
"stlejerion",
"stlenngraferien",
"stlenngraferion",
"stolierien",
"stolierion",
"stomogourien",
"stomogourion",
"stourmerien",
"stourmerion",
"stranerien",
"stranerion",
"steredourien",
"steredourion",
"strinkerien",
"strinkerion",
"strobinellerien",
"strobinellerion",
"studierien",
"studierion",
"stummerien",
"stummerion",
"sturierien",
"sturierion",
"surjianed",
"taboulinerien",
"taboulinerion",
"tagerien",
"tagerion",
"tailhanterien",
"tailhanterion",
"talabarderien",
"talabarderion",
"tanerien",
"tanerion",
"taolerien",
"taolerion",
"tavarnerien",
"tavarnerion",
"tavarnourien",
"tavarnourion",
"teknikourien",
"teknikourion",
"telennourien",
"telennourion",
"tennerien",
"tennerion",
"teogerien",
"teogerion",
"teozofourien",
"teozofourion",
"tevarded",
"teñzorerien",
"teñzorerion",
"tinellerien",
"tinellerion",
"tisavourien",
"tisavourion",
"titourerien",
"titourerion",
"toerien",
"toerion",
"togerien",
"togerion",
"tommerien",
"tommerion",
"tontoned",
"torfedourien",
"torfedourion",
"torgosed",
"torodelled",
"toucherien",
"toucherion",
"touellerien",
"touellerion",
"toullerien",
"toullerien-buñsoù",
"toullerien-vezioù",
"toullerion",
"toullerion-buñsoù",
"toullerion-vezioù",
"touparded",
"touristed",
"trafikerien",
"trafikerion",
"trapezerien",
"trapezerion",
"trec’hourien",
"trec’hourion",
"tredeidi",
"tredanerien",
"tredanerion",
"tredeeged",
"tredeoged",
"treitourien",
"treitourion",
"treizherien",
"treizherion",
"tremenerien",
"tremenerion",
"tresourien",
"tresourion",
"trevadennerien",
"trevadennerion",
"trevourien",
"trevourion",
"trezerien",
"trezerion",
"triaklerien",
"triaklerion",
"trinkerien",
"trinkerion",
"troadeien",
"troadeion",
"troazhadourien",
"troazhadourion",
"troc'herien",
"troc'herion",
"troergerzherien",
"troergerzherion",
"troerien",
"troerien-douar",
"troerion",
"troerion-douar",
"troiadourien",
"troiadourion",
"troidellerien",
"troidellerion",
"trokerien",
"trokerion",
"trompilherien",
"trompilherion",
"trotskiourien",
"trotskiourion",
"trubarded",
"trucherien",
"trucherion",
"truilhenned",
"truterien",
"truterion",
"tud",
"tudigoù",
"tudjentil",
"tudoniourien",
"tudoniourion",
"tuerien",
"tuerion",
"tuferien",
"tuferion",
"tumporellerien",
"tumporellerion",
"turgnerien",
"turgnerion",
"tutaerien",
"tutaerion",
"unyezherien",
"urcherien",
"urcherion",
"uzurerien",
"uzurerion",
"valserien",
"valserion",
"voterien",
"voterion",
"violoñserien",
"violoñserion",
"wikipedourien",
"wikipedourion",
"yalc’hadourien",
"yalc’hadourion",
"yezhadurourien",
"yezhadurourion",
"yezherien",
"yezherion",
"yezhoniourien",
"yezhoniourion",
"yezhourien",
"yezhourion",
"youc'herien",
"youc'herion",
"yotaerien",
"yotaerion",
"yunerien",
"yunerion",
"yuzevien",
"yuzevion",
"zinkerien",
"zinkerion"
);
my %anv_lies_tud = map { $_ => 0 } @anv_lies_tud;
open(LT_EXPAND, "lt-expand $dic_in |") or die "can't fork lt-expand: $!\n";
open(OUT, "> $dic_out") or die "can't open $dic_out: $!\n";
open(ERR, "> $dic_err") or die "can't open $dic_err: $!\n";
# Count how many words handled and unhandled.
my ($out_count, $err_count) = (0, 0);
my %all_words;
my %all_lemmas;
while () {
chomp;
next unless (/^([^: _~]+):(>:)?([^:<]+)([^#]*)(#.*)?/);
my ($word, $lemma, $tags) = ($1, $3, $4);
$tags =~ s/()\+.*/$1/;
$tags =~ s/(<..>)\+.*/$1/;
$lemma = $word if ($lemma eq 'direct' or $lemma eq 'prpers');
$all_lemmas{$lemma} = 1;
$all_words{$word} = 1;
my $tag = '';
if ($tags eq '') { $tag = "D e sp" } # an, ar, al
elsif ($tags eq '') { $tag = "D e sp" } # un, ur, ul
elsif ($tags eq '') { $tag = "D e s" } # bep
elsif ($tags eq '') { $tag = "D e sp" } # hon
elsif ($tags eq '') { $tag = "D m sp" } # e
elsif ($tags eq '') { $tag = "D f sp" } # he
# Verbal particles.
elsif ($tags eq '') { $tag = "L a" } # a
elsif ($tags eq '') { $tag = "L e" } # e, ec’h, ez
elsif ($tags eq '') { $tag = "L o" } # e, ec’h, ez
elsif ($tags eq '') { $tag = "L n" } # na
elsif ($tags eq '') { $tag = "L r" } # ra
elsif ($tags eq '') { $tag = "I" } # ac’hanta
# Adverbs.
elsif ($tags eq '') { $tag = "C coor" } # ha, met
elsif ($tags eq '') { $tag = "C adv" } # eta, emichañs
elsif ($tags =~ /.*/) { $tag = "C sub" } # mar, pa
# Adverbs.
elsif ($tags eq '') { $tag = "A" } # alies, alese, amañ
elsif ($tags eq '') { $tag = "A neg" } # ne, ned, n’
elsif ($tags eq '') { $tag = "A itg" } # perak, penaos
elsif ($tags eq '') { $tag = "A pre" } # gwall, ken, pegen
# Adjectives.
elsif ($tags eq '') { $tag = "J" } # brav, fur
elsif ($tags eq '') { $tag = "J cmp" } # bravoc’h
elsif ($tags eq '') { $tag = "J sup" } # bravañ
elsif ($tags eq '') { $tag = "J exc" } # bravat
elsif ($tags eq '') { $tag = "J itg" } # peseurt, petore
elsif ($tags eq '') { $tag = "J ind" } # all, memes
# Pronouns subject.
elsif ($tags eq '') { $tag = "R suj e s 1" } # me
elsif ($tags eq '') { $tag = "R suj e s 2" } # te
elsif ($tags eq '') { $tag = "R suj m s 3" } # eñ
elsif ($tags eq '') { $tag = "R suj f s 3" } # hi
elsif ($tags eq '') { $tag = "R suj e p 1" } # ni
elsif ($tags eq '') { $tag = "R suj e p 2" } # c’hwi
elsif ($tags eq '') { $tag = "R suj e p 3" } # int
elsif ($tags eq '') { $tag = "R suj e p 3" } # int
elsif ($tags eq '') { $tag = "R ref e s 1" } # ma-unan
elsif ($tags eq '') { $tag = "R ref e s 2" } # da-unan
elsif ($tags eq '') { $tag = "R ref f s 3" } # e-unan
elsif ($tags eq '') { $tag = "R ref m s 3" } # he-unan
elsif ($tags eq '') { $tag = "R ref e p 1" } # hon-unan
elsif ($tags eq '') { $tag = "R ref e p 2" } # hoc’h-unan
elsif ($tags eq '') { $tag = "R ref e p 3" } # o-unan
elsif ($tags eq '') { $tag = "R itg e sp" } # petra, piv
elsif ($tags eq '') { $tag = "R itg e p" } # pere
elsif ($tags eq '') { $tag = "R dem m s" } # hemañ
elsif ($tags eq '') { $tag = "R dem f s" } # homañ
elsif ($tags eq '') { $tag = "R dem e s" } # se
elsif ($tags eq '') { $tag = "R ind mf s" } # hini
elsif ($tags eq '') { $tag = "R ind mf p" } # re
elsif ($tags eq '') { $tag = "R def e s" } # henn
elsif ($tags eq '') { $tag = "R def m s" } # egile
elsif ($tags eq '') { $tag = "R def f s" } # eben
# Pronouns object.
elsif ($tags eq '') { $tag = "R e s 1 obj" } # ma, va
elsif ($tags eq '') { $tag = "R e p 1 obj" } # hon, hor, hol
elsif ($tags eq '') { $tag = "R e s 2 obj" } # az
elsif ($tags eq '') { $tag = "R e p 2 obj" } # ho
elsif ($tags eq '') { $tag = "R m s 1 obj" } # e
elsif ($tags eq '') { $tag = "R f s 1 obj" } # he
elsif ($tags eq '') { $tag = "R e p 3 obj" } # o
# Numbers.
elsif ($tags eq '') { $tag = "K e s" }
elsif ($tags eq '') { $tag = "K m p" }
elsif ($tags eq '') { $tag = "K f p" }
elsif ($tags eq '') { $tag = "K e p" }
# Ordinal numbers.
elsif ($tags eq '') { $tag = "K e sp o" }
elsif ($tags eq '') { $tag = "K e s o" }
elsif ($tags eq '') { $tag = "K e p o" }
elsif ($tags eq '') { $tag = "K m p o" }
elsif ($tags eq '