Programmation pour le TAL
Objectif (à terme) de l'exercice de programmation Java sur les dépendances syntaxiques
L'objectif est d'extraire, pour un corpus donné, l'ensemble des "triplets syntaxiques" afin, par exemple,
de mener une analyse distributionnelle ou d'alimenter un système tel que word2vec
(fonctionnant avec des triplets syntaxiques et non des fenêtres de cooccurrents graphiques).
On souhaite pouvoir écrire la sortie dans un fichier, en donnant la possibilité d'avoir les deux formats suivants :
- Un format destiné à devenir une entrée de word2vec i.e. une ligne pour chaque relation trouvée dans le corpus
mot \t contexte
avec mot = POS1:lemme1 et contexte = POS2:lemme2_relation
- Un format qui donne pour chaque paire mot-contexte sa fréquence
frequence \t mot \t contexte
Ce format est destiné à alimenter soit un outil tel que SketchEngine (après calcul de mesures d'association)
soit à effectuer soi-même une analyse distributionnelle.
Par exemple, l'extrait «Le système évalue le module d'indexation puis il évalue le module d'interrogation»
produira dans le premier format :
Format 1
V:évaluer suj NC:système
V:évaluer obj NC:module
V:module prep_de NC:indexation
V:évaluer obj NC:module
V:module prep_de NC:interrogation
Le même extrait produira dans le deuxième format :
Format 2
1 V:évaluer suj NC:système
2 V:évaluer obj NC:module
1 V:module prep_de NC:indexation
1 V:module prep_de NC:interrogation
On va d'abord extraire (et afficher dans la console) les relations de dépendances données par Talismane.
Puis on va construire de nouvelles relations de dépendances (e.g. la coordination entre deux termes,
de nouvelles relations objet et sujet en fonction des coordonnés, etc.).
- Relation de coordination :
- <NC:lemmatiseur; coord; NC:tokeniseur>
- <V:ordonner; coord; V:classifier>
- <NC:paragraphe; coord; NC:phrase>
- <ADJ:robuste; coord; ADJ:efficace>
- Distribution des relations sur les coordonnés :
- le lemmatiseur et le tokeniseur fonctionnent → <V:fonctionner; suj; NC:lemmatiseur>, <V:fonctionner; suj; NC:tokeniseur>
- le programme ordonne et classifie → <V:ordonner; suj; NC:programme>, <V:classifier; suj; NC:programme>
- le programme indexe les paragraphes et les phrases → <V:indexer; obj; NC:paragraphe>, <V:indexer; obj; NC:phrase>
- le système robuste et efficace → <NC:système; mod; ADJ:robuste>, <NC:système; mod; ADJ:efficace>
[ Mention légale ]