correction for subcorpus and more
[iramuteq] / textreinert.py
index b15273f..551a60d 100644 (file)
@@ -6,11 +6,11 @@
 import os
 from time import time
 from analysetxt import AnalyseText
-from OptionAlceste import OptionAlc 
-from PrintRScript import RchdTxt, AlcesteTxtProf
+from OptionAlceste import OptionAlc
+from PrintRScript import RchdTxt, ReinertTxtProf, TgenProfScript, ReDoProfScript
 from layout import PrintRapport
-from chemins import ChdTxtPathOut
-from functions import DoConf, print_liste
+from chemins import ChdTxtPathOut, PathOut
+from functions import DoConf, print_liste, TGen
 
 
 class Reinert(AnalyseText) :
@@ -45,14 +45,17 @@ class Reinert(AnalyseText) :
         self.doR(Rscript, dlg=self.dlg, message='profils et A.F.C. ...')
         self.time = time() - self.t1
         minutes, seconds = divmod(self.time, 60)
-        hours, minutes = divmod(minutes, 60)            
+        hours, minutes = divmod(minutes, 60)
         self.parametres['time'] = '%.0fh %.0fm %.0fs' % (hours, minutes, seconds)
         self.print_graph_files()
 
     def preferences(self) :
+        print 'parametres en entree config alceste', self.parametres
         parametres = DoConf(self.parent.ConfigPath['reinert']).getoptions('ALCESTE')
+        print 'parametres apres doconf', parametres
         parametres['corpus'] = self.corpus
         parametres['pathout'] = self.pathout
+        parametres['lem'] = self.parametres['lem']
         self.dial = OptionAlc(self.parent, parametres)
         self.dial.CenterOnParent()
         self.dialok = self.dial.ShowModal()
@@ -71,7 +74,8 @@ class Reinert(AnalyseText) :
             DoConf(self.parent.ConfigPath['reinert']).makeoptions(['ALCESTE'], [parametres])
             self.dial.Destroy()
             print parametres
-            return parametres
+            self.parametres.update(parametres)
+            return self.parametres
         else :
             self.dial.Destroy()
             return None
@@ -81,7 +85,7 @@ class Reinert(AnalyseText) :
         return self.pathout['Rchdtxt']
 
     def printRscript2(self) :
-        AlcesteTxtProf(self.pathout, self.parent.RscriptsPath, self.clnb, 0.9)
+        ReinertTxtProf(self.pathout, self.parent.RscriptsPath, self.clnb, 0.9)
         return self.pathout['RTxtProfGraph']
 
     def print_graph_files(self) :
@@ -98,4 +102,46 @@ class Reinert(AnalyseText) :
             chd_graph_list.append([os.path.basename(self.pathout['arbre2']), u'chd2'])       
         print_liste(self.pathout['liste_graph_afc'], afc_graph_list)
         print_liste(self.pathout['liste_graph_chd'], chd_graph_list)
-        PrintRapport(self, self.corpus, self.parametres)
\ No newline at end of file
+        PrintRapport(self, self.corpus, self.parametres)
+
+class TgenProf(AnalyseText):
+    def __init__(self, ira, corpus, parametres, cluster_size):
+        self.ira = ira
+        self.corpus = corpus
+        self.parametres = parametres
+        self.pathout = PathOut(dirout = self.parametres['pathout'])
+        self.cluster_size = [len(classe) for classe in corpus.lc]
+        self.doanalyse()
+
+    def doanalyse(self):
+        self.tgen = TGen(path = self.parametres['tgenpath'], encoding = self.ira.syscoding)
+        self.tgen.read(self.tgen.path)
+        #self.parametres['etoiles'].sort()
+        self.parametres['tgeneff'] = os.path.join(self.parametres['pathout'], 'tgeneff.csv')
+        tgenst = self.corpus.make_tgen_profile(self.tgen.tgen, self.corpus.lc)
+        clnames = ['cluster_%03d' % i for i in range(1, len(self.cluster_size) + 1)]
+        et = dict(zip(clnames, self.cluster_size))
+        tgenst = dict([[line[0], dict(zip(clnames, line[1:]))] for line in tgenst])
+        self.tgen.writetable(self.parametres['tgeneff'], tgenst, et)
+        self.parametres['tgenspec'] = os.path.join(self.parametres['pathout'], 'tgenchi2.csv')
+        self.parametres['tgenlemeff'] = os.path.join(self.parametres['pathout'], 'tgenlemeff.csv')
+        self.parametres['tgenlemspec'] = os.path.join(self.parametres['pathout'], 'tgenlemchi2.csv')
+        tgenlemeff = dict([[lem, dict(zip(clnames, self.corpus.tgenlem[lem]))] for lem in self.corpus.tgenlem])
+        self.tgen.writetable(self.parametres['tgenlemeff'], tgenlemeff, et)
+        self.Rscript = TgenProfScript(self)
+        self.Rscript.make_script()
+        self.Rscript.write()
+        self.doR(self.Rscript.scriptout, dlg = False, message = 'R...')
+
+class ReDoProfile(AnalyseText):
+    def __init__(self, ira, corpus, analyses, parametres):
+        self.ira = ira
+        self.corpus = corpus
+        self.parametres = parametres
+        self.analyse = analyse
+        self.pathout = PathOut(dirout = self.parametres['pathout'])
+        #self.cluster_size = [len(classe) for classe in corpus.lc]
+        self.doanalyse()
+
+    def Rscript(self) :
+       script = ReDoProfScript(self)