Bonjour,
Je suis étudiante en Sciences du Langage et nous devons faire un devoir en informatique avec Python.
Nous devons faire deux scripts, le premier servira à extraire nos deux fichiers textes, à les modifier avec certaines conditions pour en faire deux lexiques : un général et un spécialisé.
Nous avons un problème avec le premier script, je vous mets ci-dessous mes avancées sur ce script car je n'ai pas l'impression qu'il fonctionne.
Par la suite il faudra relier ce script à notre second script pour le faire jouer.
Voici tout d'abord les consigne que j'ai reçu pour mon premier script :
1. Lecture des fichiers de base
2. Extraction des corpus : qui sont nos deux lexiques
3.Lecture des fichiers de base
4.Normalisation ( utilisation des expression régulière pour remplacer tous les caractères spéciaux)
Voici nos codes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 #coding: utf-8 from tkinter import * from tkinter.messagebox import * import codecs, random import re def extraire (): with codecs.open("sport.txt", "r", "utf8") as f: text = f.readlines() mots_spe = [] for w in text: mots_spe.append(w.strip()) mots_spe = find_word (corpus_spe) with codecs.open("sortie.txt", "r", "utf8") as s: text = f.readlines() mots_gene = [] for d in text: mots_gene.append(d.strip()) mots_gene = find_word(corpus_gene) return mots_gene, mots_spe #Code pour nettoyer le corpus (éviter les doublons, neutraliser les accents, 9 lettres etc) def find_word (corpus_spe,corpus_gene) : corpus_spe = mots_spe.replace("'", "' ") words_spe = corpus_spe.split() #découpe le texte print(words) spe = [] for w in words_spe: #pour chaque élément de words, donc chaque mot découpé du corpus if not "-" in w: #s'il n'y a pas de tiret dans l'élément w = w.replace("_", "") w = w.replace(",","") w = w.replace(".","") w=re.sub("éèëê", "e",w) w=re.sub("àäâ", "a", w) w=re.sub("öô", "o", w) w=re.sub("üûù", "u", w) w=re.sub("îï", "i", w) w=re.sub("ç","c",w) if w.isalpha() and len(w) <= 9 and w.islower(): #si c'est un mot ET qu'il est < ou = à 9 ET qu'il est en minuscule spe.append(w.strip())#ajoute cet éléments sans les espaces à la liste mots final = set(spe) #supprime les doublons et transforme en ensemble print(final) #affiche l'ensemble final print("Le corpus contient au final", len(final), "mots différents (sans doublons)") corpus_gene = mots_gene.replace("'", "' ") words_gene = corpus_spe.split() #découpe le texte print(words_gene) gene= [] for w in words_gene: #pour chaque élément de words, donc chaque mot découpé du corpus if not "-" in w: #s'il n'y a pas de tiret dans l'élément w = w.replace("_", "") w = w.replace(",","") w = w.replace(".","") w=re.sub("éèëê", "e",w) w=re.sub("àäâ", "a", w) w=re.sub("öô", "o", w) w=re.sub("üûù", "u", w) w=re.sub("îï", "i", w) if w.isalpha() and len(w) <= 9 and w.islower(): #si c'est un mot ET qu'il est < ou = à 9 ET qu'il est en minuscule gene.append(w.strip())#ajoute cet éléments sans les espaces à la liste mots final = set(gene) #supprime les doublons et transforme en ensemble print(final) #affiche l'ensemble final return gene, spe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 #coding: utf-8 from tkinter import * from tkinter.messagebox import * import codecs, random import re def make_lexique (fichier): # fonction qui permet d'extraire notre texte et de l'inclure dans python with codecs.open(fichier, "r", "utf8") as inputF: corpus = inputF.readlines() mots_corpus = make_lexique(fichier) #cherche les mots dans notre corpus mots= [] for d in corpus: mots.append(d.strip()) print(mots) corpus = corpus.replace ("'", "'") words = corpus.split() for w in words: #pour chaque élément de words, donc chaque mot découpé du corpus if not "-" in w: #s'il n'y a pas de tiret dans l'élément w = w.replace("_", "") w = w.replace(",","") w = w.replace(".","") w=re.sub("éèëê", "e",w) w=re.sub("àäâ", "a", w) w=re.sub("öô", "o", w) w=re.sub("üûù", "u", w) w=re.sub("îï", "i", w) w=re.sub("ç","c",w) if w.isalpha() and len(w) <= 9 and w.islower(): #si c'est un mot ET qu'il est < ou = à 9 ET qu'il est en minuscule mots.append(w.strip())#ajoute cet éléments sans les espaces à la liste mots final = set(mots) #supprime les doublons et transforme en ensemble return mots_corpus lexsgen= make_lexique("sortie.txt") lexspé= make_lexique("sport.txt")
Pouvez vous si vous plais nous dire ce qui ne va dans notre code et comment on relie deux python ensemble ?
Merci d'avance pour votre aide![]()
Partager