Bien que l'aspiration des pages japonaises se soit déroulée sans l'ombre d'un problème d'encodage, dès lors que l'on s'attèle au traitement textuel, on se retrouve face à un obstacle non négligeable: l'absence d'espaces entre les mots.
Fort heureusement, nous ne sommes pas les seuls linguistes à passer par là, et les sentiers sont battus depuis quelques années déjà!
La solution réside dans l'emploi d'un analyseur-étiqueteur morphosyntaxique. Il en existe plusieurs, et après de chaotiques pérégrinations internautiques entre liens morts et problèmes de téléchargements, nous avons trouvé notre perle rare: Kytea!
...
Eh non, problème d'installation avec le makefile.
Nous nous tournons donc vers MeCab!
...
Même problème.
Le choix s'offre à nous: passer le restant de nos jours à triturer les rouages d'un Unix émulé sous Windows pour trouver l'éventuel fichier manquant, ou passer par une autre méthode.
Le flemmard a toujours raison, surtout quand la solution lui est servie sur un plateau d'argent: Janome, module python développé précisément pour ce genre de travail, possède même un tutoriel écrit par un de nos prédécesseurs en TAL.
C'est ainsi que CinqLégendes M1 qui traitent le japonais dans leurs projets se sont réunis autour d'une table, 5 ordinateurs et 3 systèmes d'exploitation, pour comprendre comment fonctionne l’OEil du Serpent (Ja-no-Me).
Comme précisé ci-dessus, cet étiqueteur fonctionne en python. Il est d'une simplicité déconcertante, mais avant de pouvoir en faire l'expérience par nous-mêmes, il a fallu installer le module en question pour python.
Etape 0: vérifier que python est bien installé
Etape 1: lancer python
Etape 2: utiliser pip pour installer Janome: "python -m pip install janome"
Etape 3: pip n'est pas installé... installer pip: "sudo apt-get install python3-pip"
Etape 4: recommencer et installer janome "python -m pip install janome"
Etape 5: pip n'est toujours pas installé???
Etape 6: remettre sa vie en question (d'autant que sur Linux et Mac, tout marche bien!)
Etape 7: se rendre compte que "python" fait appel à python 2.7 et qu'il faut toujours spécifier "python3" pour utiliser ce dernier
Etape 8: installer janome pour python3: "python3 -m pip install janome"
Etape 9: lancer python 3 et vérifier que janome en est désormais bien un module
Etape 10: se féliciter et écrire enfin son programme!
Maintenant que ça marche, on peut élaborer un programme python qui fait le travail d'étiquetage et, surtout, de segmentation, pour que egrep, minigrep et consors puissent faire leur travail.
On modifie légèrement le programme précédent pour:
1) lui permettre de traiter un texte directement
2) lui permettre de récupérer des arguments mis dans la commande qui l'appellera, spécifiant les chemins d'entrée et de sortie des fichiers traités.
On obtient:
Dans la même logique, on a ajouté l'obligation de définir deux motifs en argument de la commande bash. Le premier sera, ici, pour l'italien, et le second pour le japonais. Par conséquent, on aura, pour egrep, 2 motifs différents à utiliser selon l'itération de la boucle principale, et de même deux fichiers contenant le motif à utiliser dans minigrep.
D'où la portion de code suivante:
Et sa répercussion dans minigrep:
On note au passage la possibilité de définir plusieurs motifs pour chaque ensemble d'URLs grâce à la reconnaissance d'expressions régulières par minigrep; par exemple, en japonais, on recherchera geek, nerd et otaku, donc le motif \bギーク|ナード|オタク\b .
Après toutes ces péripéties, le programme fonctionne à merveille, reconnaissant les motifs demandés selon la langue.
Une nouvelle victoire pour l'Equipedes Héros du Projet "Geek"!
Fort heureusement, nous ne sommes pas les seuls linguistes à passer par là, et les sentiers sont battus depuis quelques années déjà!
La solution réside dans l'emploi d'un analyseur-étiqueteur morphosyntaxique. Il en existe plusieurs, et après de chaotiques pérégrinations internautiques entre liens morts et problèmes de téléchargements, nous avons trouvé notre perle rare: Kytea!
...
Eh non, problème d'installation avec le makefile.
Nous nous tournons donc vers MeCab!
...
Même problème.
Le choix s'offre à nous: passer le restant de nos jours à triturer les rouages d'un Unix émulé sous Windows pour trouver l'éventuel fichier manquant, ou passer par une autre méthode.
Le flemmard a toujours raison, surtout quand la solution lui est servie sur un plateau d'argent: Janome, module python développé précisément pour ce genre de travail, possède même un tutoriel écrit par un de nos prédécesseurs en TAL.
C'est ainsi que Cinq
Comme précisé ci-dessus, cet étiqueteur fonctionne en python. Il est d'une simplicité déconcertante, mais avant de pouvoir en faire l'expérience par nous-mêmes, il a fallu installer le module en question pour python.
Etape 0: vérifier que python est bien installé
Etape 1: lancer python
Etape 2: utiliser pip pour installer Janome: "python -m pip install janome"
Etape 3: pip n'est pas installé... installer pip: "sudo apt-get install python3-pip"
Etape 4: recommencer et installer janome "python -m pip install janome"
Etape 5: pip n'est toujours pas installé???
Etape 6: remettre sa vie en question (d'autant que sur Linux et Mac, tout marche bien!)
Etape 7: se rendre compte que "python" fait appel à python 2.7 et qu'il faut toujours spécifier "python3" pour utiliser ce dernier
Etape 8: installer janome pour python3: "python3 -m pip install janome"
Etape 9: lancer python 3 et vérifier que janome en est désormais bien un module
Etape 10: se féliciter et écrire enfin son programme!
Maintenant que ça marche, on peut élaborer un programme python qui fait le travail d'étiquetage et, surtout, de segmentation, pour que egrep, minigrep et consors puissent faire leur travail.
On modifie légèrement le programme précédent pour:
1) lui permettre de traiter un texte directement
2) lui permettre de récupérer des arguments mis dans la commande qui l'appellera, spécifiant les chemins d'entrée et de sortie des fichiers traités.
On obtient:
Il faut maintenant l'appeler au sein de notre script bash. Il ne faut cependant le faire que lorsque la liste d'URLs traitée concerne le japonais.
Dans ce cas en particulier, en conséquence de la répartition des tâches décidée en début de semestre, seuls l'italien et je japonais sont traités. Le fichier d'URLs japonaises étant le second à être parcouru par le script, on définit comme condition d'utilisation du présent script python que numerotableau soit égal à 2:D'où la portion de code suivante:
Et sa répercussion dans minigrep:
On note au passage la possibilité de définir plusieurs motifs pour chaque ensemble d'URLs grâce à la reconnaissance d'expressions régulières par minigrep; par exemple, en japonais, on recherchera geek, nerd et otaku, donc le motif \bギーク|ナード|オタク\b .
Après toutes ces péripéties, le programme fonctionne à merveille, reconnaissant les motifs demandés selon la langue.
Une nouvelle victoire pour l'Equipe
Commentaires
Enregistrer un commentaire