Clôture du projet II — analyse du résultat

On se dit qu’on a vraiment raté notre coupe quand le mouvement des gilets jaunes s’est éclaté, parce que notre sujet au début, c’était le mot « jaune ». La raison pour laquelle on a abandonné ce sujet, c’est le défaut de ressource web. Du coup, on s’orientait vers « traduction automatique » afin de construire un corpus comparable à partir des sites d’internet en trois langues. On ne doute pas le résultat ne soit sans surprise, c’est-à-dire, le résultat final ne pourra pas nous révéler quelque chose de contraire à notre presupposition.  

Avant d’aborder le sujet final, nous allons voir un peu de statistique:

Français, 55 urls, 4 http code autres que 200,  et 6 « encodage irrécupérable », 10 « fréquence motif 0 »;

Anglais, 59 urls, 9 http code autres que 200, et 7 « encodage irrécupérable », 18 « fréquence motif 0 »;

Chinois, 59 urls, 3 http code autres que 200, et 20 « encodage irrécupérable », 21 « fréquence motif 0 »; 

La fréquence du motif est assez inattendu: il y a forcément une erreur. Soit, les sites que nous avons trouvés au début du cours ont été supprimés (c’est 2019 maintenant); soit, on peut contribuer au script de minigrep en perl, en particulier dans la rédaction de motif, c’est-à-dire, au lieu d’écrire ‘machine translation|traduction automatique|机器翻译’, le résultat sera différent si on écrit ainsi ‘machine|translation|traduction|automatique|机器|翻译’.

Ensuite, nous allons voir les cooccurrents des motifs.

Commençons par le français:

La fréquence de « traduction » (376) est plus que double de celle de « automatique » (131).

La cooccurrence de « traduction » et « automatique » est 131, donc, on peut dire que « traduction automatique » forme un mot, et les cooccurrents de « automatique » peuvent considérés faisant partie de « traduction automatique ».

Les cooccurrents du mot « T|traduction automatique» sont: neuronale(22), Systran(21), Google(15), outil(11), application(7), intelligence(7), Focus(5);

En anglais: 

La fréquence de « traduction » (613), la fréquence de « machine » (280).

Pareillement, les cooccurrents de « machine translation » sont: market(41), neural(47), technology(19), statistical(18).

En chinois:

La fréquence de « machine » est 1032, « traduction » 1331.

Les cooccurrents de « 机器翻译 » sont : 神经Neurone(181), système系统(113), 网络réseau(100), 学习apprentissage(99), 人工artificiel(168),统计statistique(66).

Pour que ce soit plus clair, nous avons fait un tableau avec les 4 cooccurrents les plus fréquents, et un ajout sur la fréquence de Google dans le corpus.

Langues Anglais Chinois Français
market(41) 神经Neurone(181) neuronale(22)
neural(47) 系统système(113) Systran(21)
technology(19) 网络réseau(110) Google(15)
statistical(18) 学习apprentissage(99) outil(11)
Fréquence de GOOGLE Google(42) 谷歌Google(68) Google(33)

 

En conclusion:

1, Quand on parle de la traduction automatique sur la presse, c’est souvent la traduction automatique aux réseaux neurones;

2, Google n’est pas forcément le coocurrents de traduction automatique, mais c’est aussi très fréquent dans le corpus. Et il est surprenant de constater Systran dans le corpus de français.

Amélioration sur le script:

L’idée de départ était de voir l’attitude de la presse envers la traduction automatique, sceptique, ou unanimement favorable. Il faut donc réfléchir sur la construction de méthode, en particulier la recherche de motif, pour mettre vraiment l’accent sur l’émotion, ou l’attitude de l’article.

Clôture du projet I — script final

Il est temps de clôturer le projet car c’est 2019 maintenant. Nous allons d’abord attaquer le script qui nous a pris un temps fou et une énergie incessamment perdue et reprise. 

Pourtant, au lieu de parcourir ligne par ligne le script (ce que nous avons déjà fait dans les journaux de travail, par segments), nous allons souligner les différences avec le script du cours, et quelques points faibles qui restent à améliorer.

1, fonction processingutf8

