141 lines
3.2 KiB
Python
141 lines
3.2 KiB
Python
import nltk
|
|
from duckduckpy import query
|
|
import random
|
|
|
|
# ------------------ #
|
|
# en-tête du script > déclaration des fonctions
|
|
# ------------------ #
|
|
|
|
# fonction qui extrait les mots et les stockent dans une liste
|
|
def words_extract( str ):
|
|
tokens = nltk.word_tokenize( str )
|
|
words = []
|
|
for word, pos in nltk.pos_tag(tokens):
|
|
if pos == 'NN':
|
|
words.append(word)
|
|
return words
|
|
|
|
# fonction qui génère un nombre aléatoire à partir de la liste de mots pour pouvoir choisir un mot
|
|
def rand_words( list ):
|
|
list_len = len( list )
|
|
ran_num = random.randint(0,list_len-1)
|
|
return ran_num
|
|
|
|
# fonction pour chercher dans duckduckgo
|
|
def srch_engine( list, num ):
|
|
srch = query(list[num], container='dict')
|
|
res = srch['related_topics'][0]['text']
|
|
return res
|
|
|
|
# ------------------ #
|
|
# corps du script > appel des fonctions
|
|
# ------------------ #
|
|
|
|
# phrase de départ
|
|
sentence = "Encoded inside a beautiful microchip are the blue patterns of my small fingertips"
|
|
|
|
# ------------------- #
|
|
# niveau 1
|
|
# ------------------- #
|
|
|
|
# 1
|
|
print('\n')
|
|
print('1. ' + sentence)
|
|
|
|
# extraction des mots de la phrase de départ
|
|
words = words_extract( sentence )
|
|
|
|
# 1.2
|
|
print(words)
|
|
|
|
# 1.3 - génération du nombre pour le choix du mot
|
|
ran_num = rand_words( words )
|
|
print(ran_num)
|
|
|
|
# ------------------- #
|
|
# niveau 2
|
|
# ------------------- #
|
|
|
|
# 2 - on va chercher une phrase à partir du mot sélectionné
|
|
sentence2 = srch_engine(words, ran_num)
|
|
print('\t 2. ' + sentence2)
|
|
|
|
# extraction des mots de la phrase 2
|
|
words = words_extract( sentence2 )
|
|
|
|
# 2.2
|
|
print(words)
|
|
|
|
# 2.3 - génération du nombre pour le choix du mot
|
|
ran_num = rand_words( words )
|
|
print(ran_num)
|
|
|
|
# ------------------- #
|
|
# niveau 3
|
|
# ------------------- #
|
|
|
|
# 3 - on va chercher une phrase à partir du mot sélectionné
|
|
sentence3 = srch_engine(words, ran_num)
|
|
print('\t\t 3. ' + sentence3)
|
|
|
|
# extraction des mots de la phrase 2
|
|
words = words_extract( sentence3 )
|
|
|
|
# 3.2
|
|
print(words)
|
|
|
|
# 3.3 - génération du nombre pour le choix du mot
|
|
ran_num = rand_words( words )
|
|
print(ran_num)
|
|
|
|
# ------------------- #
|
|
# niveau 4
|
|
# ------------------- #
|
|
|
|
# 4 - on va chercher une phrase à partir du mot sélectionné
|
|
sentence4 = srch_engine(words, ran_num)
|
|
print('\t\t\t 4. ' + sentence4)
|
|
|
|
# extraction des mots de la phrase 2
|
|
words = words_extract( sentence4 )
|
|
|
|
# 4.2
|
|
print(words)
|
|
|
|
# 4.3 - génération du nombre pour le choix du mot
|
|
ran_num = rand_words( words )
|
|
print(ran_num)
|
|
|
|
# ------------------- #
|
|
# niveau 5
|
|
# ------------------- #
|
|
|
|
# 5 - on va chercher une phrase à partir du mot sélectionné
|
|
sentence5 = srch_engine(words, ran_num)
|
|
print('\t\t\t\t 5. ' + sentence5)
|
|
|
|
# extraction des mots de la phrase 2
|
|
words = words_extract( sentence5 )
|
|
|
|
# 5.2
|
|
print(words)
|
|
|
|
# 5.3 - génération du nombre pour le choix du mot
|
|
ran_num = rand_words( words )
|
|
print(ran_num)
|
|
|
|
# ------------------- #
|
|
# écriture du fichier
|
|
# ------------------- #
|
|
|
|
# on ouvre un fichier
|
|
file = open('ola#5doc/jeremie_nuel/infra-ordinaire.txt', 'w')
|
|
# on l'écrit
|
|
file.write('\n 1.' + sentence )
|
|
file.write('\n\t 2. ' + sentence2 )
|
|
file.write('\n\t\t 3. ' + sentence3 )
|
|
file.write('\n\t\t\t 4. ' + sentence4 )
|
|
file.write('\n\t\t\t\t 5. ' + sentence5 )
|
|
file.close()
|
|
print('fichier écrit')
|