76 lines
1.8 KiB
Python
76 lines
1.8 KiB
Python
#!/usr/bin/python
|
||
# -*- coding: utf-8 -*-
|
||
|
||
|
||
# Analogie
|
||
# Léon Lenclos 2017 (leon.lenclos(à)gmail.com)
|
||
# Workshop OLA#5 à Synesthésie
|
||
# organisé par Bachir Soussi Chiadmi avec An Mertens
|
||
|
||
import csv
|
||
import random
|
||
|
||
|
||
def main():
|
||
|
||
# on va creer une list d'objet Nom
|
||
mots = []
|
||
with open("Lexique382.txt") as lexique:
|
||
# on lit dans un "tab separated values"
|
||
lexique = csv.reader(lexique, delimiter='\t')
|
||
for raw in lexique:
|
||
# on y cherche les noms
|
||
if raw[3] == "NOM":
|
||
# et on les range dans mots
|
||
mots.append(Nom(raw[0], raw[4], raw[5]))
|
||
|
||
# on imprime la phrase
|
||
|
||
output = "%s %s ce que %s %s." % \
|
||
(random.choice(mots).det_mot_vrb(), \
|
||
random.choice(mots).pre_mot(), \
|
||
random.choice(mots).det_mot_vrb(), \
|
||
random.choice(mots).pre_mot())
|
||
output = output.capitalize()
|
||
print(output)
|
||
|
||
class Nom():
|
||
|
||
def __init__(self, mot, genre, nombre):
|
||
self.mot = mot
|
||
self.genre = genre
|
||
self.nombre = nombre
|
||
|
||
def det(self):
|
||
if self.nombre == 'p':
|
||
return "les "
|
||
elif self.mot[0] in ['a','à','e','é','è','ê','i','o','u','y','h']:
|
||
return "l'"
|
||
elif self.genre == 'f':
|
||
return "la "
|
||
else:
|
||
return "le "
|
||
def pre(self):
|
||
if self.det() == "les ":
|
||
return "aux "
|
||
if self.det() == "le ":
|
||
return "au "
|
||
if self.det() == "la ":
|
||
return "à la "
|
||
if self.det() == "l'":
|
||
return "à l'"
|
||
|
||
def vrb(self):
|
||
if self.nombre == "p":
|
||
return "sont"
|
||
else:
|
||
return "est"
|
||
|
||
def det_mot_vrb(self):
|
||
return self.det() + self.mot + " " + self.vrb()
|
||
|
||
def pre_mot(self):
|
||
return self.pre() + self.mot
|
||
|
||
main()
|