X-Git-Url: http://iramuteq.org/git?p=iramuteq;a=blobdiff_plain;f=textreinert.py;h=551a60db6d32553b6a53b0fd34758e2aca0b2976;hp=d32f24a7df192b6b7e8162bb9752dff67beed721;hb=ae535c41331131d923fa25855e62b4a682b4ffc9;hpb=fd5ed5e9fe3c56891bcd819e6b66a173f44e2124 diff --git a/textreinert.py b/textreinert.py index d32f24a..551a60d 100644 --- a/textreinert.py +++ b/textreinert.py @@ -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) : @@ -31,8 +31,9 @@ class Reinert(AnalyseText) : self.corpus.make_and_write_sparse_matrix_from_uci(self.actives, self.pathout['TableUc1'], self.pathout['listeuce1']) uci = True Rscript = self.printRscript() - self.doR(Rscript, dlg=self.dlg, message='CHD...') - + result = self.doR(Rscript, dlg=self.dlg, message='CHD...') + if not result : + return 'NOK' self.corpus.make_ucecl_from_R(self.pathout['uce']) self.corpus.make_and_write_profile(self.actives, self.corpus.lc, self.pathout['Contout'], uci = uci) self.sup, lim = self.corpus.make_actives_nb(self.parametres['max_actives'], 2) @@ -44,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() @@ -70,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 @@ -80,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) : @@ -97,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)