Nous constatons vite l’avantage de fonction, elle permet d’éviter de répéter à chaque fois les mêmes traitements, et donc, des erreurs éventuelles. Un autre avantage, c’est de rendre la logique du code plus clair, et le script plus lisible. Bien sûr, il est tout à fait faisable de créer un script à part qui ne contient que processingutf8, et écrire dans le script original « bash processingutf8.sh chemindufichier », ce qui pourra réduire significativement la longueur du script. (Nous ne l’avons pas fait, pour un script aussi court)

Capture d’écran 2019-01-15 à 17.12.34.png

2, multi-contrôle de l’encodage

Ce rapport, je l’ai rédigé à la sortie de l’examen de GIM. L’encodage nous a tracassé, le mauvais rendu nous a humilié. Surtout, il est surprenant de constater que l’unicode (utf-8) est loin de dominer totalement le web. 

Pour détecter l’encodage, au début, nous appliquons la commande egrep pour la page aspirée.

Capture d’écran 2019-01-17 à 00.26.23.png

a)Si l’encodage est utf-8: lynx et processingutf8. 

b)Si l’encodage est autre chose que utf-8, on soumet l’encodage à « iconv -l » pour voir s’il fait partie des encodages que l’on pourra transcoder.

Si oui, on le transcode par commande « iconv -f  $ENCODAGE -t utf-8 »; si non, on abandonne, on ne fait pas de traitement.

Capture d’écran 2019-01-17 à 01.08.12.png

c)Si l’encodage est vide, nous allons reprendre la détection de l’encodage, toujours par egrep et expression régulière. Et on recommence l’étape a) et b).

 Pour voir plusen détail la différence de ces deux méthode, cf journal IV.

Capture d’écran 2019-01-17 à 01.10.21.png

3, Les couleurs

Le dernier mais non le moindre: en même temps que le script s’exécute, nous voulons voir le fonctionnement du script dans le terminal, et pour plaire aux yeux, nous avons choisi de colorer les « echo » dans le terminal. 

Capture d’écran 2019-01-17 à 01.20.08.png

Le résultat:

Pour les urls français:

Capture d’écran 2019-01-17 à 23.54.34.png

Pour les urls anglais:

Capture d’écran 2019-01-17 à 23.54.50.png

Pour les urls chinois:

Capture d’écran 2019-01-17 à 23.55.08.png

Pour ce qui concerne l’analyse de corpus, nous allons l’aborder dans le prochain blog.

Merci de vouloir nous suivre…

Journal de travail V

Expression régulière en Bash et en Python

Je me souviens de la phrase de je ne sais plus quelle professeur du TAL: « une chose est certaine, vous n’allez jamais oublier l’expression régulière ». Bien, elle a dit vrai. Quatre cours sur dix parlent de l’expression régulière. Donc, je décide de consacrer un journal sur ce sujet, et par extension, une petite comparaison entre deux langages, python et bash.

Commençons par bash.

Petit rappel

Capture d’écran 2018-12-27 à 23.55.14.png

 

Et on va plonger direct dans les codes que l’on utilise pour chercher l’encodage:

I : encodage=$(sed -e « s/>/\n/g »< ./PAGES-ASPIREES/$compteurtableau-$compteur.html | egrep « meta.+charset » | egrep -o « charset *= *[^ \’>]+ » | cut -f2 -d »= »| egrep -o « (\w|-)+ »| uniq -i | tr « [a-z] » « [A-Z] » | tr -d « \n » | tr -d « \r ») ; #formater le filtrage en majuscule

1: sed -e « s/>/\n/g »< ./PAGES-ASPIREES/$compteurtableau-$compteur.html

Prendre les fichiers html dans le dossier de PAGES-ASPIREES, et changer les caractères « > » en « \n », ensuite passer le résultat à la commande suivante;

2: egrep « meta.+charset » 

Egrep « meta.+charset », veut dire trouver la ligne contenant une expression qui commence par « meta » et finit par « charset », entre deux, il y a au mois un caractère ( y compris l’espace, mais pas saut de ligne ). 

Résultat : <meta charset= »utf-8  »

3: egrep -o « charset *= *[^ \’>]+ »

