summaryrefslogtreecommitdiff
path: root/data_textes.py
blob: a0728b825bb48c397f865ef6a1062e0d733c946c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon Jul 26 22:50:08 2021

@author: sekhmet
"""

#liste_textes = [
#        "Tu vas pas l'allaiter jusqu'à [âge quelconque] !",
#        "Tu es sûre que tu as assez de lait ?",
#        "Quand est-ce que tu vas lui donner du lait normal ?",
#        "Il/elle fait ses nuits ?",
#        "Il/elle dort encore avec vous ?",
#        "Laisse le/la pleurer il/elle finira bien par dormir (et/ou ça lui fera les poumons).",
#        "Ton lait n'est pas/plus assez nourrissant.",
#        "Il/elle doit apprendre à se détacher de maman.",
#        "Tu as pris combien de kilos ?",
#        "Donne lui un biberon, il/elle fera ses nuits.",
#        "Tu arrêteras quand il/elle aura des dents, puisqu'il/elle va te mordre",
#        
#        ]

import csv

chemin_data = "data/"
fichier_bingo = chemin_data+"bingo_data.txt"
fichier_changelog = chemin_data+"changelog_data.txt"
# Au format : catégorie, phrase, réponses.

#fichier_FAQ = chemin_data+"FAQ_data.txt"
#fichier_changelog = chemin_data+"changelog_data.txt"



def lire_fichier_csv_simple(fichier, minlong=2):
    """ lire un fichier csv et le renvoyer en tableau de tableaux
    minlong est la longueur minimale d'une ligne pour que ça soit accepté
    (plus court on ne met même pas)"""
    table=[]
    with open(fichier, "r") as fichier_csv:
        reader_notes = csv.reader(fichier_csv,delimiter=",",dialect="unix")
        for ligne in reader_notes:
            if len(ligne) >= minlong: # La ligne doit avoir plus de deux éléments
                table.append(ligne)
    return table

def extraire_categories(table):
    """ extrait les catégories (1ere colonne du tableau de tableau)
    renvoie sous forme de liste"""
    liste_cat = []
    for ligne in table:
        if not (ligne[0] in liste_cat):
            liste_cat.append(ligne[0])
    return liste_cat

def extraire_textes_par_cat(table):
    """ construit deux tables : une de catégories (liste simple)
    une autre qui est un tableau dont chaque élément est un tuple
    (phrase, reponses) où reponses est une liste (éventuellement vide)
    
     categ[i] va correspondre à tableqr[i] en terme de catégorie"""
    categ = extraire_categories(table)
    tableqr = [ [] for i in range(len(categ)) ]
    
    for ligne in table:
        try:
            cat = ligne[0]
            q = ligne[1]
            lister = ligne[2:] # Le reste
            ind = categ.index(cat)
            tableqr[ind].append((q,lister))
        except:
            print("Impossible de lire la ligne : "+str(ligne))
            
    return (categ,tableqr)

def extraire_qr(table, listecateg):
    """ 
    table est la table des remarques. On sélectionne uniquement
    les remarques des catégories de la liste et
    on enlève juste la catégorie en début de ligne
    Si listecateg est vide on met tout le monde.
    """
    table2 = []
    for ligne in table:
        if ligne[0] in listecateg or listecateg == []:
            table2.append(ligne[1:])
    return table2



#liste_cat, liste_textes = extraire_textes_par_cat(lire_fichier_csv_simple(fichier_bingo))