Archive for novembre, 2011


Un peu de lecture…

Comme demandé en cours par le prof de programmation, j’ai recherché les descriptions des commandes Shell.Sera complété au fil de mes lectures.
Par Samantha

Bien que je n’ai pas réussi à installer Ubuntu sur mon ordinateur ( cf cet article), je ne chôme pas pour autant, bien au contraire, je passe mon temps à remplir ce blog. Comme je suis gentille je vais faire un article pour partager ce que j’ai pu retirer de mes lectures sur les commandes Shell. Warning : il y a sans doute des erreurs de compréhension de ma part donc ne prenez pas pour argent comptant ce que je vous dis.

  • Nom de la commande : man

              Description : Lire le manuel d’utilisation d’une commande.

  • Nom de la commande : ls

  Description : Lister les fichiers et documents présents dans un répertoire.

  • Nom de la commande : cd

              Description :

  • Nom de la commande : pwd
  • Nom de la commande : mkdir => créér un répertoire
  • Nom de la commande : echo => ajouter une ligne d’écriture
  • Nom de la commande : dos2unix => convertir un document Microsoft en un document Unix
  • Nom de la commande : date
Publicités
Comme promis résumé de lecture de l’article de 36 pages. Un peu long mais super intéressant.
– Par Samantha –

 Auteurs : Marcel Cori et Jacqueline Léon

p.21 à 55

RÉSUMÉ. Pour désigner le champ d’investigations et d’applications à l’intersection de la linguistique, des mathématiques, de l’informatique et des sciences cognitives hérité des expériences pionnières en traduction automatique, plusieurs termes sont ou ont été en concurrence, Computational Linguistics ou Natural Language Processing dans le domaine anglo-américain, Traitement automatique des langues, Informatique linguistique ou Linguistique informatique en France. Cet article se propose, en retraçant le parcours historique de ces dénominations, de montrer que le flottement sur les termes est symptomatique des tensions à l’oeuvre dans le domaine, sur le plan des enjeux institutionnels, économiques, théoriques et conceptuels.
 

 Le TAL désigne-t-il une discipline scientifique, une technologie ou une communauté de chercheurs et d’ingénieurs ?

Le TAL gravite autour de : la linguistique, l’informatique, les mathématiques et l’intelligence artificielle.

I- Constitution du TAL à travers les termes qui l’ont désigné: perspectives théoriques et pratiques mises en jeu.

  1. A- Chronologie des termes : Américains vs. Français :

Aux USA, Memorandum, Weaver (1949) intitulé Translation est publié dans un contexte favorable au dvpt de la traduction automatique mais c’est une impasse qui laissa place au Computational Linguistic puis au Natural Language Processing.

En France, les linguistes sont sceptiques face à la TA.C’est Traitement Automatique des Langues qui s’impose.

  • La traduction automatique aux USA :

Weaver utilise le terme Computer translation et Wiener de Mechanical translation pour désigner le problème de la traduction automatique.

Weaver pose déjà les jalons de la traduction automatique en tenant compte des aspects pratiques, en soulevant le problème des ambiguïtés et de la traduction littérales. Il pose un des principaux problèmes du TAL, la fiabilité des résultats, impossibilité d’une traduction parfaite.

**Mechanical translation =>machine à traduire** : production en série de traduction automatisée.<=>Machine translation of language.

Bar-Hillel => FAHQT (full automatic high quality translation) propose une traduction assisté par ordinateur ( cf. PAO en édition). Il préconise la construction de diverses grammaires universelles et leur évaluation. article A Quasi-Arithmetic Notation for Syntactic Description  (1953).

1950’s Période de traduction et traitement automatique à l’aide de calculatrice éléctronique => dictionnaires électronique, analyseurs syntaxiques,etc.

1948-1958 : apparition des méthodes fondamentales du TAL. Les adeptes du TA sont ingénieurs, mathématiciens, etc. Pas de structuralistes, ni Chomsky.

La TA est une réponse à : une demande sociale, technologiques et aux théories linguistiques en cours.

! Bar-Hillel en 1960 dans un rapport de l’ALPAC dit que la Machine Translation 100% machine sans assistance humaine n’est pas possible et inadmissible.Arrêt des subventions.C’est alors que Machine Translation devient Computational Linguistics.

**Computational Linguistics**  fév. 1961: d’après Bar-Hillel on peut construire une machine capable de déterminer la structure de toutes les phrases d’une langue source, à condition que la syntaxe de celle-ci soit présentée formellement. Yngve structure en arbres l’information grammaticale et syntaxique(modèle chomskien sans les transformations).

