cloud for cluster and choice for spec
[iramuteq] / ProfList.py
index 59bd0c7..d6050c6 100644 (file)
@@ -101,7 +101,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col
 
 
         self.InsertColumn(0, "num", wx.LIST_FORMAT_RIGHT)
-        self.InsertColumn(1, "eff. uce", wx.LIST_FORMAT_RIGHT)
+        self.InsertColumn(1, "eff. s.t.", wx.LIST_FORMAT_RIGHT)
         self.InsertColumn(2, "eff. total", wx.LIST_FORMAT_RIGHT)
         self.InsertColumn(3, "pourcentage", wx.LIST_FORMAT_RIGHT)
         self.InsertColumn(4, "chi2", wx.LIST_FORMAT_RIGHT)
@@ -271,6 +271,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col
                 self.idwordgraph = wx.NewId()
                 self.popup_proxe = wx.NewId()
                 self.idlexdendro = wx.NewId()
+                self.idcloud = wx.NewId()
                 self.idexport = wx.NewId()
             #    self.export_classes = wx.NewId()
    
@@ -292,6 +293,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col
                 self.Bind(wx.EVT_MENU, self.onwordgraph, id = self.idwordgraph)
                 self.Bind(wx.EVT_MENU, self.onproxe, id = self.popup_proxe)
                 self.Bind(wx.EVT_MENU, self.onlexdendro, id = self.idlexdendro)
+                self.Bind(wx.EVT_MENU, self.oncloud, id = self.idcloud)
                 self.Bind(wx.EVT_MENU, self.onexport, id = self.idexport)
              #  self.Bind(wx.EVT_MENU, self.on_export_classes, id = self.export_classes)
    #            self.Bind(wx.EVT_MENU, self.OnPopupThree, id=self.popupID3)
@@ -308,9 +310,9 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col
             #menu.Append(self.popupID10, u"Spécificités")
 
             menu_conc = wx.Menu()
-            menu_conc.Append(self.popupID2, u"dans les uce de la classe")
-            menu_conc.Append(self.popupID3, u"dans les uce classées")
-            menu_conc.Append(self.popupID4, u"dans toutes les uce")
+            menu_conc.Append(self.popupID2, u"dans les segments de texte de la classe")
+            menu_conc.Append(self.popupID3, u"dans les segments de texte classés")
+            menu_conc.Append(self.popupID4, u"dans tous les segments de texte")
             menu.AppendMenu(-1, u"Concordancier", menu_conc) 
             menu_cnrtl = wx.Menu()      
             menu_cnrtl.Append(self.popupID5, u"Définition")
@@ -323,8 +325,9 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col
             menu.AppendSeparator()
             menu.Append(self.popupIDgraph, u"Graphe de la classe")
             menu.Append(self.idseg, u"Segments répétés")
-            menu.Append(self.iducecarac, u"UCE caractéristiques")
-            menu.Append(self.idexport, 'Exporter...')
+            menu.Append(self.iducecarac, u"Segments de texte caractéristiques")
+            menu.Append(self.idcloud, u"Nuage de la classe")
+            menu.Append(self.idexport, u'Exporter...')
             #menu.Append(self.popupID2, u"Concordancier")
     #        menu.Append(self.popupID3, "recharger")
     
@@ -347,10 +350,24 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col
             self.PopupMenu(menu)
             menu.Destroy()
 
+    def oncloud(self, evt) :
+        if 'corpus' in dir(self.Source):
+            corpus = self.Source.corpus
+        prof = [[self.la[i], self.lchi[i], self.lfreq[i]] for i, val in enumerate(self.la)]
+        parametres = self.Source.parametres
+        parametres['clusterprof'] = prof
+        parametres['type'] = 'clustercloud'
+        parametres['prof'] = self.Source.pathout['actprof_classe_%i.csv' % self.cl]
+        print parametres['prof']
+        #if not os.path.exists(self.Source.pathout['actprof_classe_%i.csv' % self.lc]) :
+        #    with open(self.Source.pathout['actprof_classe_%i.csv' % self.lc], 'w') as f :
+        #        f.write('\n'.join(prof).encode(self.parent.syscoding))
+        self.parent.OnClusterCloud(self.Source.corpus, parametres = parametres)
+
     def onexport(self, evt) :
         if 'corpus' in dir(self.Source):
             corpus = self.Source.corpus
-            corpus.export_classe(self.Source.pathout['classe_%i_export.txt' % self.cl], self.cl)
+        corpus.export_classe(self.Source.pathout['classe_%i_export.txt' % self.cl], self.cl)
         dial = wx.MessageDialog(self, self.Source.pathout['classe_%i_export.txt' % self.cl], u"Export", wx.OK|wx.ICON_INFORMATION)
         dial.ShowModal()
         dial.Destroy()
@@ -552,7 +569,7 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col
             #ucestxt = [corpus.make_concord(self.la, ' '.join(uce), 'red') for uce in ucestxt]
             dlg.Update(4, u'texte...')
             #ucis_txt = [' '.join(corpus.ucis[val[1][0]][0]) for val in ntab2]
-            win = message(self, u"UCE caractéristiques - Classe %i" % self.cl, (750, 600))
+            win = message(self, u"Segments de texte caractéristiques - Classe %i" % self.cl, (750, 600))
             win.html = '<html>\n' + '<br><br>'.join(['<br>'.join([ucis_txt[i], 'score : ' + str(ntab2[i][0]), ucestxt[i]]) for i in range(0,len(ucestxt))]) + '\n</html>'
             win.HtmlPage.SetPage(win.html)
             dlg.Destroy()
@@ -576,6 +593,12 @@ class ProfListctrlPanel(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.Col
         nbcl = len(title)
         nbwords = len(words)
         txt = barplot(tableout, words, title, self.Source.parent.RscriptsPath['Rgraph'], tmpgraph)
+        #print 'ATTENTION TEST R'
+        #txt = """
+        #sink('/Users/pierre/Desktop/qdfqsdfqsdfqsdf.txt')
+        #Sys.getlocale()
+        #sink()
+        #"""
         tmpscript = tempfile.mktemp(dir=self.Source.parent.TEMPDIR)
         file = open(tmpscript,'w')
         file.write(txt)