...
[iramuteq] / iracmd.py
index 8c000cb..aefb09d 100644 (file)
--- a/iracmd.py
+++ b/iracmd.py
@@ -2,7 +2,7 @@
 # -*- coding: utf-8 -*-
 #Author: Pierre Ratinaud
 #Copyright (c) 2010 Pierre Ratinaud
 # -*- coding: utf-8 -*-
 #Author: Pierre Ratinaud
 #Copyright (c) 2010 Pierre Ratinaud
-#Lisense: GNU/GPL
+#License: GNU/GPL
 
 import os
 from optparse import OptionParser
 
 import os
 from optparse import OptionParser
@@ -11,18 +11,19 @@ reload(sys)
 import locale
 import codecs
 sys.setdefaultencoding(locale.getpreferredencoding())
 import locale
 import codecs
 sys.setdefaultencoding(locale.getpreferredencoding())
-from chemins import ConstructConfigPath, ConstructDicoPath, ConstructRscriptsPath
+from chemins import ConstructConfigPath, ConstructDicoPath, ConstructRscriptsPath, PathOut
 from functions import ReadLexique, DoConf, History, ReadDicoAsDico
 from ConfigParser import *
 #######################################
 #from textchdalc import AnalyseAlceste
 #from textdist import PamTxt
 #from textafcuci import AfcUci
 from functions import ReadLexique, DoConf, History, ReadDicoAsDico
 from ConfigParser import *
 #######################################
 #from textchdalc import AnalyseAlceste
 #from textdist import PamTxt
 #from textafcuci import AfcUci
-from analysetxt import Alceste,  gramact, gramsup
-from corpus import Corpus, copycorpus
+from textreinert import Reinert
+from corpus import Corpus, copycorpus, BuildFromAlceste, BuildSubCorpus
 from textaslexico import Lexico
 from textstat import Stat
 from tools import SubCorpus
 from textaslexico import Lexico
 from textstat import Stat
 from tools import SubCorpus
+from textsimi import SimiTxt
 import tempfile
 ######################################
 import logging
 import tempfile
 ######################################
 import logging
@@ -46,7 +47,8 @@ else:
 UserConfigPath = os.path.abspath(os.path.join(user_home, '.iramuteq'))
 
 class CmdLine :
 UserConfigPath = os.path.abspath(os.path.join(user_home, '.iramuteq'))
 
 class CmdLine :
-    def __init__(self, args = None) :
+    def __init__(self, args = None, AppliPath = None, parametres = None) :
+        AppliPath = AppliPath
         self.DictPath = ConstructDicoPath(AppliPath)
         self.ConfigPath = ConstructConfigPath(UserConfigPath)
         self.syscoding = sys.getdefaultencoding()
         self.DictPath = ConstructDicoPath(AppliPath)
         self.ConfigPath = ConstructConfigPath(UserConfigPath)
         self.syscoding = sys.getdefaultencoding()
@@ -58,6 +60,8 @@ class CmdLine :
         self.pref = RawConfigParser()
         self.pref.read(self.ConfigPath['preferences'])
         self.history = History(os.path.join(UserConfigPath, 'history.db'))
         self.pref = RawConfigParser()
         self.pref.read(self.ConfigPath['preferences'])
         self.history = History(os.path.join(UserConfigPath, 'history.db'))
+        print 'CLEAN HISTORY'
+#        self.history.clean()
 
         parser = OptionParser()
     
 
         parser = OptionParser()
     
@@ -94,10 +98,14 @@ class CmdLine :
         if options.filename or options.read :
             self.corpus_encodage = options.encodage
             self.corpus_lang = options.language
         if options.filename or options.read :
             self.corpus_encodage = options.encodage
             self.corpus_lang = options.language
-                
+            self.keys = DoConf(self.ConfigPath['key']).getoptions()
 
             ReadLexique(self, lang = options.language)
             self.expressions = ReadDicoAsDico(self.DictPath.get(options.language + '_exp', 'french_exp'))
 
             ReadLexique(self, lang = options.language)
             self.expressions = ReadDicoAsDico(self.DictPath.get(options.language + '_exp', 'french_exp'))
+            gramact = [k for k in self.keys if self.keys[k] == 1]
+            gramsup = [k for k in self.keys if self.keys[k] == 2]
+
             if options.filename :
                 self.filename = os.path.abspath(options.filename)
                 if options.corpusconfigfile is not None :
             if options.filename :
                 self.filename = os.path.abspath(options.filename)
                 if options.corpusconfigfile is not None :