1962 : Création de d’Association for Machine Translation and Computational Linguistics (AMTCL) qui deviendra Association for Computational Linguistics en 1973. Premier colloque en 1965 à N-Y.

Nouvelle discipline très subventionnée car « The tools of computational linguistics are considerably less costly than the multibillion-volt accelerators of particle physics. »

CL inclut toutes les applications de l’ordinateur à des fins de traitement de langues naturelles ou artificielles. (recherche pragmatique + recherche fondamentale). Tentative d’éviter les dérives de MT.

D’autres travaux associant langages formels et informatique ont le vent en poupe et se regroupent sous le terme Automatic (association) plus abstrait que Mechanical avec une prédominance de l’analyse syntaxique automatique comme seule méthode de TA.(années 1970)

**Natural Language Processing **: ce terme s’installe dans les années 1980,après la rencontre entre le langage et l’intelligence artificielle. Bien que dans les années 1990 Computational Linguistics reste la discipline de référence  le terme NLP s’impose.

=> NLP = réponse à une demande sociale, robustesse, rapidité, fiabilité et coût.Désormais CL est orienté recherche fondamentale et NLP application industrielle. CL subit le contraire de ce qui est arrivé à Mechanical Translation, pas assez pragmatique.

Conclusion : Aux USA, c’est la TA qui a donné naissance à ce qu’on appelle en France le Traitement Automatique des Langues.

  • Le TAL en France :

Aux USA c’est la TA qui a prédominé, en France, c’est la mécanisation du vocabulaire qui est à l’origine de la naissance du TAL.

Contexte : Essor lexicologie avec  Inventaire général de la langue française, 1936, Mario Roques, dans les année 1950 mécanisation.

Pour la TA en France création de l’association ATALA en 1959(ils ont un site internet mais ça marche pas). TA => 10 de retard par rapport aux USA.

Le terme TAL ne fait consensus que depuis les années 1990.

Les français n’aiment pas le terme américain Machine Translation, pourtant publication de »La machine à traduire » Delavenay et « La machine à traduire, histoire des problèmes linguistiques »Mounin 1964. Au CNRS les mathématiciens préfèrent « automatique ».

Donc Machine à traduire devient Traduction automatique. difficulté à établir un formalisme pour la TA. En français, Computational est remplacé par le terme « calcul« .

=> Difficulté à trouver une terminologie = difficulté à cerner la discipline. De plus, la TA commence en France alors qu’elle décline aux USA au profit de l’analyse syntaxique automatique qui n’est pas encore adoptée en France est qui, pourtant, se présnete comme melleur méthode pour la TA. Peu de linguistes acteurs de la TA.

1959 : Création du Centre de Linguistique Quantitative : haut lieu de découverte des langages formels.(formalisme, statistique et linguistique).

Computational Linguistics correspond à Grammaire Formelle.

**Linguistique appliquée **: terme consensuel.= enseignement des langues, applications de l’ordinateur au traitement des langues et TA.Ne constitue pas une discipline car terme général, ne faisant référence à aucune méthode en particulier.

Vauquois en 1967 veut une meilleur définition du TAL pour se démarquer de la statistique.(et du centre de linguistique quantitative). Il préconise la constitution d’équipes mixtes.

** Informatique Linguistique**1972 : nouveau terme mais qui crée encore plus de confusion. En 1983 le CNRS crée « les Sciences du Langage ». Tentative de donner des perspectives théoriques à « informatique linguistique » dans les années 1980.=> naissance de la notion d’arbre.

1985 : Premier cursus en linguistique informatique à l’Université Paris 7.

Officialisation du TAL : la revue d’ATALA change de nom pour TAL (1992). Une licence Sciences du langage mention TAL est créée en 1993 et une maîtrise « industrie de la langue ».

 Ctxt : Développement des technologies, de la micro-informatique.

Le TAL a bcp de difficultés à se constituer en discipline=> tensions entre les disciplines qui ont contribué à sa fondation.

Par Samantha

Phase 1 du projet : faire un tableau html avec les url collectés de manière semi-automatique grâce  à un script :

Voici le script que j’ai récupéré sur le site plurital et que j’ai modifié pour qu’il soit adapté à mon environnement de travail.

Maintenant j’essaie de l’exécuter sur le terminal pour voir s’il n’y a pas d’erreurs et si la boucle se met en marche.

Résultats :

Apparemment tout allait bien jusqu’à ce qu’apparaisse cette ligne

« cat: url-biocarburant-francais.txt : Aucun fichier de ce type »

Je ne comprends ce qui se passe car le fichier url existe bien et il est enregistré dans le répertoire URLS. J’ai pris la précaution de l’enregistrer avec gedit.

Que faire ?

