gridGenerator module
- class gridGenerator.Grid(input_file, row_size, col_size)
Meta-classe représentant la structure complète d’un système de grilles de pictogrammes
- Parameters
input_file (fichier / Dict) – fichier .csv en format Augcom ou tableau d’attributes décrivant chaque pictogramme avec le format: {id_picto : [nom, ligne, colonne, page, destination]}
row_size (entier) – hauteur fixe de chaque page de la grille
col_size (entier) – longueur fixe de chaque page de la grille
- Raises
Exception – exception d’entrée incompatible
- add_new_page(name)
Fonction d’encapsulation
Ajoute une nouvelle page à la grille
- Parameters
name (chaîne de charactères) – le nom de la nouvelle page
- Returns
la page ajoutée
- Return type
classe: Page
- add_word_in_root(word, dest=None)
Ajoute un nouveau pictogramme à la page d’accueil dans la première position disponible
- Parameters
word (chaîne de charactères) – nom du pictogramme
dest (classe Page, optional) – page de destination du pictogramme, defaults to None
- cross_pages(page1, page2, parent=None)
Croise deux pages et toutes les sous-pages analogues reliées entre elles
- Parameters
page1 (classe: Page) – première page à croiser
page2 (classe: Page) – deuxième page à croiser
parent (classe: Page, optional) – page de référence pour mettre en place les pictogrammes de retour. Cette page fait un appel récursive, defaults to None
- Returns
renvoie 3 choses: Un tableau contenant les attributes des pictos dans la page résultante, la page résultante et un tableau contenant les pictos non affectés à la page résultante lors du croissement
- Return type
[type]
- display(name='default')
Méthode d’affichage 2
Génére une image detaillé et intuitive de la structure de la grille. Il utilise Graphviz et le language DOT. Il export automatiquement l’image en format png au répértoire actuel
- Parameters
name (chaîne de charactères, optional) – le nom du fichier image produit, defaults to ‘default’
- Returns
renvoie un graphe dirigé
- Return type
classe: networkx.DiGraph
- fusion_with(grid)
Fusione aléatoirement les strutures analogues (pages) de deux grilles
Fonction récursive. En partant des deux accueils, on compare chaque slot d’une page avec son analogue dans l’autre page et choisit aléatoirement l’un d’entre eux. Par exemple, les slots situés à la position (2,3) dans les pages d’accueil de la première et la deuxième grille sont utilisés pour définir le slot situé à (2,3) dans la page d’accueil de la grille résultante. Ainsi, pour chaque position il y a toujours un slot selectionné (ce qui va dans les pages de base de la grille résultante) et un autre non-selectionné qui va dans des pages spécialement concues à ce propos (extra_pages).
La grille résultante est une structure unique et indépéndante. Elle contient les pictogrammes des deux grilles originales.
- Parameters
grid (classe: Grid) – la deuxième grille avec laquelle la grille actuelle va se fusioner
- Returns
une nouvelle grille avec une nouvelle structure
- Return type
classe: Grid
- get_col_size()
Renvoie la longueur de la grille
- Returns
nombre de colonnes
- Return type
entier
- get_core_voc()
Renvoie le tableau d’attributes décrivant tous les pictogrammes
- Returns
tableau d’attributes
- Return type
Dict (format: {id_picto:[nom,`ligne`,`colonne`,`page`, page_dest]})
- get_nb_pages()
Renvoie le nombre de pages contenues dans la grille
- Returns
nombre total de pages
- Return type
entier
- get_page(name)
Renvoie la page avec le nom name
- Parameters
name (chaîne de charactères) – nom de la page à chercher
- Returns
la page concernée
- Return type
classe: Page
- get_page_dict()
Renvoie le tableau de pages de la grille
- Returns
tableau de pages
- Return type
Dict (format: {page_name: chaine de charactères : page: classe Page})
- get_page_names()
Renvoie la liste de noms de pages contenues dans la grille
- Returns
liste de noms
- Return type
Liste
- get_root_page()
Obtient la page racine, qui est par défaut la page nommé accueil
- Returns
renvoi la page d’accueil
- Return type
classe: Page
- get_row_size()
Renvoie la hauteur de la grille
- Returns
nombre de lignes
- Return type
entier
- shuffle()
Mélange les pictogrammes à l’intérieure de chaque page de la grille
Change uniquement la distribution spaciale des pictogrammes d’une page.
- Raises
Exception – capacité de la page dépassé
- Returns
nouvelle grille
- Return type
classe: Grid
- to_graph()
Génére un graphe décrivant la structure de la grille
- Returns
un graphe dirigé
- Return type
classe: networkx.DiGraph
- to_text(output_name='grid_text.csv')
Crée un fichier texte (.csv) décrivant la grille en format AUGCOM.
Voir le repo du projet pour plus d’information sur le format Augcom.
- Parameters
output_name (chaîne de charactères, optional) – le nom du fichier résultant, defaults to ‘grid_text.csv’
- update_leaf_picto(extra_page)
Affecte la page extra_page à un pictogramme disponible
Recherche le premier pictogramme qui n’a pas de page de destination et mettre en place extra_page comme destination.
- Parameters
extra_page (classe: Page) – la page à affecter
- Returns
Renvoie la page contenant le pictogramme trouvé.
- Return type
classe: Page
- class gridGenerator.Page(name, row_size, col_size)
Une page est un arrangement 2D de slots avec une taille fixe
- Parameters
name (chaîne de caractères) – le nom de la page
row_size (entier) – La hauteur de la table (nombre de lignes)
col_size (entier) – La largueur de la table (nombre de colonnes)
- add_word(word, core=False, dest=None)
Crée et ajoute un slot(pictogramme) dans le prochain emplacement disponible de la page
Fonction récursive.
- Parameters
word (chaîne de charactères) – nom du mot du pictogramme
core (boolean, optional) – indique si le mot est du voc de base, defaults to False
dest (classe: Page, optional) – page de destination du pictogramme, defaults to None
- Returns
renvoie le nom du mot si affectation possible, null sinon
- Return type
chaîne de charactères
- get_col_size()
Accesseur.
- Returns
renvoie la longueur de la page
- Return type
entier
- get_name()
Accesseur.
- Returns
renvoie le nom actuel de la page
- Return type
chaîne de charactères
- get_pictograms()
Obtiens les informations des pictogrammes dans la page
Produit un tableau d’attributes contenant toutes les informations (nom, ligne, colonne, nom de page, page de destination) de chaque pictogramme de la page courante.
- Returns
renvoie un tableau d’attributes
- Return type
Dict
- get_row_size()
Accesseur.
- Returns
renvoie la hauteur de la page
- Return type
entier
- get_slot(num_row, num_col)
Accesseur.
- Returns
renvoie le slot affecté à la position (num_row, num_col)
- Return type
class: Slot
- get_slot_list()
Accesseur
- Returns
renvoie la liste de slots de la page
- Return type
Liste de Slots
- is_free(num_row, num_col)
Retourne vrai si le slot à la position (num_row, num_col) est libre, faux sinon.
- Parameters
num_row (entier) – nombre de la ligne
num_col (entier) – nombre de la colonne
- Returns
renvoie un bolean
- Return type
bolean
- is_full()
Retourne vrai si la table est pleine (aucun slot vide), faux sinon
- Returns
renvoie un bolean
- Return type
bolean
- set_name(name)
Setter. Mettre en place le nom de la page
- Parameters
name (chaîne de charactères) – nom à mettre en place
- Returns
renvoie le nom affecté
- Return type
chaîne de charactères
- set_slot(slot, num_row, num_col)
Setter. Ajoute le Slot slot en position num_row, num_col dans la page
- Parameters
slot (class Slot) – slot à mettre en place
num_row (entier) – nombre de la ligne
num_col (entier) – nombre de la colonne
- Raises
Exception – exception de dépassement des indices.
- Returns
renvoie l’ancienne valeur du slot
- Return type
class Slot
- class gridGenerator.Slot(word, is_core, page_destination)
Représente l’element le plus basique d’une grille.
Il peut contenir un pictogramme ou être vide (None).
- Word
mot lié au pictpgramme
- Is_core
boolean qui indique si le mot associé fait partie du vocabulaire de base.
- Page_destination
Eventuelle page de destination liée au pictogramme. Peut être nulle.
- get_is_core()
Accesseur
- Returns
Renvoi le boolean is_core du slot
- Return type
boolean
- get_page_destination()
Accesseur
- Returns
Renvoi la page de destination du slot
- Return type
class: Page
- get_word()
Accesseur
- Returns
Renvoi le mot lié au slot
- Return type
châine de charactères
- set_page_destination(page)
Setter. Mettre en place la page de destination du slot
- Page
page à mettre en place
- set_word(word)
Setter. Mettre en place le mot du slot
- Word
mot à metre en place
- class gridGenerator.WeightedPath
Classe auxiliaire pour stocker le chemin et le coût lors du calcul du chemin optimale
- gridGenerator.compute_cost(input_sentence, distances)
Calcule le coût associé à la phrase d’entrée utilisant les distances données en entrée
- Parameters
input_sentence (chaîne de charactères) – phrase d’entrée
distances (chaîne de charactères) – contient les distances entre chaque pictogramme
- Returns
le meilleur chemin et le coût final
- Return type
liste
- gridGenerator.compute_distances(grid, movement_factor=1, selection_factor=1)
Calcule la distance entre chaque paire de pictogrammes à l’intérieure de chaque page d’une grille
Prend en compte la difficulté du mouvement (movement_factor) et la difficulté de la sélection (selection_factor)
- Parameters
grid (classe: Grid) – grille à traiter
movement_factor (entier, optional) – facteur de difficulté du mouvement, defaults to 1
selection_factor (entier, optional) – facteur de difficulté de la sélection, defaults to 1
- Returns
déscription textuelle des distances entre chaque pictogramme
- Return type
chaîne de charactères
- gridGenerator.initialNode(text, nodeList, edgeList, G)
Fonction qui établit le noeud à partir duquel il faut commencer à calculer un arc
- Parameters
text (chaîne de charactères) – texte d’entrée
nodeList (liste) – liste de tous les noeuds du graphe
edgeList (Dict) – tableau associatif de tous les arcs avec en clé le noeud tête et en valeurs le noeud pointé et le poids de l’arc
G (classe: networkx.DiGraph) – graphe initial
- Returns
liste avec le chemin et le poids total
- Return type
liste
- gridGenerator.load_obj(name)
Fonction qui récupere un objet contenu dans un fichier .pkl
- Parameters
name (chaîne de charactères) – nom du fichier cible
- Returns
renvoie le fichier avec nom name
- Return type
any
- gridGenerator.main(files, sentence, row_sz, col_sz, score_threshold, max_iter)
Fonction principale qui implémente la boucle itérative de l’algorithme génétique
- Parameters
files (liste) – liste de noms de fichiers source
- gridGenerator.save_obj(obj, name)
Fonction qui stocke un objet dans un fichier .pkl
- Parameters
obj (any) – l’objet à stocker
name (chaîne de charactères) – nom du fichier créé
- gridGenerator.shortestPath(initialNode, sentance, nodeList, edgeList, G)
Fonction de calcul du plus court path
- Parameters
initialNode (Node) – point de départ de la recherche dans le graphe
sentance (chaîne de charactères) – phrase d’entrée pour laquelle il faut calculer le cout de production
nodeList (liste) – liste de tous les noeuds du graphe
edgeList (Dict) – tableau associatif de tous les arcs avec en clé le noeud tête et en valeurs le noeud pointé et le weight de l’arc
G (classe: networkx.DiGraph) – graphe en question
- Returns
objet contenant le chemin final et le coût final
- Return type
classe: WeightedPath
- gridGenerator.textToNodes(word, nodeList)
Fonction qui prend en entrée un mot de la phrase et en fait une liste de noeuds possibles
- Parameters
word (chaîne de charactères) – chaque word de la phrase d’entrée
nodeList (liste) – liste de tous les noeuds du graphe
- Returns
liste des noeuds canidats potentiels
- Return type
liste