new frutch + spirale
[iramuteq] / textsimi.py
index 24cf213..ea1d05a 100644 (file)
@@ -1,23 +1,18 @@
 # -*- 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
 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 functions import indices_simi, progressbar, treat_var_mod, read_list_file, print_liste
-#from tableau import Tableau
-#from tabsimi import DoSimi
-from PrintRScript import PrintSimiScript
+from guifunct import PrepSimi
+from functions import indices_simi, progressbar, treat_var_mod, read_list_file, print_liste, DoConf, exec_rcode, check_Rresult
+from PrintRScript import PrintSimiScript 
 import wx
 from copy import copy
-
+from operator import itemgetter
+import codecs
 import logging
 
 log = logging.getLogger('iramuteq.textsimi')
@@ -27,23 +22,33 @@ 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)
             self.parametres['stars'] = copy(self.listet)
             self.parametres['sfromchi'] = False
+            self.dlg.Destroy()
             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
                 self.parametres = prep.parametres
+                self.dlg = progressbar(self.ira, 4)
+            else :
+                return False
+        else :
+            order_actives = [[i, act, self.corpus.getlemeff(act)] for i, act in enumerate(self.actives)]
+            order_actives = sorted(order_actives, key=itemgetter(2), reverse = True)
+            with open(self.pathout['selected.csv'], 'w') as f :
+                f.write('\n'.join([`order_actives[val][0]` for val in self.parametres['selected']]))
+            continu = True
+            
         if continu :
             self.makefiles()
             script = PrintSimiScript(self)
@@ -66,22 +71,6 @@ class SimiTxt(AnalyseText):
         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,
@@ -110,7 +99,7 @@ class SimiTxt(AnalyseText):
                           'height' : 1000,
                           'bystar' : False,
                           'first' : True,
-                          'keep_coord' : True,
+                          'keep_coord' : False,
                           'alpha' : 20,
                           'film': False,
                           'svg' : 0,
@@ -137,7 +126,8 @@ class SimiFromCluster(SimiTxt) :
         self.lfreq = lfreq
         self.lchi = lchi
         parametres['name'] = 'simi_classe_%i' % (numcluster + 1)
-        SimiTxt.__init__(self, ira, corpus, parametres, dlg, lemdial = False)
+        dlg.Destroy()
+        SimiTxt.__init__(self, ira, corpus, parametres, dlg=True, lemdial = False)
     
     def preferences(self) :
         return self.parametres
@@ -146,17 +136,18 @@ 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)]) 
         continu = True
+        #print self.dlg
         if self.dlg :
-            #self.listet = self.corpus.make_etoiles()
-            #self.listet.sort()
+            self.dlg.Destroy()
             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
@@ -164,7 +155,9 @@ class SimiFromCluster(SimiTxt) :
             else :
                 continu = False
         if continu :
+            self.dlg = progressbar(self.parent, 3)
             self.makefiles()
+            self.parametres['type'] = 'clustersimitxt'
             script = PrintSimiScript(self)
             script.make_script()
             if not self.doR(script.scriptout, dlg = self.dlg, message = 'R ...') :
@@ -196,3 +189,6 @@ class SimiFromCluster(SimiTxt) :
         with open(self.pathout['actives_chi.csv'], 'w') as f :
             f.write('\n'.join([`val` for val in self.lchi]))
 
+
+
+                
\ No newline at end of file