annotate scripts/CalcPropNist.py @ 175:224321bf043a

Define the ocr dataset and use the existing split for nist.
author Arnaud Bergeron <abergeron@gmail.com>
date Sat, 27 Feb 2010 13:56:14 -0500
parents 2d671ab3b730
children
rev   line source
92
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
1 #!/usr/bin/python
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
2 # coding: utf-8
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
3
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
4 '''
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
5 Script qui calcule la proportion de chiffres, lettres minuscules et lettres majuscules
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
6 dans NIST train et NIST test.
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
7
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
8 Sylvain Pannetier Lebeuf dans le cadre de IFT6266, hiver 2010
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
9
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
10 '''
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
11
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
12 from pylearn.io import filetensor as ft
93
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
13 import matplotlib.pyplot as plt
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
14
92
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
15
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
16 #f1 = open('/home/sylvain/Dropbox/Msc/IFT6266/donnees/all_train_labels.ft')
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
17 f1 = open('/data/lisa/data/nist/by_class/all/all_train_labels.ft')
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
18 train = ft.read(f1)
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
19 #f2 = open('/home/sylvain/Dropbox/Msc/IFT6266/donnees/all_test_labels.ft')
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
20 f2 = open('/data/lisa/data/nist/by_class/all/all_test_labels.ft')
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
21 test = ft.read(f2)
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
22 f1.close()
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
23 f2.close()
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
24
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
25 #Les 6 variables
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
26 train_c=0
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
27 train_min=0
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
28 train_maj=0
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
29
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
30 test_c=0
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
31 test_min=0
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
32 test_maj=0
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
33
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
34 classe=0 #variable utilisee pour voir la classe presentement regardee
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
35 #Calcul pour le train_set
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
36 for i in xrange(len(train)):
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
37 classe=train[i]
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
38 if classe < 10:
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
39 train_c += 1
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
40 elif classe < 36:
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
41 train_maj += 1
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
42 elif classe < 62:
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
43 train_min += 1
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
44
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
45 for j in xrange(len(test)):
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
46 classe=test[j]
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
47 if classe < 10:
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
48 test_c += 1
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
49 elif classe < 36:
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
50 test_maj += 1
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
51 elif classe < 62:
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
52 test_min += 1
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
53 print "Train set:",len(train),"\nchiffres:",float(train_c)/len(train),"\tmajuscules:",\
95
2d671ab3b730 Rajout du calcul de la proportion de lettres (min+maj)
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 93
diff changeset
54 float(train_maj)/len(train),"\tminuscules:",float(train_min)/len(train),\
2d671ab3b730 Rajout du calcul de la proportion de lettres (min+maj)
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 93
diff changeset
55 "\nchiffres:", float(train_c)/len(train),"\tlettres:",float(train_maj+train_min)/len(train)
92
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
56
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
57 print "\nTest set:",len(test),"\nchiffres:",float(test_c)/len(test),"\tmajuscules:",\
95
2d671ab3b730 Rajout du calcul de la proportion de lettres (min+maj)
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 93
diff changeset
58 float(test_maj)/len(test),"\tminuscules:",float(test_min)/len(test),\
2d671ab3b730 Rajout du calcul de la proportion de lettres (min+maj)
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 93
diff changeset
59 "\nchiffres:", float(test_c)/len(test),"\tlettres:",float(test_maj+test_min)/len(test)
2d671ab3b730 Rajout du calcul de la proportion de lettres (min+maj)
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 93
diff changeset
60
92
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
61
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
62 if test_maj+test_min+test_c != len(test):
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
63 print "probleme avec le test, des donnees ne sont pas etiquetees"
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
64
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
65 if train_maj+train_min+train_c != len(train):
708ad2abebdd Petit script primitif utilise pour calculer la proportion des trois classes dans Nist train et test.
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
66 print "probleme avec le train, des donnees ne sont pas etiquetees"
93
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
67
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
68
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
69 #train set
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
70 plt.subplot(211)
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
71 plt.hist(train,bins=62)
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
72 plt.axis([0, 62,0,40000])
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
73 plt.axvline(x=10, ymin=0, ymax=40000,linewidth=2, color='r')
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
74 plt.axvline(x=36, ymin=0, ymax=40000,linewidth=2, color='r')
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
75 plt.text(3,36000,'chiffres')
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
76 plt.text(18,36000,'majuscules')
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
77 plt.text(40,36000,'minuscules')
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
78 plt.title('Train set')
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
79
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
80 #test set
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
81 plt.subplot(212)
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
82 plt.hist(test,bins=62)
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
83 plt.axis([0, 62,0,7000])
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
84 plt.axvline(x=10, ymin=0, ymax=7000,linewidth=2, color='r')
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
85 plt.axvline(x=36, ymin=0, ymax=7000,linewidth=2, color='r')
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
86 plt.text(3,6400,'chiffres')
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
87 plt.text(18,6400,'majuscules')
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
88 plt.text(45,6400,'minuscules')
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
89 plt.title('Test set')
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
90
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
91 #afficher
7054d7afb948 Ajout d'un graphique (histogramme) comparatif pour l'occurence de chaque caractere
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 92
diff changeset
92 plt.show()