Apertium has moved from SourceForge to GitHub.
If you have any questions, please come and talk to us on #apertium on irc.freenode.net or contact the GitHub migration team.

Utilisation de ressources linguistiques

From Apertium
(Difference between revisions)
Jump to: navigation, search
(Début de traduction)
 
(Suite de la traduction)
Line 13: Line 13:
 
== Récupération de données linguistiques ==
 
== Récupération de données linguistiques ==
   
Avant de pouvoir produire ces fichiers, vous avez besoin d'un ensemble de données linguistiques qui peuvent être insérés dans ces fichiers. Ces données peuvent être des listes de mots, des corpus de mots issus de ''web-crawlers'' comme [http://borel.slu.edu/crubadan/ Crubadán], des notes de grammaire, des traductions existantes de logiciels open-source et de logiciels libres comme KDE ou GNOME, etc... Quelques suggestions pratiques sur la manière de construire des listes de mots de démarrage peuvent être trouvées à [[Fabriquer des dictionnaires]], mais si vous sentez que c'est trop technique, demandez juste à quelqu'un du team Apertium de vous préparer quelque-chose comme ça.
+
Avant de pouvoir produire ces fichiers, vous avez besoin d'un ensemble de données linguistiques qui peuvent être insérés dans ces fichiers. Ces données peuvent être des listes de mots, des corpus de mots issus de ''web-crawlers'' comme [http://borel.slu.edu/crubadan/ Crubadán], des notes de grammaire, des traductions existantes de logiciels open-source et de logiciels libres comme KDE ou GNOME, etc... Quelques suggestions pratiques sur la manière de construire des listes de mots de démarrage peuvent être trouvées à [[Fabriquer des dictionnaires]], mais si vous sentez que c'est trop technique, demandez juste à quelqu'un de l'équipe Apertium de vous préparer quelque-chose comme ça.
   
 
Un point crucial ici est que les données doivent avoir été recueillies à partir de zéro, ou être disponibles sous une licence compatible avec la licence Apertium [http://www.gnu.org/licenses/licenses.fr.html GPL]. En d'autres termes, vous ne pouvez ''définitivement'' pas juste commencer à copier des dictionnaires publiés ou tout matériel commercial dans votre stockage de données.
 
Un point crucial ici est que les données doivent avoir été recueillies à partir de zéro, ou être disponibles sous une licence compatible avec la licence Apertium [http://www.gnu.org/licenses/licenses.fr.html GPL]. En d'autres termes, vous ne pouvez ''définitivement'' pas juste commencer à copier des dictionnaires publiés ou tout matériel commercial dans votre stockage de données.
   
Il est peu probable que ces données soient appropriées "telles quelles" pour une utilisation dans Apertium, and it will need a greater or lesser amount of revision first. You do not have to be a first-language speaker to collect and systematise the data, but you should have a reasonable knowledge of the language, and be working in consultation with first-language speakers.
+
Il est peu probable que ces données soient appropriées "telles quelles" pour une utilisation dans Apertium, et il faudra un plus ou moins grand ''*** amount of revision *** (à traduire)'' d'abord. Vous n'avez pas besoin de parler la première langue pour récupérer et systématiser des données, mais vous devriez avoir une connaissance raisonnable de la langue, et travailler en consultation avec des locuteurs de la première langue.
   
It is possible to collect a small amount of linguistic data, and start testing it with Apertium. However, this is not recommended - your views of how the data should be segmented may change, leading to wasted work. Once initial contact has been made with the Apertium team, it is better to aim at collecting a sizeable wordlist (1,000-2,000 words) and coming to some preliminary decisions on how the language's sentences are structured. In the meantime, maintain contact with the Apertium team, and discuss any issues that have arisen in regard to your data collection.
+
Il est possible de récupérer un petit ensemble de données linguistiques, et de commencer à le tester avec Apertium. Toutefois, ce n'est pas recommandé. Votre point de vue sur la manière dont les données devraient être segmentées peut changer, menant à du travail gaspillé. Une fois qu'un contact initial a été établi avec l'équipe Apertium, il vaut mieux récupérer une liste de mot conséquente (1000-2000 mots) et prendre des décisions préliminaires sur la manière dont les phrases de la langue sont structurées. Dans l'intervalle, maintenir le contact avec l'équipe d'Apertium, et discuter des problèmes qui ont surgi par rapport à votre collecte de données.
   
You will have a good idea of how the language works from your own knowledge of it, and from reviewing published materials (eg dictionaries, grammars) about it. From this you can decide on the particular elements of information that need to be noted down for each word in order to capture its meaning and variants.
+
Vous aurez une bonne vision sur la façon dont la langue fonctionne à partir de vos propres connaissances à son sujet, et de l'examen de documents publiés (ex: dictionnaires, grammaires) relatifs à cette langue. À partir de vous pouvez prendre des décisions sur les éléments d'information particuliers qu'il faut noter pour chaque mot afin de récupérer sa signification et ses variantes.
   
In many widely-spoken languages (e.g. English, German, Spanish) there may be a range of material available, and there may also be a significant number of people willing and able to work with you on collecting and systematising the data. However, for lesser-used languages (e.g. Breton, Kashubian) the amount of material and the number of helpers may be small — many of the lesser-used languages in KDE, for instance, only have one or two people working on them. If you are in this position, it is important to remember that "the best is the enemy of the good". You will not be able to create your language's equivalent of the Oxford English Dictionary overnight, and there is no point in trying. It is better to aim at a good basic foundation which will allow you to develop it later and fill in the gaps as time and manpower present themselves. So, for instance, while it might be ideal to have citation sentences for each word giving its typical use in context, this may be a luxury you cannot as yet afford.
+
Dans plusieurs langues largement parlées (ex: anglais, allemand, espagnol, français, portugais) il devrait y avoir beaucoup de matériel disponible, et il devrait y avoir aussi un nombre significatif de personnes désireuses et capables de travailler avec vous sur la collecte et la systématisation des données. Toutefois, pour les langues moins pratiquées (ex: breton, cachoubie) la quantité de matériel et le nombre de collaborateurs peut être petit — la plupart des langues les moins utilisées sur KDE, par exemple, n'ont qu'une ou deux personnes pour travailler dessus. Si vous êtes dans cette position, il est important de vous rappeler que "le mieux est l'ennemi du bien". Vous ne serez pas capable de créer pour votre langue l'équivalent du dictionnaire anglais Oxford (ou du Larousse) en une nuit, et c'est pas la peine d'essayer. Il vaut mieux viser une bonne fondation de base qui vous permettra de le développer plus tard et de combler les lacunes lorsque le temps et la main-d'œuvre se présenteront d'eux mêmes. Donc, par exemple, alors que l'idéal serait d'avoir des phrases de citation pour chaque mot donnant son utilisation typique dans un contexte, ça peut être in luxe que vous ne pouvez pas vous permettre.
   
=== Wiktionaire ===
+
=== Wiktionnaire ===
   
For some languages, the free dictionary project, [http://en.wiktionary.org Wiktionary] has reasonable data. For example, for Faroese, nouns come with declination, which can be automatically extracted by means of scripts. Some of this can be quite complicated, but if there is a site which has this information freely available in a standardised format, contact someone on the Apertium team, and they'd be glad to help you write a script, or to write the script for you.
+
Pour certaines langues, le projet de dictionnaire libre, [http://fr.wiktionary.org/wiki/Wiktionnaire:Page_d%E2%80%99accueil Wiktionnaire] possède une quantité de données raisonnable. Par exemple, dans le wiktionnaire anglais pour ''[http://en.wiktionary.org/wiki/Faroese Faroese]'' (relatif aux îles Féroé), les noms viennent avec des déclinaisons, qui peuvent être automatiquement récupérées au moyen de scripts. Certains d'entre eux peuvent être assez compliqués, mais s'il existe un site qui dispose de cette information librement disponible dans un format normalisé, contactez quelqu'un de l'équipe Apertium, et nous serons heureux de vous aider à écrire un script, ou d'écrire un script pour vous.
   
For Wiktionary, contact [[User:Francis Tyers]] who has some pre-rolled scripts for retrieving morphological information.
+
Pour le Wiktionnaire, contactez [[User:Francis Tyers]] qui dispose de quelques scripts pré-mâchés pour récupérer l'information morphologique.
   
=== More sources of linguistic data ===
+
=== Davantage de sources de données linguistiques ===
The Wiki of the Association for Computational Linguistics has a [http://www.aclweb.org/aclwiki/index.php?title=List_of_resources_by_language List of resources by language] which often contains useful links (often clearly marked for whether the resources are Free Software or Proprietary).
+
  +
Le Wiki l'Association for Computational Linguistics a une [http://www.aclweb.org/aclwiki/index.php?title=List_of_resources_by_language liste de ressources par langue] qui contient souvent des liens utiles (souvent clairement indiqué comme ressources de logiciel libre ou propriétaire).
  +
  +
== Manières de stocker des données ==
  +
  +
Voir aussi : [[Speling format (français)]]
   
== Ways of storing data ==
 
{{see-also|Speling format}}
 
 
It is easiest to start storing the words in a spreadsheet or database. Gnumeric, KSpread or OOCalc are examples of the former. Once complete, your data can be exported into a format (e.g. CSV, comma-separated values) where it can be used by other software to build the Apertium dictionaries. Databases such as PostgreSQL, MySQL and SQLite are even more attractive, provided you are familiar with them, since the data can be manipulated in various ways before exporting. Further information on the software mentioned here is [at this other page].
 
It is easiest to start storing the words in a spreadsheet or database. Gnumeric, KSpread or OOCalc are examples of the former. Once complete, your data can be exported into a format (e.g. CSV, comma-separated values) where it can be used by other software to build the Apertium dictionaries. Databases such as PostgreSQL, MySQL and SQLite are even more attractive, provided you are familiar with them, since the data can be manipulated in various ways before exporting. Further information on the software mentioned here is [at this other page].
   
Line 108: Line 106:
 
After this work, you should have a set of internally consistent data that captures a lot of the key information about the most common words in your language, and you are now ready to start importing that data into Apertium. That merits a separate page [ref].
 
After this work, you should have a set of internally consistent data that captures a lot of the key information about the most common words in your language, and you are now ready to start importing that data into Apertium. That merits a separate page [ref].
   
== Some final notes ==
+
== Quelques notes finales ==
   
The first is that Apertium is a work in progress. It was originally developed for closely-related Romance languages, and is now expanding into a translation platform for a much wider range of languages. By definition, this means that future work will involve trying to accommodate linguistic constructs that are new to the system. For instance, the mutation system in Celtic languages has been handled by a small addition to the dictionary format. This is challenging and exciting, but by the same token you should not expect that the Apertium team will have an easy (or indeed any!) answer to a particular problem. Be prepared to collaborate on developing Apertium to deal with that problem.
+
The first is that Apertium is a work in progress. It was originally developed for closely-related Romance languages, and is now expanding into a translation platform for a much wider range of languages. By definition, this means that future work will involve trying to accommodate linguistic constructs that are new to the system. For instance, the mutation system in Celtic languages has been handled by a small addition to the dictionary format. This is challenging and exciting, but by the same token you should not expect that the équipe Apertium will have an easy (or indeed any!) answer to a particular problem. Be prepared to collaborate on developing Apertium to deal with that problem.
   
 
The second is that your carefully-collected data is ''not'' just an input into Apertium. You can use it to produce an online dictionary for your language (see, for instance, [http://www.eurfa.org.uk Eurfa] for Welsh), and it can also be converted easily into a print dictionary using something like LaTeX. The data can be used to build a spelling checker or a grammar checker using the tools available from the [http://borel.slu.edu/gramadoir/index.html Gramadóir] project.
 
The second is that your carefully-collected data is ''not'' just an input into Apertium. You can use it to produce an online dictionary for your language (see, for instance, [http://www.eurfa.org.uk Eurfa] for Welsh), and it can also be converted easily into a print dictionary using something like LaTeX. The data can be used to build a spelling checker or a grammar checker using the tools available from the [http://borel.slu.edu/gramadoir/index.html Gramadóir] project.

Revision as of 19:57, 29 September 2011

Cette page donne un bref aperçu sur les types de données et ressources qui peuvent être utiles pour construire une nouvelle paire de langues pour Apertium, et comment s'y prendre pour les construire si elles n'existent pas déjà.

Contents

Quels dictionnaires ?

Chaque paire de langues Apertium nécessite 3 fichiers dictionnaire. Par exemple, pour la paire Anglais-Afrikaans (en abrégé En et Af), ce serait :

  • apertium-en-af.af.dix.xml: une liste de mots afrikaans et leur variantes;
  • apertium-en-af.en.dix.xml: une liste de mots anglais et leur variantes;
  • apertium-en-af.en-af.dix.xml: une liste qui fait correspondre des mots afrikaans dans af.dix avec leur équivalent anglais dans en.dix

Ces fichiers dictionnaire ne sont pas abordés plus loin dans cette page — plus d'information sur leur présentation et leur structure est disponible dans la page Créer une nouvelle paire de langues.

Récupération de données linguistiques

Avant de pouvoir produire ces fichiers, vous avez besoin d'un ensemble de données linguistiques qui peuvent être insérés dans ces fichiers. Ces données peuvent être des listes de mots, des corpus de mots issus de web-crawlers comme Crubadán, des notes de grammaire, des traductions existantes de logiciels open-source et de logiciels libres comme KDE ou GNOME, etc... Quelques suggestions pratiques sur la manière de construire des listes de mots de démarrage peuvent être trouvées à Fabriquer des dictionnaires, mais si vous sentez que c'est trop technique, demandez juste à quelqu'un de l'équipe Apertium de vous préparer quelque-chose comme ça.

Un point crucial ici est que les données doivent avoir été recueillies à partir de zéro, ou être disponibles sous une licence compatible avec la licence Apertium GPL. En d'autres termes, vous ne pouvez définitivement pas juste commencer à copier des dictionnaires publiés ou tout matériel commercial dans votre stockage de données.

Il est peu probable que ces données soient appropriées "telles quelles" pour une utilisation dans Apertium, et il faudra un plus ou moins grand *** amount of revision *** (à traduire) d'abord. Vous n'avez pas besoin de parler la première langue pour récupérer et systématiser des données, mais vous devriez avoir une connaissance raisonnable de la langue, et travailler en consultation avec des locuteurs de la première langue.

Il est possible de récupérer un petit ensemble de données linguistiques, et de commencer à le tester avec Apertium. Toutefois, ce n'est pas recommandé. Votre point de vue sur la manière dont les données devraient être segmentées peut changer, menant à du travail gaspillé. Une fois qu'un contact initial a été établi avec l'équipe Apertium, il vaut mieux récupérer une liste de mot conséquente (1000-2000 mots) et prendre des décisions préliminaires sur la manière dont les phrases de la langue sont structurées. Dans l'intervalle, maintenir le contact avec l'équipe d'Apertium, et discuter des problèmes qui ont surgi par rapport à votre collecte de données.

Vous aurez une bonne vision sur la façon dont la langue fonctionne à partir de vos propres connaissances à son sujet, et de l'examen de documents publiés (ex: dictionnaires, grammaires) relatifs à cette langue. À partir de là vous pouvez prendre des décisions sur les éléments d'information particuliers qu'il faut noter pour chaque mot afin de récupérer sa signification et ses variantes.

Dans plusieurs langues largement parlées (ex: anglais, allemand, espagnol, français, portugais) il devrait y avoir beaucoup de matériel disponible, et il devrait y avoir aussi un nombre significatif de personnes désireuses et capables de travailler avec vous sur la collecte et la systématisation des données. Toutefois, pour les langues moins pratiquées (ex: breton, cachoubie) la quantité de matériel et le nombre de collaborateurs peut être petit — la plupart des langues les moins utilisées sur KDE, par exemple, n'ont qu'une ou deux personnes pour travailler dessus. Si vous êtes dans cette position, il est important de vous rappeler que "le mieux est l'ennemi du bien". Vous ne serez pas capable de créer pour votre langue l'équivalent du dictionnaire anglais Oxford (ou du Larousse) en une nuit, et c'est pas la peine d'essayer. Il vaut mieux viser une bonne fondation de base qui vous permettra de le développer plus tard et de combler les lacunes lorsque le temps et la main-d'œuvre se présenteront d'eux mêmes. Donc, par exemple, alors que l'idéal serait d'avoir des phrases de citation pour chaque mot donnant son utilisation typique dans un contexte, ça peut être in luxe que vous ne pouvez pas vous permettre.

Wiktionnaire

Pour certaines langues, le projet de dictionnaire libre, Wiktionnaire possède une quantité de données raisonnable. Par exemple, dans le wiktionnaire anglais pour Faroese (relatif aux îles Féroé), les noms viennent avec des déclinaisons, qui peuvent être automatiquement récupérées au moyen de scripts. Certains d'entre eux peuvent être assez compliqués, mais s'il existe un site qui dispose de cette information librement disponible dans un format normalisé, contactez quelqu'un de l'équipe Apertium, et nous serons heureux de vous aider à écrire un script, ou d'écrire un script pour vous.

Pour le Wiktionnaire, contactez User:Francis Tyers qui dispose de quelques scripts pré-mâchés pour récupérer l'information morphologique.

Davantage de sources de données linguistiques

Le Wiki l'Association for Computational Linguistics a une liste de ressources par langue qui contient souvent des liens utiles (souvent clairement indiqué comme ressources de logiciel libre ou propriétaire).

Manières de stocker des données

Voir aussi : Speling format (français)

It is easiest to start storing the words in a spreadsheet or database. Gnumeric, KSpread or OOCalc are examples of the former. Once complete, your data can be exported into a format (e.g. CSV, comma-separated values) where it can be used by other software to build the Apertium dictionaries. Databases such as PostgreSQL, MySQL and SQLite are even more attractive, provided you are familiar with them, since the data can be manipulated in various ways before exporting. Further information on the software mentioned here is [at this other page].

You will then have to decide which basic information you should store for each word. For many European languages, for instance, you might consider using the following information for nouns:

  • base form, or lemma (usually the singular)
  • English meaning (assuming English is the other language of the pair)
  • clarification (where any enhancement of the meaning is required)
  • plural form
  • gender (eg masculine, feminine, neuter)
  • number (eg singular, dual, plural)
  • part of speech (by definition, this will be "noun")
  • source (where you got the word).

Each base form should have a one-to-one relationship with its meaning in the target language. So, for instance, in Welsh, rather than have:

pres - money, brass

we would have:

pres - money
pres - brass

This is to allow easier manipulation of the data (for example, with this format it is easier to turn your Welsh-English wordlist into an English-Welsh one).

The meaning in your target language should be kept as short as possible - choose the single word that matches the greatest proportion of contextual uses of the source language word. Then use the "clarification" entry to expand on this basic meaning. For instance, in Welsh, we would have:

Cymraeg - Welsh (language)
Cymreig - Welsh (non-language)

where the former is used to talk only about the Welsh language, and the latter is used to refer to anything else (places, customs, etc). This approach will allow nuances of meaning to be captured when appropriate, without cluttering up the equivalence.

The "part of speech" entry will allow you to combine various wordlists whenever necessary without losing information about the contents - you will be able to separate them again. Typical parts of speech in European languages might be: noun, proper noun, adjective, verb, adverb, preposition, pronoun, conjunction, interjection, interrogative, demonstrative, numeral.

For example, a spreadsheet (which closely mirrors the Speling format) might look like:

lemma ; surface form ; part of speech ; symbols
beer  ; beer         ; noun           ; sg
beer  ; beers        ; noun           ; pl
red   ; red          ; adj            ; 
go    ; goes         ; verb           ; pres.p3.sg
go    ; go           ; verb           ; pres.p2.sg
go    ; go           ; verb           ; pres.p1.sg
go    ; went         ; verb           ; past

etc.

If you decide to note down idioms or longer phrases, you can give them some sort of POS tag such as "phrase", and let the grammarians argue over their exact structure later!

The "source" entry is not essential, but may be useful if anyone ever queries whether your data infringes someone else's copyright. By definition, your data store will eventually contain all the words contained in, for example, small dictionaries — although the words themselves are not copyright, the selection and arrangement of words in a dictionary is. By using a "source" entry, you will be able to demonstrate that your selection of words has been independently gathered.

Once you have your lists of words, you will have the contours of your language's landscape in place. However, to fill in the details, your data will also need to contain information on what forms these words take in context. For instance, in English the past tense of "see" is "saw". In Latvian, "sirds" (heart) is in the nominative case, but it has other forms such as "sirdij" (to a heart, dative) or "sirdis" (hearts, accusative). So, instead of noting the plural for your nouns, for instance, you may have decided to note instead some information which will allow you to predict these variants. In Latin, for instance, the accepted method is to note the nominative and genitive singular of any word, which will then allow you predict its other forms (eg "mensa, mensae" - table).

If you have not done this as yet, the next stage is to go over your linguistic data adding information of this sort (these "sets" of variants are called "paradigms" in Apertium, and are an important component in how it works). In some cases, you may need to extend your spreadsheet or database to allow new entries. For instance, for English and German verbs the standard notation is to note the third person singular forms of the present, past and perfect tenses in addition to the infinitive:

bringen, bringt, brachte, gebracht
bring, brings, brought, brought

so you might add additional columns for these. In the same way, additional columns could be added for noun cases, adjectival variants, and so on.

In many European languages, there is a rich set of conjugational variants for verbs. It may be possible to capture these fairly easily, as in French or Spanish, by making the verb ending (eg -er, -ar) the main determiner for the variants, and noting any consequent spelling changes:

hablar (to speak), hablo (I speak)

but

avergonzar (to shame), avergüenzo (I shame).

In other languages (eg Greek), the situation may be more complex, and not so amenable to simple categorisation. Nevertheless, it is important to try to abstract some rules for verb form generation - at the very least, this may offer the possibility of another useful language tool, a verbform generator (see, for instance, Verbiste (French), Compjugador (Spanish), Rhedadur (Welsh). Many other conjugators can be found on Verbix or by doing a simple Google search.

After this work, you should have a set of internally consistent data that captures a lot of the key information about the most common words in your language, and you are now ready to start importing that data into Apertium. That merits a separate page [ref].

Quelques notes finales

The first is that Apertium is a work in progress. It was originally developed for closely-related Romance languages, and is now expanding into a translation platform for a much wider range of languages. By definition, this means that future work will involve trying to accommodate linguistic constructs that are new to the system. For instance, the mutation system in Celtic languages has been handled by a small addition to the dictionary format. This is challenging and exciting, but by the same token you should not expect that the équipe Apertium will have an easy (or indeed any!) answer to a particular problem. Be prepared to collaborate on developing Apertium to deal with that problem.

The second is that your carefully-collected data is not just an input into Apertium. You can use it to produce an online dictionary for your language (see, for instance, Eurfa for Welsh), and it can also be converted easily into a print dictionary using something like LaTeX. The data can be used to build a spelling checker or a grammar checker using the tools available from the Gramadóir project.

Without language data, it is impossible to build language tools. So by putting together your datastore, you have already taken an enormous step towards making the riches of your language available to others.

Personal tools