galician
[iramuteq] / textsimi.py
index acb85a3..807442e 100644 (file)
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 #Author: Pierre Ratinaud
 #Copyright (c) 2008-2013 Pierre Ratinaud
-#Lisense: GNU/GPL
+#License: GNU/GPL
 
 from chemins import ffr, simipath
 #from corpus import Corpus
@@ -9,8 +9,7 @@ import os
 from analysetxt import AnalyseText
 #from ConfigParser import RawConfigParser
 #from guifunct import getPage, getCorpus
-from dialog import StatDialog
-from guifunct import SelectColumn, PrepSimi
+from guifunct import PrepSimi
 from functions import indices_simi, progressbar, treat_var_mod, read_list_file, print_liste
 #from tableau import Tableau
 #from tabsimi import DoSimi
@@ -27,14 +26,13 @@ class SimiTxt(AnalyseText):
         self.parametres['type'] = 'simitxt'
         self.pathout.basefiles(simipath)
         self.indices = indices_simi
-        self.makesimiparam()
+        if self.dlg :
+            self.makesimiparam()
         #FIXME
         self.actives = self.corpus.make_actives_limit(3)
         dictcol = dict([[i, [act, self.corpus.getlemeff(act)]] for i, act in enumerate(self.actives)]) 
         continu = False
         if self.dlg :
-            #cont = SelectColumn(self.ira, dictcol, self.actives, self.pathout['selected.csv'], dlg = self.dlg)
-            #if cont.ok :
             self.listet = self.corpus.make_etoiles()
             self.listet.sort()
             self.stars = copy(self.listet)
@@ -44,6 +42,8 @@ class SimiTxt(AnalyseText):
             if prep.val == wx.ID_OK :
                 continu = True
                 self.parametres = prep.parametres
+        else :
+            continu = True
         if continu :
             self.makefiles()
             script = PrintSimiScript(self)
@@ -52,31 +52,20 @@ class SimiTxt(AnalyseText):
                 log.info('Problem')
                 return False
             if self.parametres['type_graph'] == 1:
+                if self.parametres['svg'] :
+                    filename, ext = os.path.splitext(script.filename)
+                    fileout = filename + '.svg'                    
+                else :
+                    fileout = script.filename
                 if os.path.exists(self.pathout['liste_graph']):
                     graph_simi = read_list_file(self.pathout['liste_graph'])
-                    graph_simi.append([os.path.basename(script.filename), script.txtgraph])
+                    graph_simi.append([os.path.basename(fileout), script.txtgraph])
                 else :
-                    graph_simi = [[os.path.basename(script.filename), script.txtgraph]]
+                    graph_simi = [[os.path.basename(fileout), script.txtgraph]]
                 print_liste(self.pathout['liste_graph'], graph_simi)
         else : 
             return False
 
-#    def preferences(self) :
-#        dial = StatDialog(self, self.parent)
-#        dial.CenterOnParent()
-#        val = dial.ShowModal()
-#        if val == 5100 :
-#            if dial.radio_lem.GetSelection() == 0 :
-#                lem = 1
-#            else :
-#                lem = 0            
-#            self.parametres['lem'] = lem
-#            dial.Destroy()
-#            return self.parametres
-#        else :
-#            dial.Destroy()
-#            return None
-
     def makesimiparam(self) :
         self.paramsimi = {'coeff' : 0,
                           'layout' : 2,
@@ -105,7 +94,7 @@ class SimiTxt(AnalyseText):
                           'height' : 1000,
                           'bystar' : False,
                           'first' : True,
-                          'keep_coord' : True,
+                          'keep_coord' : False,
                           'alpha' : 20,
                           'film': False,
                           'svg' : 0,
@@ -126,9 +115,11 @@ class SimiTxt(AnalyseText):
             f.write('\n'.join(self.actives).encode(self.ira.syscoding))
 
 class SimiFromCluster(SimiTxt) :
-    def __init__(self, ira, corpus, actives, numcluster, parametres = None, dlg = False) :
+    def __init__(self, ira, corpus, actives, lfreq, lchi, numcluster, parametres = None, dlg = False) :
         self.actives = actives
         self.numcluster = numcluster
+        self.lfreq = lfreq
+        self.lchi = lchi
         parametres['name'] = 'simi_classe_%i' % (numcluster + 1)
         SimiTxt.__init__(self, ira, corpus, parametres, dlg, lemdial = False)
     
@@ -139,7 +130,8 @@ class SimiFromCluster(SimiTxt) :
         self.parametres['type'] = 'clustersimitxt'
         self.pathout.basefiles(simipath)
         self.indices = indices_simi
-        self.makesimiparam()
+        if self.dlg  :
+            self.makesimiparam()
         if 'bystar' in self.parametres :
             del self.parametres['bystar']
         dictcol = dict([[i, [act, self.corpus.getlemclustereff(act, self.numcluster)]] for i, act in enumerate(self.actives)]) 
@@ -148,8 +140,8 @@ class SimiFromCluster(SimiTxt) :
             #self.listet = self.corpus.make_etoiles()
             #self.listet.sort()
             self.stars = []#copy(self.listet)
-            self.parametres['stars'] = False#copy(self.listet)
-            self.parametres['sfromchi'] = True
+            self.parametres['stars'] = 0#copy(self.listet)
+            self.parametres['sfromchi'] = 1
             prep = PrepSimi(self.ira, self, self.parametres, self.pathout['selected.csv'], self.actives, indices_simi, wordlist=dictcol)
             if prep.val == wx.ID_OK :
                 continu = True
@@ -158,6 +150,7 @@ class SimiFromCluster(SimiTxt) :
                 continu = False
         if continu :
             self.makefiles()
+            self.parametres['type'] = 'clustersimitxt'
             script = PrintSimiScript(self)
             script.make_script()
             if not self.doR(script.scriptout, dlg = self.dlg, message = 'R ...') :
@@ -167,7 +160,7 @@ class SimiFromCluster(SimiTxt) :
                     filename, ext = os.path.splitext(script.filename)
                     fileout = filename + '.svg'                    
                 else :
-                    fileout = self.script.filename
+                    fileout = script.filename
                 if os.path.exists(self.pathout['liste_graph']):
                     graph_simi = read_list_file(self.pathout['liste_graph'])
                     graph_simi.append([os.path.basename(fileout), script.txtgraph])
@@ -184,3 +177,8 @@ class SimiFromCluster(SimiTxt) :
         self.corpus.make_and_write_sparse_matrix_from_classe(self.actives, self.corpus.lc[self.numcluster], self.pathout['mat01.csv'])
         with open(self.pathout['actives.csv'], 'w') as f :
             f.write('\n'.join(self.actives).encode(self.ira.syscoding))        
+        with open(self.pathout['actives_nb.csv'], 'w') as f :
+            f.write('\n'.join([`val` for val in self.lfreq]))
+        with open(self.pathout['actives_chi.csv'], 'w') as f :
+            f.write('\n'.join([`val` for val in self.lchi]))
+