Générateur de texte. Samuel Moix. Lycée-Collège de la Planta. Sion (VS) Mark Zeman. Fachhochschule Nordwestschweiz. Brugg-Windisch (AG)

Documents pareils
Devenez un véritable développeur web en 3 mois!

Sommaire : Pourquoi créer un site web? Qu est-ce qu un site Web? Les différents types de sites. Quelles solutions peuvent être employées?

Informatique & Systèmes de Communication. Stages de 12 à 16 semaines aux Etats-Unis

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

CERTIFICAT INFORMATIQUE ET INTERNET NIVEAU 1

Programmation Web TP1 - HTML

Toute personne souhaitant maîtriser les techniques liées à la conception de produits multimédia et à la création de sites Web.

Formation Webmaster : Création de site Web Initiation + Approfondissement

Packs Graphiques. Comparez nos offres! Chrome Silver Gold Platinum Appel non surtaxé. Comment choisir votre pack? Design.

Les outils de création de sites web

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

SOUTENANCE ORALE RAPPORT DE PROJET D INFORMATIQUE

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Guide de réalisation d une campagne marketing

N Cour Exam Thème Durée New Installing and Configuring Windows Server J New Administering Windows Server J

Description des pratiques à adopter pour la mise à jour du layout en utilisant le gestionnaire de conception de Sharepoint 2013

Questionnaire préalable Site Internet

ANGULAR JS AVEC GDE GOOGLE

HTML. Notions générales

Autour du web. Une introduction technique Première partie : HTML. Georges-André SILBER Centre de recherche en informatique MINES ParisTech

PROGRAMME DE LA 1ERE JOURNEE DE FORMATION : QUALITE WEB ET REFERENCEMENT NATUREL

Publier un Carnet Blanc

TP JAVASCRIPT OMI4 TP5 SRC

TIC 12 ATELIER INTEGRATION CAHIER DES CHARGES. Page 1/5

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

Rapport de Stage Christopher Chedeau 2 au 26 Juin 2009

Développement des Systèmes d Information

Banque de données d offres & carte web interactive d offres

Karim EL KHALIFA Web developer

Guide d implémentation. Réussir l intégration de Systempay

Logiciels de référencement

Rapport De Stage 28 mai au 27 juin Intégration Web Création de site vitrine (SGC)

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

QUELQUES ÉLÉMENTS DU DÉVELOPPEMENT LOGICIEL

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Mise en œuvre des serveurs d application

Présentation du Framework BootstrapTwitter

Webmaster / Webdesigner / Wordpress

Formation : WEbMaster

Publier dans la Base Documentaire

Qualité web : les bonnes pratiques front-end

CATALOGUE DE FORMATIONS

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

A l aide de votre vous pouvez visiter un site web!

WIMS. Découvrir et utiliser

Créer un site Web : mode d emploi Sous SPIP, avec le squelette «établissement» de l académie de Versailles

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Loi 15 Rentrée de touche

Cours Informatique Master STEP

Agence Web innovatrice

Prise en main rapide

WEB page builder and server for SCADA applications usable from a WEB navigator

Nom de l application

Introduction aux concepts d ez Publish

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Madame, Monsieur, PJ. 1 - Programme de formation 2 - Fiche d'inscription 3 - Présentation de Olivier GOBET

Préparation à l examen EFA en Macro

LE CONCEPT DU CMS CHAPITRE 1

EXTENSION de Microsoft Dynamics CRM Réf FR 80452

les techniques d'extraction, les formulaires et intégration dans un site WEB

Dossier -projet d'informations et Sciences du numérique.

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Formulaire pour envoyer un mail

Application Web et J2EE

Dans cette Unité, nous allons examiner

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

formations Une approche simple et personnalisée pour une meilleure acquisition de compétences en PAO

creer votre site internet en html/css

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

à l édition de textes

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance des logiciels

Créer une Newsletter. Les étapes LE MARKETING PRAGMATIQUE DES ENTREPRISES HIGH TECH

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013

DÉFINITION DE LA NEWSLETTER : OUVERTURE DU LOGITIEL ETARGET

Projet en nouvelles technologies de l information et de la communication