@@ -123,6 +131,9 @@ class CmdLine :
                 corpus.parametres['pathout'] = os.path.dirname(os.path.abspath(options.read))
                 pathout = os.path.dirname(os.path.dirname(os.path.abspath(options.read)))
                 self.corpus = corpus
                 corpus.parametres['pathout'] = os.path.dirname(os.path.abspath(options.read))
                 pathout = os.path.dirname(os.path.dirname(os.path.abspath(options.read)))
                 self.corpus = corpus
+                print self.corpus
+                corpus.parametres['pathout'] = '/home/pierre/fac/etudiant/verdier/corpus20_corpus_2/test2'
+                BuildSubCorpus(corpus, parametres = {'fromthem' : True, 'theme' : [u'-*thématique_idéal']})
 
             if corpus is not None :
                 corpus.conn_all()
 
             if corpus is not None :
                 corpus.conn_all()
@@ -133,14 +144,21 @@ class CmdLine :
                 #print corpus.getlemconcorde('de').fetchall()
 #            log.warning('ATTENTION gethapaxuces')
 #            MakeUciStat(corpus)
                 #print corpus.getlemconcorde('de').fetchall()
 #            log.warning('ATTENTION gethapaxuces')
 #            MakeUciStat(corpus)
-#            qfqsdf
             #corpus.gethapaxuces()
             #corpus.gethapaxuces()
-            #ucisize = corpus.getucisize()
-            #ucisize = [`val` for val in ucisize]
-            #uciet = [uci.etoiles[1] for uci in corpus.ucis]
-            #res = zip(uciet, ucisize)
-            #with open('ucisize.csv', 'w') as f :
-            #    f.write('\n'.join(['\t'.join(val) for val in res]))
+             #   ucisize = corpus.getucisize()
+             #   ucisize = [`val` for val in ucisize]
+                #uciet = [uci.etoiles[1:] for uci in corpus.ucis]
+                #uceet = [corpus.ucis[uce.uci].etoiles[1:] for uci in corpus.ucis for uce in uci.uces]
+                #print uceet[0:10]
+                #for line in uceet :
+                #    print '\t'.join(line)
+                #res = zip(uciet, ucisize)
+             #   res = [uciet[i] + [ucisize[i]] for i, val in enumerate(uciet)]
+             #   print res[0:10]
+                #ucesize = corpus.getucesize()
+                #print ucesize[0:40]
+                #with open('sentences_size.csv', 'w') as f :
+                #    f.write('\n'.join([`val`  for val in ucesize]))
                 #    self.content = f.read()
                 #self.content = self.content.replace('\r','')
                 if options.type_analyse == 'alceste' :
                 #    self.content = f.read()
                 #self.content = self.content.replace('\r','')
                 if options.type_analyse == 'alceste' :
@@ -150,7 +168,7 @@ class CmdLine :
                     #corpus.read_corpus()
                     #corpus.parse_active(gramact, gramsup)
                     config['type'] = 'alceste'
                     #corpus.read_corpus()
                     #corpus.parse_active(gramact, gramsup)
                     config['type'] = 'alceste'
-                    self.Text = Alceste(self, corpus, parametres = config)
+                    self.Text = Reinert(self, corpus, parametres = config)
                 #    self.Text = AnalyseAlceste(self, cmd = True, big = True)
                     #self.Text = AnalyseAlceste(self, cmd = True)
                 elif options.type_analyse == 'pam' :
                 #    self.Text = AnalyseAlceste(self, cmd = True, big = True)
                     #self.Text = AnalyseAlceste(self, cmd = True)
                 elif options.type_analyse == 'pam' :
@@ -161,10 +179,12 @@ class CmdLine :
                     self.Text = Stat(self, corpus, parametres = {'type':'stat'})
                 elif options.type_analyse == 'spec' :
                     self.Text = Lexico(self, corpus, config = {'type' : 'spec'})
                     self.Text = Stat(self, corpus, parametres = {'type':'stat'})
                 elif options.type_analyse == 'spec' :
                     self.Text = Lexico(self, corpus, config = {'type' : 'spec'})
+                elif options.type_analyse == 'simitxt' :
+                    self.Text = SimiTxt(self, corpus, parametres = parametres)
             #print self.Text.corpus.hours, 'h', self.Text.corpus.minutes,'min', self.Text.corpus.seconds, 's'
 #            self.Text.corpus.make_colored_corpus('colored.html')
 
 if __name__ == '__main__':
     __name__ = 'Main'
             #print self.Text.corpus.hours, 'h', self.Text.corpus.minutes,'min', self.Text.corpus.seconds, 's'
 #            self.Text.corpus.make_colored_corpus('colored.html')
 
 if __name__ == '__main__':
     __name__ = 'Main'
-    CmdLine()
+    CmdLine(AppliPath = AppliPath)