#création d'une matrice de similarité cosinus avec des vecteurs contextuels de FlauBERT puis une Heatmap (groupes de 20 exemples)

#entree_utilisateur=le fichier tapé en input,output_utilisateur=le fichier output tapé en input,reponse=réponse à la question : True(oui)/False(non)
entree_utilisateur, output_utilisateur, reponse = input_utilisateur(
    True, True
)  #1er True=fichier tsv vers tsv. 2ème True= on veut que la question soit posée à l'utilisateur

#tant que l'utilisateur n'aura pas répondu correctement à la question elle sera reposée
while reponse == None:
    entree_utilisateur, output_utilisateur, reponse = input_utilisateur(
        True, True)

#nom_vecteur et liste_tensor=variables utilisées pour faire la matrice de similarité
nom_vecteur, liste_tensor = parcours_fichier(
    entree_utilisateur, reponse, True, False, False
)  #True=similarité(et pas dendrogramme); 1er False=vecteur contextuel; 2ème False=groupes de 20 exemples(variable onze_ex sur False)

#création de la matrice de similarité dans le 1er fichier output
output_matrice(output_utilisateur, nom_vecteur, liste_tensor)

#commenter la suite du script si l'on ne veut pas créer de heatmap.
#fichier_out_heatmap,labels_heatmap,nom_de_label_fic_split_heatmap= utilisés pour les paramètres de la figure
fichier_out_heatmap, labels_heatmap, nom_de_label, fic_split_heatmap = heatmap_output(
    output_utilisateur, False, False, False, False, reponse
)  #1er False=une valeur affichée tous les 10 (écart de 10),2eme False=Heatmap,3ème False=contextuel,4ème False=onze_ex sur False

