Un lexique genre ODS7 en txt…

L’Officiel du Scrabble® est le dictionnaire officiel du jeu de Scrabble® francophone depuis le 1er janvier 1990. Il est édité par Larousse et est couramment appelé « ODS » par les scrabbleurs.

2016 voit l’entrée en vigueur de l’ODS7…

Sur le site de la fédération on peut lire :

Qui contacter pour distribuer/vendre un ouvrage ou autre produit utilisant la base de mots de l’Officiel du Scrabble® ?

Tout auteur souhaitant distribuer/vendre un ouvrage ou autre produit (hors application pour Smartphone), utilisant une base de mots conforme à l’Officiel du Scrabble®, doit remplir un contrat de partenariat qui lui sera envoyé sur demande faite auprès de la FISF, à l’adresse suivante : contact@fisf.net

Toute société souhaitant distribuer/vendre un produit numérique privé/grand public sécurisé du type application pour Smartphone, utilisant une base de mots conforme à l’ODS, doit contacter Jean-François Richez, responsable des licences numériques chez Larousse, à l’adresse suivante : JFRICHEZ@larousse.fr

Voilà, mais pour des besoins pédagogiques (formation algorithme au cycle 4) j’avais besoin d’une liste de mots en .txt

Remarque : Je dis bien liste de mots (et non dictionnaire). Et les mots sont à tout le monde…

En effet j’envisage de faire travailler des élèves de 4ème, 3ème sur le développement d’algorithmes divers ayant pour base des jeux de lettres :

  • Boggle
  • Scabble
  • Pendu
  • etc…

Après quelques recherches sur la toile, je me suis aperçu que le fichier txt que je cherchais n’existait pas. Mais que quelques sites proposaient des listes (en html multi-pages. )

Ainsi le très bon listesdemots.net vous propose de nombreuses liste de mots. (898 pages)

Il était donc possible mais fastidieux de créer un fichier txt en copiant collant toutes ces listes !

Pas si fastidieux si on a Python sous le coude !

#wouf 2018 (py3.6.4)
#http://site2wouf.fr
#Pour créer dico.txt
#Qui contient un lexique basé sur
#ODS7
#En scollant le site : listesdemots.net
#requis :l beautifulsoup4
#(cmd : pip install beautifulsoup4)

import requests
from bs4 import BeautifulSoup
fichier = open("dico.txt", "w")

#	Initialisation:
url="https://www.listesdemots.net/touslesmots"
requete = requests.get(str(url+".htm")) #page1
print(requete.url)
page = requete.content

soup = BeautifulSoup(page,features="html5lib")
span = soup.find("span", {"class": "mot"})
mots=span.string.strip()
lesmots=mots.split(" ")
for l in lesmots:
    fichier.write(l+"\n")
    print("|",end="")
print()
print("page 1 : OK ("+str(len(lesmots))+")")
totalmot=len(lesmots)
fichier.close()
#page 2 à 8998:
for i in range(2,899):
    fichier = open("dico.txt", "a")
    lurl=url+"page"+str(i)+".htm"
    ok=False
    while not ok:
        try:
            requete = requests.get(lurl,timeout=1)
            ok=True
        except:
            print("Problème de connexion. Je recommence !")
    print(requete.url)
    page = requete.content
    soup = BeautifulSoup(page,features="html5lib")
    span = soup.find("span", {"class": "mot"})
    mots=span.string.strip()
    lesmots=mots.split(" ")
    for l in lesmots:
        fichier.write(l+"\n")
        print("|",end="")
    totalmot+=len(lesmots)
    print()
    print("page "+str(i)+" : OK ("+str(len(lesmots))+"/"+str(totalmot)+")")
    fichier.close()
#fin du scipt:
 

print("mots :",totalmot)
    


Ce script produit en quelques minutes un fichier txt (avec un mot par ligne) contenant les 402 503 mots du site !

En cas de mauvaise connexion, pas de souci, le script gère ! Le temps de génération du fichier txt sera sensiblement plus long !

Enjoy !

Mon projet Python, par Nolan

Travail de Nolan

Ce projet réalisé par Nolan, élève de 3ème au collège C Peguy d’Arras a été réalisé dans le cadre d’une formation en programmation (algorithme)

Au cycle 4, les élèves s’initient à la programmation, en développant dans une démarche de projet quelques programmes simples, sans viser une connaissance experte et exhaustive d’un langage ou d’un logiciel particulier. En créant un programme, ils développent des méthodes de programmation, revisitent les notions de variables et de fonctions sous une forme différente, et s’entraînent au raisonnement

Code Python traduit en HTML:
#Nolan L. 3B
from turtle import*
title("Mon projet python Nolan" )
bgcolor("black" )#Je change de couleur l'arrière plan
speed("fastest" )#La vitesse
shape("blank" ) #Faire disparaître le curseur
for i in range(125):

    color("red" )
    forward(100+i)#A chaque fois, il augmente de +1
    left(90)
    color("green" )
    forward(100)
    left(90) #Il tourne à gauche
    color("blue" )
    forward(100)
    left(90)
    color("yellow" )
    forward(100)
    up() #Je lève le crayon
    forward(10)
    down()#Je remet le crayon
            

Mes commentaires

Quand on débute dans un langage de programmation, commenter ses sources a une importance particulière : aider à mémoriser les instructions simples. Mais Python est tellement "lisible" que la plupart des commentaires sont ici inutiles. 

Le résultat est simple et joli, et je ne me suis posé qu'une question à la lecture du code : Pourquoi 125 itérations ?

Python vers html

L’algorithme au collège st une nouveauté intéressante. Nous sommes au début d’une ère nouvelle où les têtes pensantes hésitent encore sur les outils à utiliser.

Si d’aucun ne jure que par scratch ou algobox d’autres, comme moi ont le coeur qui bât pour Python.

Le premier souci que nous pouvons rencontrer est la publication d’algorithme (code) sous les ENT, sites perso ou blog…

Code Python traduit en HTML:

print("Bonjour monde"  )
mavariable=input()

Un tel programme Python posté en texte donnerait :

print(« Bonjour monde » )

mavariable=input()

J ai développé une petite application qui transforme un code Python en HTML

Plus d’informations