Afficher l’expression qui commence par « charset », suivi d’un ou plusieurs espaces, « = », suivi d’un ou plusieurs espaces, « [^ \’>]+ » veut dire une expression qui n’a pas en tête « \ », « ’ », ni « > », et cette expression contient au mois un caractère.

Résultat: charset= »utf-8″

4: cut -f2 -d « = »

 -d « = » Delimiter l’expression par « = », et, -f2, on prend ce qui vient après  « = »

Resultat: « utf-8 »

5: egrep -o « (\w|-)+ »

Présence alphanumérique, ce qui équivaut à [a-zA-Z0-9], ou le trait

6: tr « [a-z] » « [A-Z] » | tr -d « \n » | tr -d « \r » 

Transformer l’expression en majuscule, effacer «\n » et « \r » s’il y en a.

II: egrep -i –color « $3 » ./SEGMENTATION/seg-$compteurtableau-$compteur.txt > ./CONTEXTES/$compteurtableau-$compteur.txt;

1: -i veut dire Ignores the case of letters when making comparisons.

2: – – color veut dire colorer le résultat 

Expression régulière en python

Petit rapel:

Capture d’écran 2018-12-28 à 00.03.17.png

Comment utiliser python pour réaliser egrep ?

Capture d’écran 2018-12-28 à 13.55.10.png

Et bien sûr, les commandes de bash, avec egrep, cut, sed etc, sont beaucoup plus puissants (pratiques, en fait) que python à traiter des expression régulière, car  » |  » permet de passer le résultat d’une étape à la suivante, tout comme une ligne de montage !

 

 

Journal IV

ENCODAGE TROUVÉ

Depuis que l’on est entré dans le monde de l’encodage, on se trouve dans le vrai marécage. Ainsi, nous avons l’idée de faire une comparaison entre des manières de détection encodage.

Nous avons choisi de travailler sur deux méthodes principales, « egre » et « file ».

 

comparaison_encodage

Résultat: 

Pour la première méthode, parmi 150 résultats, 13 sont vides, et 2 faux, par exemple, «utf-8 utf-8, %3csvg ». Et en ce qui concerne la deuxième méthode, quand la première méthode donne un résultat vide, la deuxième donne un résultat « utf-8 » ou « us-ascii ». 

Mais la deuxième méthode est en particulier incompétent à détecter l’encodage de site chinois, et donne souvent « iso-8859-1 » quand il s’agit plutôt « gb2312 ».

cas-site-chinois.png

Ainsi, la première méthode est pour nous une méthode plus sûre, et donc privilégiée.

code.png

Journal de travail III

Function avec Bash

16, novembre, 2018

Dans la séance du 14 novembre, Monsieur Fleury nous a montré le travail d’un groupe de collègues qui a eu l’idée d’introduire des fonctions, pour, d’abord réduire la longueur de code, et pour ensuite les réutiliser quand le besoin de présente.

Nous ne voyons pas de raison de ne pas ainsi faire. Donc, commençons tout de suite avec la syntaxe de fonction.

demoFun()
{
    echo "J'écris n'importe quoi !"
}

demoFun

Attention, dans Python, quand on a besoin d’utiliser une function, il faut typer le nom de la fonction suivi d’une parenthèse. Pour Bash, il suffit de mettre le nom de la fonction, suivi de variable s’il y en a dans la fonction.

Pour aller un petit peu plus loin, nous avons écrit un petit script qui fait l’addition pour deux chiffres donnés par l’utilisateur.

11542378322_.pic_hd.jpg

Et le déroulement de la fonction dans le terminal est ainsi:

51542379035_.pic_hd.jpg

On applique cela dans notre script.

Script ancien:

21542378550_.pic_hd.jpg

Script nouveau:

31542378840_.pic_hd.jpg

Bien sûr, nous n’avons rien fait de nouveau, car le script est toujours aussi long, même plus. Car il nous manque encore un outil qui nous permettra de stocker des fonctions ailleurs, et le cas échéance, dans un autre fichier.

Il nous reste encore un pas à franchir…

