Mots composés en allemand
De GBLL, TAL, ALAO, etc.
Projet réalisé par Cynthia Rakotoarisoa et Simona Rata
Lien vers le projet : https://gricad-gitlab.univ-grenoble-alpes.fr/rakotocy/komposita
< M2 IdL — TAL & ALAO/2020-2021
Est-ce que tu as vu cet article ? Il décrit en détail le fonctionnement des mots composés en allemand et comment les découper automatiquement. (Sylvain)
Contexte
L'allemand est une langue qui "aime" les mots composés. En effet, il est très fréquent de créer de nouveaux mots qui peuvent être composés d'adjectifs, de noms, d'adverbes, etc et cela sans limite de mots. Cette pratique enrichit le vocabulaire et donne beaucoup de richesse à la langue. Cependant on peut se retrouver avec des mots à rallonge difficiles à déchiffrer et qui peuvent freiner les apprenants.
Problématique de l'apprenant
La principale difficulté pour l'apprenant ici est la lecture des mots composés. Ces mots sont construits sans caractère visuel de séparation entre les mots qui les composent (pas d'espace, tirets d'union très rares). Une visualisation plus claire des mots peut aider l'apprenant à comprendre et également à prononcer les mots composés.
Exemple :
der Computerlinguistik est composé de 2 mots : Computer nom, Linguistik nom.
Comment sont créés ces mots ?
Règles générales
- La composition permet de proposer un mot nouveau par juxtaposition de mots existant déjà dans le lexique;
Exemple :
das Tageslicht nom = the daylight nom
→ Tag nom + Licht nom = day nom + light nom
- De la même manière que l'anglais, on va placer la tête du mot en dernière position.Le dernière mot determine la catégorie grammaticale du mot comoposé;
Exemple:
luftleer adj = airless adj
→ Luft nom + leer adj = air nom + less adj
- Les mots précédents serviront à décrire la tête;
Donaudampfschiffahrtselektrizitätenhauptbetriebswerkbauunterbeamtengesellschaft= Donau + dampf + schiffahrts + elektrizitäten + haupt + betriebswerk +bau +unter + beamten + gesellschaft =l'association des fonctionnaires subalternes de la direction du siège social des services électriques des bateaux à vapeur du Danube
- Si le mot comoposé est un nom, just la tête se decline;
Exemple :
das Bügelbrett → die Bügelbretter
- Toutes les numéraux sont soudé.
Exemple :
Siebentausendzweihundertvierundfünfzig(7254)= Sieben + tausend +zwei +hundert + vier + und+ fünfzig
Mot compose | Exemple | Commentaire |
---|---|---|
Nom + Nom | das Kinderbuch | die Kinder + das Buch |
Adjectif + Nom | das Hochhaus | hoch + das Haus: |
Nom + Adjectif | luftleer | die Luft+ leer |
Verb + Nom | das Schlafzimmer | schlafen + das Zimmer |
Préposition + verb | überreden | über + reden |
Préposition + Nom | die Zwischenzeit | zwischen + die Zeit |
Adjectif + Adjectif | hellblau | hell + blau |
Insertion de lettres
Lorsque l'on associe des mots en allemand, il sera parfois nécessaire d'insérer une ou plusieurs lettres (généralement -e-, -er-, -n- ou -s-) entre les mots. Notamment dans les cas suivants :
- Mot en première position au pluriel
En principe on décline seulement la tête du mot, mais dans certains cas on peut accorder les mots qui la précèdent au pluriel.
Exemples :
der Kindergarten (le jardin d'enfants) : das Kind nom sg → die Kinder nom pl
der Birnenbaum (le poirier) : die Birne nom sg (la poire) → die Birnen nom pl
- Génitif
Lorsque le mot est composé d'un génitif, on garde le -s qui marque le cas (comme le -'s en anglais).
Exemple :
Das Säuglingsgeschrei (the new born 's cry) : der Säugling masc AKK (le nourrisson) → des Säuglings masc GEN
- Prononciation
Il est très fréquent d'ajouter des lettres entre les mots pour faciliter la prononciation.
Exemples :
das Lesebuch (livre de lecture) : lesen verbe → les (radical)
arbeitsscheu adj (peur du travail difficile)
Le projet
But du module
A partir d'un énoncé, repérer les mots composés et indiquer les mots qui les composent + leur part of speech.
Exemple :
Entrée : Ein Brief auf der Schreibmaschine schreiben
Sortie : Ein det Brief nom auf prep der det Schreibmaschine nom (schreiben verbe + Maschine nom) schreiben verbe.
Il sera également possible pour l'utilisateur d'ajouter de nouveaux mots dans le dictionnaire.
Ressources et fonctionnement
Ressources
- The German Compound Database - GECO DB
Dictionnaire de mots composés structuré en 2 colonnes séparées par une tabulation. Dans la première colonne, on y trouve la construction du mot composé et dans la seconde, la fréquence à laquelle le token (ainsi que toutes ses formes fléchies) apparaît dans le corpus DECOW16A/B. Le dictionnaire est donc formé de cette façon :
Kopf_Tuch Kind_+er_Wagen Grund_Voraussetzung Premier_Minister Bau_Abschnitt Unfall_Versicherung geheim_Tipp Weihnacht_+s_Baum Volk_+s_Bank etc. |
37703 37698 37644 37632 37556 37437 37435 37404 37332 |
- CoreNLP
« CoreNLP permet aux utilisateurs de dériver des annotations linguistiques pour le texte, y compris les limites des tokens et des phrases, les parties du discours, les entités nommées, les valeurs numériques et temporelles, les analyses des dépendances et des circonscriptions, les coreférences, les sentiments, les attributions de citations et les relations.»
Dans ce projet, nous allons utiliser CoreNLP pour la tâche de postagging sur l'énoncé entré par l'utilisateur.
- jWordSplitter
Splitter de mots composés allemands simple qui fonctionne avec un dictionnaire allemand. Il peut fonctionner avec toutes les autres langues tant que le dictionnaire de cette langue est fourni. L'algorithme est simple, il découpe une chaine de caractères en vérifiant si une sous chaine est un mot (c'est-à-dire si cette sous chaine apparaît dans le dictionnaire). Si c'est bien un mot alors on répète ce processus jusqu'au dernier caractère.
Le dictionnaire ne contient cependant pas de formes fléchies (pluriel, génitif, etc). De plus les mots composés contiennent certains composants qui ne sont pas vraiment des mots ("Miet", "Wohn") donc pas présents dans le dictionnaire.
L'algorithme est capable de détecter le Fugen 's' qui sépare les mots associés.
Fonctionnement
- Chaînes de traitement
Indiquer les mots composés
Fonction d'ajout de nouveaux mots
- Etapes
- →Traitement du lexique
Dans cette première phase, on va parcourir le fichier ligne par ligne. A chaque ligne traitée, le mot sera stocké dans un tableau associatif avec comme clé le mot composé et comme valeur les lemmes qui le composent. (avec une base de règles)
Exemple:
{"Schuljahr" : "Schule Jahr"}
{"Landesregierung" : "Land Regierung"}
{"Tischdecke" : "Tish Decke"}
etc.
- →Repérer les mots composés
Ici, l'utilisateur va entrer une phrase (ou un mot), le système va traiter chaque mot de l'énoncé en utilisant le tableau de mots composés ci-dessus. L'application devra indiquer s'il y a des mots composés et les afficher en sortie.
Exemple:
Entrée : "Du bist auf der Suche nach einem Geburtstagsgeschenk?"
Sortie : "Du bist auf der Suche nach einem Geburtstagsgeschenk? (die Geburt + der Tag + das Geschenk)."
- →Indiquer le POS de chaque élément (on va utiliser CoreNLP)
Ici on va prendre la sortie de l'étape précédente pour indiquer la catégorie syntaxique de chaque mots de l'énoncé.
Exemple:
Das det ist ver meine det Ferienwonung nom (Ferien nom + Wohnung nom).
- →Fonction ajouter des mots dans le lexique
L'utilisateur peut entrer le mot composé qu'il souhaite en le tapant tout simplement. Le système va découper le mot (avec le jwordsplitter) et il sera ajouté dans un lexique personnalisé que l'utilisateur pourra consulter.
Exemple:
Entrée : Arbeitsmarkt
Sortie ddans le lexique personnalisé :
Arbeitsmarkt | Arbeit Markt |
Etat d'avancement
Etape | Etat | Commentaire |
---|---|---|
Traitement du lexique : recomposer les mots du lexique | OK | - |
Repérer les mots composés et afficher les mots qui les composent | ??? | - |
Indiquer POS de chaque élément (CoreNLP) | OK | installé |
Fonction pour pouvoir ajout de nouveaux mots dans le dictionnaire | OK | Pas dans le traitemnt |
Prise de recul
Prolongements possibles
- Au niveau du système
- Fonction d'ajout : extension du dictionnaire du splitter aux composants qui ne sont pas des mots.
- Ajouter le lexique personnalisé au traitement.
- Au niveau apprentissage
- Faire pratiquer l'apprenant : l'utilisateur crée un mot composé et le système vérifie si la structure est correcte ainsi que la cohérence des mots assemblés.
- Inverser les rôles : l'utilisateur doit lui-même indiquer les mots composés et essayer de le décomposer lui-même.
Evaluation possible
- Tester l'application
Phrases sugeres:
Geschwindigkeitsbegrenzungen entstanden nicht erst nach der Erfindung des Automobils
Kaufen Sie Windschutzscheibenwischer online zu ermäßigten Preisen!
- La sortie
Il sépare les mots dune phrase, en reconnaissant également les mots compose. Toutefois, il est incapable de différencier entre les verbs avec la particule separable. (einkommen)
Distance entre objectif et réalisation
On a eu quelques problèmes avec la construction de l'application, parce que la sortie finale n'est pas exactement comme nous l'avons prévu. Toutefois, elle touche une grande majorité de nos objectifs.
Bibliographie
- Articles
Automated code splitting and pre-fetching for improving responsiveness of browser-based applications
Corina Dima. 2015. Reverse-engineering language: A study on the semantic compositionality of german compounds.
Language-independent Compound Splitting with Morphological Operations
Simple Compound Splitting for German
- Outils
- Lien du projet