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