Actions

Projets

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

  1. 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

  1. 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

  1. 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

  1. Si le mot comoposé est un nom, just la tête se decline;

Exemple :
das Bügelbrett → die Bügelbretter

  1. 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
Indiquer les mots composés.jpg
Indiquer les mots composés2.jpg

Fonction d'ajout de nouveaux mots
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)

496 x 423px

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

CoreNLP
Java

  • Lien du projet

Projet