Prise en main de Moodle

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

SEO On-page. Avez-vous mis toutes les chances de votre côté pour le référencement de votre site?

Programmation Web. Madalina Croitoru IUT Montpellier

Partner Entreprise. Modules de cours pour la formation continue Offre IFAPME Verviers

Caruso33 : une association à votre service

Bienvenue sur Maternelle De Moustache Publié le 13/10/2011 Par isabelle. Pages. C est maintenant sur Maternelle De Moustache : Produits récents

Optimiser pour les appareils mobiles

RAPPORT DE STAGE. Terrasse Hugo 1/12

1. Développement embarqué. André KPOZEHOUE DOMAINES DE COMPETENCES CONNAISSANCES TECHNIQUES

agence de création digitale 1 sur10

Association UNIFORES 23, Rue du Cercler LIMOGES

Présentation du langage et premières fonctions

Software and Hardware Datasheet / Fiche technique du logiciel et du matériel

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

demander pourquoi mon site n'apparaît pas sur google ou pourquoi mon site n'est pas référencé par les moteurs de recherche?

Rédaction d'une offre de service et d'un contrat

\ \ / \ / / \/ ~ \/ _ \\ \ ` \ Y ( <_> ) \ / /\ _ / \ / / \/ \/ \/ Team

Transcription:

Générateur de texte Samuel Moix Lycée-Collège de la Planta Sion (VS) Mark Zeman Fachhochschule Nordwestschweiz Brugg-Windisch (AG)

Introduction Le but du projet est d implémenter une chaîne de Markov et à l aide de celle-ci générer du texte. Ensuite, nous devons créer une interface qui permet à un utilisateur quotidien d utiliser le programme. Lorsque l on introduit du texte dans le programme, celui-ci crée des nouvelles phrases et les affiches. Dans un premier temps, nous verrons ce qui a été étudié, puis comment le programme a été codé et finalement ce qui a été appris. Le projet a été développé avec Igor Ranisavljevic et avec l aide d un apprenti et d un étudiant en Master. Pour réussir à créer un générateur de texte avec une chaîne de Markov, il faut tout d abord savoir ce qu est une chaîne de Markov. Le nom vient du mathématicien russe Andreï Markov. En gros, il s agit d un système mathématique qui saute d un état à un autre. Le but est de savoir dans quel état on se trouve et ensuite quels sont les états suivants possibles. En d autres termes, c est la prédiction du futur à partir du présent. Pour notre générateur de texte, nous contrôlons l état d un mot et les mots qui peuvent le suivre. Par exemple si l on a comme phrases : «Je rentre à la maison à pied» et «Il rentre dans la cuisine», l on peut obtenir la phrase «Je rentre dans la cuisine». Avec ce système, plus l on a de phrases plus les phrases vont varier. Il est possible d obtenir des phrases plus réaliste en contrôlant deux mots au lieu d un, mais le contenu changera moins. Pour ce générateur de texte, il ne faut rien d autre, à part un critère d arrêt pour éviter d entrer dans une boucle infinie. Matériel et Méthode Le programme peut être programmé en différents langages de programmation. Nous avons décidé d utiliser du Python pour la partie programme, car nous avions vu les bases dans le cadre des cours au collège. Nous avons tout de même bien été guidés et aidés par les étudiants de la «FHNW». Je me suis chargé de la GUI (Interface visuelle) avec du HTML et du CSS. Le HTML et le CSS sont des langages de programmation du Web. L HTML permet de structurer la page et le CSS permet de la styliser. Les programmes de codages utilisés étaient Pycharm et Notepad++. Notepad++ est simplement un éditeur de texte, alors que PyCharm est un environnement de développement intégré, il facilite donc la programmation en Python. Nous avons également utilisé et découvert Git. C est un logiciel qui permet de créer un projet, y ajouter des gens et mettre à jour tout le travail de chacun régulièrement à travers internet. Pour faire la chaîne Markov, nous avons d abord séparé les phrases en regardant tous les endroits où se trouvaient des points (d interrogation, d exclamation) suivis d un espace. Le

mot en fin de phrase nous sert comme critère d arrêt. Mais en cas de boucles entre mots, nous avons défini une limite entre 20 et 30 mots par phrases. Ensuite, on sépare les mots grâce à l espace qui les sépare dans un texte. Chaque mot va être contrôlé. Si le mot n a pas encore été rencontrer l on créer une liste. Dans cette liste, l on met tous les mots qui ont suivi ce mot. Si le mot a déjà été rencontré, l on ajoute simplement le prochain mot à sa liste. Le logiciel va ensuite commencer avec un mot et générer une phrase jusqu à qu il atteint le critère d arrêt ou un mot de fin de phrase. Le nombre de phrases générer peutêtre déterminer par l utilisateur. Pour l interface, nous avons créé une page internet. Ci-dessous se trouve une partie du code HTML. Tout le code est ciblé par la classe «container» qui crée le lien avec le code CSS afin de styler notre page (et ainsi notre GUI). Ensuite, il y a la balise <h1> où se trouve le titre, suivis de la zone d entrée créée à l aide des formulaires HTML. Dans le formulaire l on a deux types d entrées. D abord celle du texte (<textarea>) et ensuite celle du choix de nombre de phrases à générer (<input type= «number» ) qui force à mettre un chiffre et non pas des lettres. Finalement il y a le bouton qui crée le lien avec le JavaScript par la fonction «FbuttonGenerate(event)» qui va lancer le programme Python.

Le plus difficile était de faire le lien entre la page internet et le programme Python. Pour ce faire, nous avons utilisé le module (ensemble de fonctions) CherryPy et le code JavaScript. Ceci m a permis de découvrir quelques notions de JavaScript. Sur l interface l on trouve : une entrée de texte, un choix de nombre de phrases à générer, un bouton pour envoyer le texte au programme et un endroit où le résultat est affiché. Résultat Voilà à quoi ressemble notre interface avec un exemple de phrase créée : Les phrases données étaient : «The early bird might get the worm, but the second mouse gets the cheese.» et «People say nothing is impossible, but I do nothing every day. Comme l input est réduit l output le sera également. Les seuls mots que l on retrouve dans le deux phrases sont «the» et «but». L on a donc obtenu «The early bird might get the worm, but I do nothing every day». Argumentation Ce programme ne sert en soi pas à grand-chose. Il permet de générer des phrases assez loufoques, mais pourrait être amélioré pour créer des noms de personnages, de villes ou encore de planètes. La partie pratique de ce programme est que l on peut cibler la réponse et obtenir quelque chose souhaité, mais différent. Il fonctionne aussi avec la majorité des langues, comme il se base sur ce qu il reçoit. L affichage par un site web avec le programme Python comme serveur fonctionne bien, mais il aurait été bien de forcer l utilisateur à mettre des chiffres (pour le nombre de phrases générées) au niveau du serveur Python et non pas seulement au niveau du client en HTML.

Ceci n est pas vraiment important dans ce cas, mais c est le genre d erreur qui mène à des failles de sécurité dans les systèmes. De plus nous aurions pu améliorer le code pour éviter d avoir des guillemets ou d autres signes de ponctuation aux mauvais endroits ou encore offrir d autres options pour l utilisateur. Remerciements Je voudrais tout d abord remercier «La science appelle les jeunes» sans qui cette semaine «fascination informatique» n aurait jamais eu lieu. Un grand merci à Madame Anina Gyger pour toutes les informations et l organisation. Dans un second temps je remercie le Collège de la Planta qui nous a donné l accord de participer à cet événement pendant une semaine de cours. Un grand merci à la Fachhochschule Nordwestschweiz pour son accueil, notamment à Monsieur Claude Rubattel pour notre encadrement, à l étudiant en Master Mark Zeman et à l apprenti Orell Bühler pour leur aide à la réalisation du projet et à Markus Knecht. Et finalement un grand merci à l auberge de jeunesse et tous les gens qui ont participé à l organisation de cette semaine. Références Image de page titre de tagxedo.com Markov Chains. A visual explanation by Victor Powell with text by Lewis Lehe - http://setosa.io/blog/2014/07/26/markov-chains/