#paramètres à modifier selon la taille du fichier (change la taille de la police)
plt.title(fic_split_heatmap, size=5)  #titre de la figure
plt.xticks(np.arange(len(nom_de_label), step=10),
           labels=labels_heatmap,
Ejemplo n.º 2
0
#dendrogramme avec des vecteurs contextuels de FlauBERT

#entree_utilisateur=le fichier tapé en input,output_utilisateur=le fichier output tapé en input,reponse=réponse à la question : True(oui)/False(non)
entree_utilisateur, output_utilisateur, reponse = input_utilisateur(
    False, True
)  #False=fichier tsv vers png.True = on veut que la question soit posée afin de savoir si l'on veut base-colloc ou colloc seul

#tant que l'utilisateur ne répond pas correctement on repose la question
while reponse == None:
    entree_utilisateur, output_utilisateur, reponse = input_utilisateur(
        False, True)

#liste_nom_vecteur et liste_de_liste_vecteur=les deux variables à utiliser pour faire le dendrogramme
liste_nom_vecteur, liste_de_liste_vecteur = parcours_fichier(
    entree_utilisateur, reponse, False, False, False
)  #1er False=dendrogramme(et pas similarité);2ème False=vecteur contextuel; 3ème False=groupes de 20 exemples(variable onze_ex sur False)

#nom_fichier_out,labels_dendro,modele= utilisés pour les paramètres de la figure
nom_fichier_out, labels_dendro, modele = dendrogramme_output(
    liste_de_liste_vecteur, liste_nom_vecteur, reponse, False, False,
    entree_utilisateur, True
)  #1er False=vecteurs contextuels,2ème False=groupes de 20 exemples,True=on crée un dendrogramme

#paramètres de la figure./!\ valeurs de "linewidth", "leaf_font_size", "font_size" et "dpi" à modifier si problème avec la taille des différents éléments /!\.
plt.title(nom_fichier_out, fontsize=5)  #titre de la figure + taille du titre
plt.rcParams[
    'lines.linewidth'] = 1  # réduit la taille des traits du dendrogramme./!\ A modifier selon la taille du fichier en input/!\
plot_dendrogram(
    modele,
    truncate_mode=None,
#Exemple de fichier à utiliser en input : FL_BON_OUTPUT_VEC_STATIQUE.tsv
.tsv
import sys
sys.path.append('../../')
from fonctions import input_utilisateur, parcours_fichier, output_matrice, plot_dendrogram, dendrogramme_output
import matplotlib.pyplot as plt

#dendrogramme avec des vecteurs statiques de FastText

#entree_utilisateur=le fichier tapé en input,output_utilisateur=le fichier output tapé en input,reponse=réponse à la question : True(oui)/False(non)
entree_utilisateur,output_utilisateur,reponse=input_utilisateur(False,False)#1er False=fichier tsv vers png. 2ème False= on ne veut pas que la question soit posée car il s'agira forcément du calcul de la base-collocatif(car statique)

#liste_nom_vecteur et liste_de_liste_vecteur= les deux variables à utiliser pour faire le dendrogramme
liste_nom_vecteur,liste_de_liste_vecteur = parcours_fichier(entree_utilisateur,reponse,False,True,False)#1er False=dendrogramme(et pas similarité), True=vecteur statique, 2ème False=groupes de 20 exemples(variable onze_ex sur False car statique donc pas besoin de groupes de 20 ou 11)

#par défaut pour un vecteur statique on laisse onze_ex sur False car ça ne sert à rien de faire des groupes étant donné que chaque couple base-colloc n'est ajouté qu'une fois.
#nom_fichier_out,labels_dendro,modele= utilisés pour les paramètres de la figure
nom_fichier_out,labels_dendro,modele=dendrogramme_output(liste_de_liste_vecteur,liste_nom_vecteur,reponse,True,False,entree_utilisateur,True)#1er True=vecteurs statiques, False=groupes de 20 ex, 2ème True=on crée un dendrogramme

#paramètres de la figure./!\ valeurs de "linewidth", "leaf_font_size", "font_size" et "dpi" à modifier si problème avec la taille des différents éléments /!\.
plt.title(nom_fichier_out,fontsize=5)#titre de la figure + taille du titre
plt.rcParams['lines.linewidth'] = 1 # réduit la taille des traits du dendrogramme./!\ A modifier selon la taille du fichier en input/!\
plot_dendrogram(modele,truncate_mode=None,labels=labels_dendro,orientation='right',leaf_font_size=4)#orientation du dendrogramme(right=sur la droite), labels=le nom du vecteur(ex: Oui/soleil/plomb),leaf=1 : réduit la taille de la police pour la légende(1=minimum possible)
plt.savefig(output_utilisateur,dpi=300)#sauvegarde le dendrogramme dans le fichier_output, dpi=600 : meilleure qualité quand on zoom mais fichier plus gros.


#paramètres utilisés:

#FL_BON et FL_MAGN :
#linewidth=0.5
#leaf_font_size=2
sys.path.append('../../')
from fonctions import input_utilisateur, parcours_fichier, output_matrice, heatmap_output
import matplotlib.pyplot as plt
import seaborn as sb
import numpy as np

#création d'une matrice de similarité cosinus avec des vecteurs statiques de FastText puis une heatmap avec Seaborn

#entree_utilisateur=le fichier tapé en input,output_utilisateur=le fichier output tapé en input,reponse=réponse à la question : True(oui)/False(non)
entree_utilisateur, output_utilisateur, reponse = input_utilisateur(
    True, False
)  #1er True=fichier tsv vers tsv. False= on ne veut pas que la question soit posée car il s'agira forcément du calcul de la base-collocatif

#nom_vecteur et liste_tensor=variables utilisées pour faire la matrice de similarité
nom_vecteur, liste_tensor = parcours_fichier(
    entree_utilisateur, reponse, True, True, False
)  #True=similarité(et pas dendrogramme);2ème True=vecteur statique; False=groupes de 11 sur False

#par défaut pour un vecteur statique on laisse onze_ex sur False car ça ne sert à rien de faire des groupes étant donné que chaque couple base-colloc n'est ajouté qu'une fois
#création de la matrice de similarité dans le 1er fichier output
output_matrice(output_utilisateur, nom_vecteur, liste_tensor)

#commenter la suite du script si l'on ne veut pas créer de heatmap.
#fichier_out_heatmap,labels_heatmap,nom_de_label_fic_split_heatmap= utilisés pour les paramètres de la figure
fichier_out_heatmap, labels_heatmap, nom_de_label, fic_split_heatmap = heatmap_output(
    output_utilisateur, True, False, True, False, reponse
)  #1er True=toutes les valeurs affichées (écart de 1),1er False=Heatmap,2ème True=statique,2ème False=onze_ex sur False

#paramètres à modifier selon la taille du fichier (change la taille de la police).
plt.title(fic_split_heatmap, size=5)  #titre de la figure
plt.xticks(np.arange(len(nom_de_label), step=1),