Difference between revisions of "Apertium Nieuw talenpaar HOWTO"
JupilerTauro (talk | contribs) |
JupilerTauro (talk | contribs) |
||
Line 83: | Line 83: | ||
De namen van de symbolen moeten niet zo kort zijn, je mag ze ook voluit schrijven, maar omdat je ze heel veel zal moeten typen, is het makkelijk om ze af te korten. |
De namen van de symbolen moeten niet zo kort zijn, je mag ze ook voluit schrijven, maar omdat je ze heel veel zal moeten typen, is het makkelijk om ze af te korten. |
||
Maar dit is niet zo gemakkelijk in het Servo-Kroatisch. Daar verbuig je zelfstandige naamwoorden niet enkel volgens getal(enkelvoud & meervooud), maar ook volgens "case" en hebben een geslacht. |
Maar dit is niet zo gemakkelijk in het Servo-Kroatisch. Daar verbuig je zelfstandige naamwoorden niet enkel volgens getal(enkelvoud & meervooud), maar ook volgens "case" en hebben een geslacht. |
||
Hoe dan ook, we nemen voor dit voorbeeld aan dat het zelfstandig naamwoord mannelijk is in de nominatief (Een volledig voorbeeld vind je op het einde van dit document. |
|||
Het volgende wat we moeten doen, is het maken van een sectie voor de paradigma's, |
|||
<pre> |
<pre> |
||
Line 90: | Line 91: | ||
</pardefs> |
</pardefs> |
||
</pre> |
</pre> |
||
en een voor de sectie van het woordenboek: |
|||
and a dictionary section: |
|||
: |
|||
<pre> |
<pre> |
||
<section id="main" type="standard"> |
<section id="main" type="standard"> |
||
Line 96: | Line 98: | ||
</section> |
</section> |
||
</pre> |
</pre> |
||
Er bestaan 2 types secties. Het eerste is de standaardsectie en bevat woorden,clitica, etc. Het 2e type wordt de "voorwaardelijke" type genoemd en en bevat grammaticale elementen zoals punctuatie etc. In dit voorbeeld gebruiken we geen "voorwaardelijke" sectie. |
|||
<br /><br /> |
<br /><br /> |
||
<pre> |
<pre> |
Revision as of 15:47, 2 December 2011
Apertium Nieuw talenpaar HOWTO
Dit HOWTO document zal beschrijven hoe je vanaf het begin een nieuw talenpaar moet starten voor het Apertium computervertalingssysteem.
Het is niet nodig om iets van de taal of van het vertalingssysteem te kennen, maar het is wel belangrijk dat je het onderscheid tussen een naamwoord,adjectief... kan maken.
Contents
Inleiding
Apertium is, zoals je waarschijnlijk al had begrepen, een automatisch computervertalingssysteem. Dit klopt niet helemaal, het is een computervertalingsplatform. Apertium voorziet een "motor" en "gereedschap" zodat je zelf je eigen computervertalingssystemen kan maken. Het enige wat je zelf moet doen, is de data schrijven. De data bestaat uit 3 belangrijke delen, de woordenboeken, en enkele regels (woordvolgorde en andere grammatica).
Als je meer info wilt over het Apertiumproject kan je hier eens kijken: http://wiki.apertium.org/wiki/Publications
Programma's
Om apertium te laten werken heb je de volgende programma's nodig:
- lttoolbox(>= 3.0.0)
- libxml utils (xmllint etc.)
- apertium (>= 3.0.0)
- Tekstverwerker (of een XML-verwerker)
Dit document legt niet uit hoe je deze programma's moet installeren. Als je meer info nodig hebt, kijk dan op de Apertium-site.
Waaruit bestaat een talenpaar?
Apertium is een oppervlakkig computervertalingssysteem. Dit is omdat het enkel via woordenboeken en enkele oppervlakkige regels kan vertalen. Het verschil met grondige vertalingen is dat Apertium niet aan syntactische zinsontleding kan doen. De regels die Apertium gebruikt zijn gebaseerd op typische overeenkomsten in lexicale groepen, eerder dan "de bewerkingen op de parsetree". Op het basisniveau zijn er 3 belangrijke woordenboeken:
- Het morfologisch woordenboek voor taal xx: dit bevat de regels over hoe woorden in taal xx zijn verbogen. In ons voorbeeld wordt het zo genoemd:
apertium-sh-en.sh.dix
- Het morfologisch woordenboek voor taal yy: dit bevat de regels over hoe woorden in taal yy zijn verbogen. In ons voorbeeld wordt het zo genoemd:
apertium-sh-en.en.dix
- Een tweetalig woordenboek: dit bevat overeenkomsten tussen woorden en symbolen van de 2 talen. In ons voorbeeld wordt het zo genoemd:
apertium-sh-en.sh-en.dix
In een talenpaar kunnen beide talen de bron of de bestemming zijn. Deze termen zijn relatief.
Er bestaan ook 2 bestanden van vertalingsregels. Dit zijn de regels die bepalen hoe woorden herordend worden in zinnen bv. chat noir --> kat zwart --> zwarte kat. Het bepaalt ook de geslachtsaanpassingen, getallen etc. Deze regels kunnen ook gebruikt worden om nieuwe lexicale items toe te voegen of te verwijderen. Deze bestanden zijn:
- vertalingsregels van taal xx naar taal yy: dit bestand bevat de regels van hoe taal xx in taal yy wordt veranderd. In ons voorbeeld wordt het zo genoemd:
apertium-sh-en.sh-en.t1x
- ertalingsregels van taal yy naar taal xx: dit bestand bevat de regels van hoe taal yy in taal xx wordt veranderd. In ons voorbeeld wordt het zo genoemd:
apertium-sh-en.en-sh.t1x
Veel van de talenparen hebben ook nog andere bestanden, maar die komen hier niet aan bod. Die bestanden zijn enkel nodig om het systeem te laten werken.
Talenpaar
Zoals je misschien al hebt gezien aan de bestandsnamen, gebruikt deze handleiding het voorbeeld Servo-Kroatisch en Engels om te tonen hoe je een basissyteem moet maken.
Dit is geen ideaal paar omdat het systeem beter werkt voor talen die meer verbanden met elkaar hebben. Maar dit zal geen problemen zijn bij de simpele voorbeelden die we hier gebruiken.
Enkele opmerkingen over "TERMS?"
Er zijn enkele termen die je zal moeten begrijpen voor we verdergaan.
De 1e term is lemma. Een lemma is een woord dat niet is aangepast door enige grammatica. Bv. het lemma van katten is kat. Voor Engelse woorden zal dit het enkelvoud van die woorden zijn. Voor werkwoorden zal dit de infinitief zijn zonder "to".
Bv. het lemma van "was" wordt dan "be".
De 2e term is symbool. In de context van Apertium verwijst "symbool" naar de grammaticale vorm. Bv. katten is een zelfstandig naamwoord(noun) in het meervoud(plural). Daarom krijgt katten het symbool "noun" en het symbool "plural". Bij de input en output van apertium worden deze meestal tussen "<" en ">" weergeven:
<n>
; voor een "noun".<pl>
; voor een "plural".
Andere voorbeelden van symbolen zijn <sg>; singular(enkelvoud), <p1>; first person(eerste persoon), <pri>; indicatief, etc. "<" en ">" worden ook wel tags genoemd. In veel van de beschikbare talenparen zijn de betekenissen van de symbolen acroniemen van Catalaanse woorden. Bv. vbhaver ---- van vb (verb).
De 3e term is paradigma. In de context van Apertium verwijst paradigma naar hoe een groep woorden met dezelfde kenmerken wordt verbogen. In het morfologische woordenboek worden lemma's gelinkt aan paradigma's. Zo kunnen wij beschrijven hoe een lemma verbogen wordt zonder alle uitgangen te moeten schrijven.
Een voorbeeld van het nut is dat, als we bv. de 2 adjectieven "happy" en "lazy" zouden opslaan, dat we gelijkaardige verbuigingen in 1 keer in het systeem kunnen steken, zonder dat we alle mogelijkheden moeten schrijven
- happy, happ (y, ier, iest)
- lazy, laz (y, ier, iest)
Zo kunnen we simpelweg 1 model opslaan en dan zeggen dat "lazy verbogen wordt zoals happy", of dat "shy verbogen wordt zoals happy", "naughty zoals happy" etc. In dit voorbeeld is "happy" het paradigma en is het het voorbeeld hoe gelijkaardige woorden verbogen moeten worden. Paradigma's worden gedefinieerd in <pardef> tags en gebruikt in <par> tags.
Woordenboeken met 1 taal
Laten we beginnen met ons eerste woordenboek te schrijven. Het woordenboek is een XML bestand. Open je tekstverwerker en typ dit in:
<?xml version="1.0" encoding="UTF-8"?> <dictionary> </dictionary>
Het bestand begrijpt dat we een woordenboek willen maken. Voordat het nuttig wordt, moeten we wat meer parameters toevoegen, de eerste is het alfabet. Dit definieert de letters die er worden gebruikt in dat woordenboek, voor Servich-Kroatisch zal het dan alle letters van het Servo-Kroatisch alfabet bevatten:
<alphabet>ABCČĆDDžĐEFGHIJKLLjMNNjOPRSŠTUVZŽabcčćddžđefghijklljmnnjoprsštuvzž</alphabet>
Zet het alfabet juist onder de <dictionary> tag. Daarna moeten we enkele symbolen definiëren. Laten we beginnen met makkelijke voorbeelden, een "noun"(n) in "singular"(sg) en in "plural"(pl).
<sdefs> <sdef n="n"/> <sdef n="sg"/> <sdef n="pl"/> </sdefs>
De namen van de symbolen moeten niet zo kort zijn, je mag ze ook voluit schrijven, maar omdat je ze heel veel zal moeten typen, is het makkelijk om ze af te korten. Maar dit is niet zo gemakkelijk in het Servo-Kroatisch. Daar verbuig je zelfstandige naamwoorden niet enkel volgens getal(enkelvoud & meervooud), maar ook volgens "case" en hebben een geslacht. Hoe dan ook, we nemen voor dit voorbeeld aan dat het zelfstandig naamwoord mannelijk is in de nominatief (Een volledig voorbeeld vind je op het einde van dit document. Het volgende wat we moeten doen, is het maken van een sectie voor de paradigma's,
<pardefs> </pardefs>
en een voor de sectie van het woordenboek:
<section id="main" type="standard"> </section>
Er bestaan 2 types secties. Het eerste is de standaardsectie en bevat woorden,clitica, etc. Het 2e type wordt de "voorwaardelijke" type genoemd en en bevat grammaticale elementen zoals punctuatie etc. In dit voorbeeld gebruiken we geen "voorwaardelijke" sectie.
<?xml version="1.0" encoding="UTF-8"?> <dictionary> <sdefs> <sdef n="n"/> <sdef n="sg"/> <sdef n="pl"/> </sdefs> <pardefs> </pardefs> <section id="main" type="standard"> </section> </dictionary>
<pardef n="gramofon__n"> <e><p><l/><r><s n="n"/><s n="sg"/></r></p></e> <e><p><l>i</l><r><s n="n"/><s n="pl"/></r></p></e> </pardef>
* gramofoni (left to right) gramofon<n><pl> (analysis) * gramofon<n><pl> (right to left) gramofoni (generation)
<e lm="gramofon"><i>gramofon</i><par n="gramofon__n"/></e>