génial! Merci pour l’aide

Résultat :

La suite avec les url en khmer.

Comme je n’ai pas encore réfléchi à Comment faire en sorte que les deux fichiers d’url soit traités d’un seul coup, je vais juste faire la même chose une deuxième fois pour le deuxième fichier.

C’est parti, on lance le script…

Résultat, zut j’ai oublié que je n’ai pas ubuntu. C’est Maknie qui le fera ou alors je le ferai avant mercredi prochain.

Cours du 2 novembre (suite)

Par Samantha -prise de notes en live

Première étape : script mot

cf : cours en ligne http://www.tal.univ-paris3.fr/cours/PROJETMOTSURLEWEB

Ecrire une programme pour récuperer les urls les mettre dans un tableau avec une numérotation.

Pour ce faire, on image que notre fichier d’url est un ensemble : pour chaque url x appartenant  au fichier d’url je veux qu’il apparaissent dans une ligne du tableau.

for x in X {

Il faut trouver un moyen pour pouvoir considérer notre fichier url comme un ensemble, pour pouvoir considère chaque élément de l’ensemble.

Astuce : Lorsqu’on fait un cat d’un fichier, le terminal affiche la liste des ligne du fichier. Il affichera la liste des url du fichier. Utiliser un cat du fichier permettra d’afficher à l’écran l’ensemble des url du fichier. Le retoure à la ligne va être le segmenteur et on pouvoir obtenir virtuellement un ensemble d’urls.

Pour la constitution de l’ensemble des urls on va récupérer le résultat d’une commande à la fenetre de commande. comme ensemble résultat de la boucle for on récupère le résultat de cat en utilisant « l’inverted quote’

for (x) in ‘cat $fic’

Read fic : le bash attend qu’on lui donne qqchse au clavier pour l’introduire dans la variable fic. Lorsqu’on veut invoquer la valeur du contenu de la variable, il faut le $.

si on écrit x= »url.txt »

echo $x on a url.txt

Si on veut afficher le contenu de la variable il faut utiliser le $

x= »serge »

echo « bonjour $x »

résultat : Bonjour serge

la variable garde la même valeur tant qu’on a pas changer son contenu par une affectation. Dès qu’on change son contenu la variable change.

Autre façon de faire des affectations :

read : affectation d’un valeur à une variable ( juste le nom pas le contenu)

fic : bien qu’il contienne le nom du fichier avec le chemin relatif, cela ne veut pas dire qu’il contient les chaine de caractères du fichier lui même. On donne à fic juste une valeur qui est une chaine de caractères.

read fic si on rentre url.txt si on fait echo $ fic ( permet d’accéder à la valeur de la variable)on nous donne url.txt

cat $fic : affiche le contenu du fichier fic qui est la variable. On va donc obtenir tout le conteu du fichier url.txt

les quotes inversés :`  `

on dit au shell d’exécuter la commande et de ramenr le résultat dans le ctxt de l’autre commande que l’on fait. signification : exécuter la commande et afficher son contenu.

CF. Doc : Premiers Scripts tableau de lien

Une boucle for pour indiquer à la machine d’aller elle même à chaque ligne d’url.

for nom in `cat $fic`

résultat : http://www.html

http://…&#8230;

{

echo « <tr><td> $nom</tr></td>

}

for fait une affectation à nom

après les accolades la boucle for ferme les balises. sur Ubuntu les accolades sont remplacée par do et done

Créer un script capable de prendre en entrée tous les fichiers urls, à lancer une seule fois

Par Samantha – prise de note en live

La balise <meta>;

très importante à renseigner. Lorsqu’on écrit la page, il faut enregistrer le document écrit sous notepade++ il faut l’enregistrer en UTF-8 et préciser dans la balise meta « content » UTF-8.

Lorsqu’on écrit une page dans quel encodage est-on ?

Utiliser la commande FILE

file(espace) -i nom du fichier : cette commande nous donne en quel charset on a écrit.

Toujours se demander dans quel encodage on écrit et comment le repérer.

Il y a une commande qui permet de convertir un encodage dans un autre : iconv

Ce n’est pas parce qu’on dit UTF-8 dans la balise méta que l’on est dans un encodage UTF-8

TOUT CE QUI DEVRA ETRE GENERE DEVRA ETRE CODE EN UTF-8 !

Commande Unix qui permet de savoir dans quel encodage on est  et aussi la localisation: locale

Schéma représentant la chaîne de traitement :

EXPLICATION :

extraction des URL : si la page est en UTF-8 on pourra extraire la page en utilisant la commande lynx.

si la page de l’url n’est pas codée en UTF-8 : il faudra trouver dans quel code est faite la page, la changer en UTF-8.

Bloucle : for > pour chaque éléments du tableau passage par l’encodage et traitement.

Un traitement supplémentaire pour compter les mots de la page de chaque url.

Le traitement doit être capable de construire des tableaux de tel sorte que pour chaque url le lien pointe vers la page, et montre quelle est son encodage.

par Samantha

Considérons l’exercice précédent comme fait et le script exécuté. On a donc un environnement de travail avec un répertoire PROJET MOT SUR LE WEB et les répertoires PROGRAMMES, DUMP-TEXT et  TABLEAUX entre autres.

Exercices suivants :

A. Ecrire un script (dans le dossier PROGRAMMES) permettant de générer dans le répertoire DUMP‐TEXT un fichier txt contenant 2 lignes (sur la première, votre nom, sur la seconde, le mot choisi pour votre projet)
B. Ecrire un script (dans le dossier PROGRAMMES) permettant de générer dans le répertoire TABLEAUX un fichier html contenant 1 tableaux avec 2 lignes (sur la première, votre nom, sur la seconde, le mot choisi pour votre projet)

Commençons par l’exercice A :

Les scripts que l’on va écrire devront être enregistrés dans le répertoire PROGRAMMES

#!/bin/bash
# ce script permet de créer un fichier texte que l’on va appeler nom-mot dans le répertoire DUMP-TEXT
# le script sera enregistré dans le répertoire PROJET-MOT-SUR-LE-WEB/PROGRAMMES
# Il nous permettra donc de générer un fichier texte dans DUMP-TEXT qui aura pour contenu mon nom sur la première ligne et le mot choisi sur la deuxième ligne
echo « Samantha JEAN-BAPTISTE Maknie PEN » > ./DUMP-TEXT/nom-mot.txt;
# j’ai créé un fichier nom-mot.txt qui sera situé dans le répertoire DUMP-TEXT et qui comportera nos noms
echo « Notre mot pour le projet est : biocarburant »>>./DUMP-TEXT/nom-mot.txt;
# les chevrons doubles >> permettent de concaténer la deuxième ligne de texte sans écraser celle qui existe.
#fin de l’exercice A, pour lancer le script je fais sh ./PROGRAMMES/exercice-nom-mot.sh

Résultat de l’exécution du script : j’obtiens dans le répertoire DUMP-TEXT un doc .txt qui contient nos noms et mot choisi :

Exercice B :

P.S. : en toute honnêteté, je me suis aidé du corrigé du site plurital.

#!/bin/bash
# j’écris le script de l’exercice B. Il sera enregistré dans PROGRAMMES
#et permettra la création d’un tableau d’un fichier html dans le répertoire TABLEAUX
# je commence par me placer dans TABLEAUX, ne pas oublier le ; à la fin de chaque ligne de script
cd ~/PROJET-MOT-SUR-LE-WEB/TABLEAUX;
# puis je créer un fichier .html intitulé tableau1.html
echo « <html> »> tableau1.html;
#création du head et son contenu
echo « <meta charset=\ »UTF-8\ »><head><title>Samantha et Maknie</title></head> »>> tableau1.html;
#création du body et de son contenu qui sera concaténé avec le head
echo « <body><table align=\ »center\ » width=\ »200\ » cellspacing=\ »2\ » border=\ »3\ »> » >> tableau1.html;
#création du tableau, des cellules et du contenu
echo « <tr><td>Samantha JEAN-BAPTISTE</td><td>Maknie PEN</td></tr><tr><td colspan=\ »2\ »> Nous avons choisi le mot : Biocarburant </td></tr> »>> tableau1.html;
#on ferme le tout et normalement c’est bon.
echo « </table></body></html> » >> tableau1.html;
# pour lancer le script je fais sh ./PROGRAMMES/creation-tableau.sh

Résultat de l’exécution du script dans le terminal : on obtient dans le répertoire tableaux le tableau suivant.

Les dimensions du tableau sont peut-être à revoir mais on va dire que l’exercice est concluant.

Ci-dessous le script (corrigé) qui nous a permis de créer un répertoire de travail intitulé « Projet mot sur le web ».

Le script est écrit en bash. Cette étape préalable est nécessaire pour pouvoir disposer d’un environnement de travail, créer nos dossiers en écrivant des scripts qui seront exécutés sur le terminal et pour pouvoir y insérer toutes sortes de fichiers (par exemple la liste d’url). C’est un mal nécessaire. Si je mets en ligne le corrigé c’est tout simplement parce que à ce stade, nous n’avions pas encore bien compris ce qui était demandé.

à partir de là on peut faire les exercices suivants…