Mais ce qui est plus sûr, c’est peut-être d’écrire tout (les fonctions, les commandes)dans un fichier, et ensuite, faire un peu de ménage pour l’ESTHÉTIQUE ?

 

 

 

Journal de travail II

Révision de scripts

Créer un tableau avec HTML.

Dans le journal dernier, nous avons vu comment créer une page avec HTML et éventuellement décorer un peu le fond de la page. Cette mise à jour consiste à comprendre la création d’un tableau.

WechatIMG3.jpeg

Ici, c’est les balises nécessaires à créer une table.

WechatIMG4.jpeg

Ici, c’est le tableau que l’on veut créer.

Plusieurs remarques:

1, Il n’y a qu’un <tr></tr>, c’est à dire une ligne; mais plusieurs <td></td>, autrement dire, plusieurs colonnes;

2, Si on veut que dans la case s’affiche un élément direct, il suffit de mettre l’élément, ou le nom de variable, par exemple <td>$compteur</td>;

3, Si on veut créer un hyperlink, il faut faire appel à <a_______/a>. Au sein du premier « a » et « /a », on pourra mettre des infos sur le hybertext. Par exemple,  » target=_blank » veut dire que le hybertext sera ouvert dans une nouvelle fenêtre( à l’opposé, « target=_self » veut dire ouvrir dans la fenêtre actuelle). Ensuite, « href=  » suivi d’un URL, permet d’aller à la page, ou à l’adresse indiquée.

4, Question non résolue, <a target=\ »_blank\ »   href=\ »../PAGES-ASPIREES/$compteurtableau-$compteur.html\ »>page aspirée n° $compteur<  /a>.

Normalement, « href » est suivi d’un URL, pourquoi ici, après l’URL ../PAGES-ASPIREES/$compteurtableau-$compteur.html; on met >page aspirée n° $compteur<. 

Est-ce que cela implique deux actions ?

Nous voulions dans le journal précédent, enjoliver le tableau. Mais enfin, esthétiquement, il est préférable de laisser ainsi.

Nous avons fait des essais pourtant, par exemple, de colorer les deux premières colonne en jaune, ce qui donne le résultat suivant.

WechatIMG6.jpeg

 

 

 

 

 

 

 

Journal de travail

Explication du script 

Le 11, novembre, 2018

Pan Wenzhu, Cyril

Avec l’amas des scripts rédigés pendant les cours précédents, certains sont maintenant assez difficiles à saisir à première vue. Cet article se veut ainsi une révision de script ligne par ligne complémentée d’ajouts, et un outil de consultation.

Nous commençons pourtant d’abord avec le langage de HTML, car il est intégré dans les scripts du projet, et parfois les balises HTML sont très casse-têtes, surtout quand on a une longue ligne de script.

Donc, ce premier pas à reconstituer les éléments nécessaires de tableau.html, suivi d’un petit essai de enjoliver la page.

WechatIMG1.jpeg

WechatIMG2.jpeg

Nous avons coloré le fond de la page en LightGray, et ajouté un titre.

La prochaine mise à jour du journal sera portée sur l’enjolivement de tableau.

 

 

Présentation

 

Bienvenue sur notre blog mis en ligne par Cyril BRUNEAU et Wenzhu PAN.
Ce blog présente l’avancée de notre travail au sein du cours Programmation Projet Encadré du master PLURITAL (M1 2018).
Notre projet sera centré sur le concept de la Traduction Automatique : nous nous proposons d’étudier l’utilisation de ce mot sur le web, et de ses équivalents en anglais et en chinois.
Notre travail consiste à récupérer le contenu textuel d’un certain nombre de pages internet contenant ce mot,  dans les trois langues. Nous pourrons alors observer s’il existe des différences de traitement ou de point de vue sur cette question dans ces différents pays.
Mais avant d’essayer de faire parler nos corpus, nous devons relever un défi plus technique, qui consistera à programmer sous Unix l’outil qui va nous permettre de réunir et d’observer ces informations. Ce blog présentera les différentes étapes de notre travail vers cet objectif.
Nous utilisons  pour cela deux machines, MacOS et Ubuntu 16, ce qui nous permettra peut-être aussi d’observer des différences dans la programmation de nos outils.