self.coding = coding
self.itempath = itempath
self.parent = self.GetParent()#parent
- self.SetFont(wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, "courier"))
+ self.SetFont(wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, "Arial"))
self.labels = []
self.listimg = []
self.buts = []
self.listimg.append(hl.HyperLinkCtrl(self.panel_1, -1, os.path.join(self.dirout,list_graph[i][0]), URL=os.path.join(self.dirout,list_graph[i][0])))
else :
self.listimg.append(wx.StaticBitmap(self.panel_1, -1, wx.Bitmap(os.path.join(self.dirout,list_graph[i][0]), wx.BITMAP_TYPE_ANY)))
- self.labels.append(wx.StaticText(self.panel_1, -1, list_graph[i][1]))
+ if os.path.exists(os.path.join(self.dirout,list_graph[i][0] + '_notplotted.csv')) :
+ txt = u' - liste des points non représentés : %s' % os.path.join(self.dirout,list_graph[i][0] + '_notplotted.csv')
+ else :
+ txt = ''
+ self.labels.append(wx.StaticText(self.panel_1, -1, list_graph[i][1] + txt))
self.buts.append(wx.Button(self.panel_1, wx.ID_DELETE, name = `i - b`))
else :
todel.append(i)
self.Dict = dico
self.txt = txt
self.parent = parent
- self.SetFont(wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.FONTWEIGHT_BOLD, 0, "courier"))
+ self.SetFont(wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, "Arial"))
self.labels = []
self.listimg = []
self.dirout = os.path.dirname(self.Dict['ira'])
self.deb = wx.StaticText(self, -1, txt)
for i in range(0,len(list_graph)):
if os.path.exists(os.path.join(self.dirout,list_graph[i][0])) :
- self.listimg.append(wx.StaticBitmap(self, -1, wx.Bitmap(os.path.join(self.dirout,list_graph[i][0]), wx.BITMAP_TYPE_ANY)))
+ filename, ext = os.path.splitext(list_graph[i][0])
+ if ext == '.svg' :
+ self.listimg.append(hl.HyperLinkCtrl(self, -1, os.path.join(self.dirout,list_graph[i][0]), URL=os.path.join(self.dirout,list_graph[i][0])))
+ else :
+ self.listimg.append(wx.StaticBitmap(self, -1, wx.Bitmap(os.path.join(self.dirout,list_graph[i][0]), wx.BITMAP_TYPE_ANY)))
self.labels.append(wx.StaticText(self, -1, list_graph[i][1]))
self.__set_properties()
+def getlemgram(corpus, lem) :
+ if not lem[6] in corpus.lems :
+ return lem[5]
+ else :
+ return corpus.lems[lem[6]].gram
+
class OpenCHDS():
def __init__(self, parent, corpus, parametres, Alceste=False):
#sep = u'\n '
panel.corpus = self.corpus
else :
panel.tableau = self.corpus
+ #self.parent.tableau = panel.tableau
panel.dictpathout = self.DictPathOut
panel.pathout = self.DictPathOut
panel.parent = self.parent
prof_seg = ReadProfileAsDico(DictPathOut['prof_seg'], False, self.encoding)
self.prof_seg_nb = aui.AuiNotebook(panel, -1, wx.DefaultPosition)
for i in range(0, clnb):
- self.cluster_size.append(DictProfile[str(i + 1)][0][0:3])
+ self.cluster_size.append(DictProfile[str(i + 1)][0][0:3])
+ if isinstance(self.corpus, Corpus) :
+ DictProfile[str(i + 1)][1:] = [val[0:5] + [getlemgram(self.corpus, val)] + val[6:] for val in DictProfile[str(i + 1)][1:]]
dlg.Update(3+i, 'Classe %i' %(i+1))
ind = '/'.join(DictProfile[str(i + 1)][0][0:2])
indpour = ' - '.join([ind, DictProfile[str(i + 1)][0][2]])
outfile = print_simi3d(self)
error = exec_rcode(self.parent.RPath, outfile, wait = True)
-# def ongetrapport(self, event) :
-# dial = PrefSimpleFile(self, self.parent, **{'mask' : '*.txt', 'title': 'Rapport'})
-# dial.fbb.SetValue(self.DictPathOut['rapport'])
-# dial.CenterOnParent()
-# res = dial.ShowModal()
-# if res == wx.ID_OK :
-# fileout = dial.fbb.GetValue()
-# dial.Destroy()
-# with open(fileout, 'w') as f :
-# f.write(self.debtext + '\n' + GetTxtProfile(self.DictProfile, self.cluster_size))
-# msg = u"Fini !"
-# dlg = wx.MessageDialog(self.parent, msg, u"Rapport", wx.OK | wx.NO_DEFAULT | wx.ICON_INFORMATION)
-# dlg.CenterOnParent()
-# dlg.ShowModal()
-# dlg.Destroy()
-# else :
-# dial.Destroy()
-
-# def on_export_classes(self, event) :
-# corpus = self.parent.nb.GetPage(self.parent.nb.GetSelection()).corpus
-# dial = PrefExport(self, self.parent)
-# dial.fbb.SetValue(os.path.join(os.path.dirname(corpus.dictpathout['ira']), 'export_corpus.txt'))
-# dial.CenterOnParent()
-# res = dial.ShowModal()
-# if res == wx.ID_OK :
-# if dial.radio_type.GetSelection() == 0 : alc = True
-# else : alc = False
-# if dial.radio_lem.GetSelection() == 0 : lem = True
-# else : lem = False
-# self.corpus.export_corpus_classes(dial.fbb.GetValue(), alc = alc, lem = lem)
-# msg = u"Fini !"
-# dial.Destroy()
-# dlg = wx.MessageDialog(self.parent, msg, u"Export", wx.OK | wx.NO_DEFAULT | wx.ICON_INFORMATION)
-# dlg.CenterOnParent()
-# dlg.ShowModal()
-# dlg.Destroy()
-
-# def onprofseg(self, event):
-# #try :
-# print 'plus de bug profseg'
-# print self.parametres
-# corpus = self.parent.nb.GetPage(self.parent.nb.GetSelection()).corpus
-# ProfileSegment(self.parent, self.dictpathout, self.parametres, corpus)
-# #except :
-# # BugReport(self.parent)
-#
-# def onproftype(self, event):
-# try :
-# corpus = self.parent.nb.GetPage(self.parent.nb.GetSelection()).corpus
-# ProfilType(self.parent, corpus)
-# except :
-# BugReport(self.parent)
-#
-# def oncolored(self,evt) :
-# dial = PrefSimpleFile(self, self.parent, **{'mask' : '*.html', 'title': 'Corpus en couleur'})
-# dial.fbb.SetValue(os.path.join(os.path.dirname(self.corpus.dictpathout['ira']), 'corpus_couleur.html'))
-# dial.CenterOnParent()
-# res = dial.ShowModal()
-# if res == wx.ID_OK :
-# fileout = dial.fbb.GetValue()
-# dial.Destroy()
-# txt = self.corpus.make_colored_corpus()
-# with open(fileout, 'w') as f :
-# f.write(txt)
-# msg = u"Fini !\nVoulez-vous ouvrir le corpus dans votre navigateur ?"
-# dlg = wx.MessageDialog(self.parent, msg, u"Corpus en couleur", wx.NO | wx.YES | wx.NO_DEFAULT | wx.ICON_QUESTION)
-# dlg.CenterOnParent()
-# if dlg.ShowModal() == wx.ID_YES :
-# webbrowser.open(fileout)
-# dlg.Destroy()
-
def onclusterstat(self, evt) :
dial = PrefSimpleFile(self, self.parent, **{'mask' : '*.csv', 'title': 'Stat par classe'})
dial.fbb.SetValue( os.path.join(os.path.dirname(self.corpus.dictpathout['ira']), 'stat_par_classe.csv'))
if res == wx.ID_OK :
fileout = dial.fbb.GetValue()
dial.Destroy()
- print fileout
self.corpus.get_stat_by_cluster(fileout)
msg = u"Fini !"
dlg = wx.MessageDialog(self.parent, msg, u"Stat par classe", wx.OK | wx.NO_DEFAULT | wx.ICON_INFORMATION)
txt += u'nombre de formes actives: %i%s' % (corpus.getactivesnb(1), sep)
txt += u'nombre de formes supplémentaires: %i%s' % (corpus.getactivesnb(2), sep)
txt += u'nombre de formes actives de fréquence >= %i: %i%s' % (parametres['eff_min_forme'], parametres['nbactives'], sep)
- txt += u'moyenne d\'occurrences par uce :%f%s' % (float(totocc) / float(corpus.getucenb()), sep)
+ txt += u'moyenne d\'occurrences par segments :%f%s' % (float(totocc) / float(corpus.getucenb()), sep)
if 'tailleuc1' in parametres :
if parametres['classif_mode'] == 0 :
txt += u'taille rst1 / rst2: %i / %i - %i / %i%s' % (parametres['tailleuc1'], parametres['tailleuc2'], parametres['lenuc1'], parametres['lenuc2'], sep)
elif self.parametres['classif_mode'] == 2 :
txt += u'%i textes classés sur %i (%.2f%%)%s' % (sum([len(cl) for cl in corpus.lc]), corpus.getucinb(), (float(sum([len(cl) for cl in corpus.lc]))) / float(corpus.getucinb()) * 100, sep)
else :
- txt += u'%i uce classées sur %i (%.2f%%)%s' % (self.ucecla, self.Ucenb, (float(self.ucecla) / float(self.Ucenb)) * 100, sep)
+ txt += u'%i segments classées sur %i (%.2f%%)%s' % (self.ucecla, self.Ucenb, (float(self.ucecla) / float(self.Ucenb)) * 100, sep)
txt += """
###########################
self.read_result()
self.TabStat = aui.AuiNotebook(ira.nb, -1, wx.DefaultPosition)
self.TabStat.parametres = parametres
+ self.TabStat.corpus = corpus
+ self.TabStat.pathout = self.pathout
# CHD = GraphPanel(panel.TabChdSim, DictPathOut, list_graph, txt = self.debtext)
# panel.TabChdSim.AddPage(CHD,'CHD')
#self.TabStatTot = wx.TextCtrl(self.TabStat, -1, style=wx.NO_BORDER | wx.TE_MULTILINE | wx.TE_RICH2)
list_graph = [['zipf.png', 'zipf']]
self.TabStatTot = GraphPanel(ira.nb, self.pathout, list_graph, self.result['glob'])
- #self.TabStatTot.write(self.result['glob'])
self.TabStat.AddPage(self.TabStatTot, 'global')
for item in self.result:
if item != 'glob':
datam = [['forme', 'nb']]
self.ListPan = ListPanel(ira, self, self.result[item])
- self.TabStat.AddPage(self.ListPan, item)
- ira.nb.AddPage(self.TabStat, 'Stat')
+ self.TabStat.AddPage(self.ListPan, ' '.join(item.split('_')))
+ ira.nb.AddPage(self.TabStat, '%s' % parametres['name'])
ira.nb.SetSelection(ira.nb.GetPageCount() - 1)
ira.ShowAPane("Tab_content")
class WordCloudLayout(DefaultTextLayout):
def dolayout(self):
- #self.dictpathout = parent.corpus.dictpathout
- #self.pathout = os.path.dirname(filename)
- #self.corpus = parent.corpus
- # self.read_result()
self.pathout.basefiles(simipath)
self.Tab = aui.AuiNotebook(self.ira.nb, -1, wx.DefaultPosition)
-# if os.path.exists(self.pathout['liste_graph']) :
-# list_graph = read_list_file(self.pathout['liste_graph'])
-# else :
-# list_graph = [['','']]
- list_graph = [['nuage_1.png', 'Nuage']]
+ if self.parametres['svg'] :
+ list_graph = [['nuage_1.svg', 'Nuage']]
+ else :
+ list_graph = [['nuage_1.png', 'Nuage']]
self.TabStatTot = GraphPanel(self.ira.nb, self.pathout, list_graph)
- #self.TabStatTot.write(self.result['glob'])
self.Tab.AddPage(self.TabStatTot, 'Nuage')
self.Tab.corpus = self.corpus
self.Tab.parametres = self.parametres
- self.ira.nb.AddPage(self.Tab, 'WordCloud %s' % self.parametres.get('corpus_name','corpus_name'))
+ self.ira.nb.AddPage(self.Tab, '%s' % self.parametres['name'])
self.ira.nb.SetSelection(self.ira.nb.GetPageCount() - 1)
self.ira.ShowAPane("Tab_content")
with codecs.open(self.pathout['actives.csv'], 'r', self.parametres['encoding']) as f :
self.actives = f.read()
self.actives = self.actives.splitlines()#[act for act in self.actives.splitlines()]
- dictcol = dict([[i, [act, self.corpus.getlemeff(act)]] for i, act in enumerate(self.actives)])
+ if os.path.exists(self.pathout['actives_nb.csv']) :
+ with open(self.pathout['actives_nb.csv'], 'r') as f :
+ act_nb = f.read()
+ act_nb = act_nb.splitlines()
+ dictcol = dict([[i, [self.actives[i], int(act_nb[i])]] for i, val in enumerate(self.actives)])
+ else :
+ dictcol = dict([[i, [act, self.corpus.getlemeff(act)]] for i, act in enumerate(self.actives)])
#res = SelectColumn(self.ira, dictcol, self.actives, self.pathout['selected.csv'], selected = selected, dlg = True)
#if res.ok :
prep = PrepSimi(self.ira, self, self.parametres,self.pathout['selected.csv'], self.actives, indices_simi, wordlist = dictcol, selected = selected)
# with codecs.open(self.pathout['actives.csv'], 'r', self.parametres['encoding']) as f :
# self.actives = f.read()
# self.actives = self.actives.splitlines()#[act for act in self.actives.splitlines()]
- actives = [[val, self.tableau.actives[val][0]] for val in self.tableau.actives]
+ try :
+ actives = [[val, self.tableau.actives[val][0]] for val in self.tableau.actives]
+ except :
+ actives = [[val, self.tableau.actives[val]] for val in self.tableau.actives]
+
#self.tableau.make_listactives()
actives = dict([[i, val] for i, val in enumerate(actives)])
#dictcol = dict([[i, [act, self.corpus.getlemeff(act)]] for i, act in enumerate(self.actives)])