From: Pierre Date: Thu, 21 Mar 2013 15:37:43 +0000 (+0100) Subject: lot of things :) X-Git-Url: http://iramuteq.org/git?p=iramuteq;a=commitdiff_plain;h=2ffa9388c45dce689bb45c1cf6c7ad81d2636409;ds=sidebyside lot of things :) --- diff --git a/PrintRScript.py b/PrintRScript.py index 589aabf..636fe9e 100644 --- a/PrintRScript.py +++ b/PrintRScript.py @@ -1117,3 +1117,17 @@ class WordCloudRScript(PrintRScript) : """ % (ffr(self.analyse.pathout['actives_eff.csv']), ffr(self.analyse.pathout['selected.csv']), self.parametres['maxword'], ffr(self.parametres['graphout']), self.parametres['width'], self.parametres['height'], bg_col, self.parametres['maxcex'], self.parametres['mincex'], txt_col) self.add(txt) self.write() + +class ProtoScript(PrintRScript) : + def make_script(self) : + self.sources([self.analyse.parent.RscriptsPath['Rgraph'], self.analyse.parent.RscriptsPath['prototypical.R']]) + self.packages(['wordcloud']) + txt = """ + mat <- read.csv2("%s", header = FALSE, row.names=1, sep='\t', quote='"', dec='.') + open_file_graph("%s",height=600, width=600) + prototypical(mat, mfreq = %s, mrank = %s, cloud = FALSE, cexrange=c(1,2.4), cexalpha= c(0.4, 1)) + dev.off() + """ % (self.analyse.pathout['table.csv'], self.analyse.pathout['proto.png'], self.parametres['limfreq'], self.parametres['limrang']) + self.add(txt) + self.write() + diff --git a/Rscripts/Rgraph.R b/Rscripts/Rgraph.R index 4d94e35..e947a40 100644 --- a/Rscripts/Rgraph.R +++ b/Rscripts/Rgraph.R @@ -477,16 +477,120 @@ make_afc_graph <- function(toplot, classes, clnb, xlab, ylab, cex.txt = NULL, le } } +plot.dendro.prof <- function(tree, classes, chisqtable, nbbycl = 60, type.dendro = "phylogram", from.cmd = FALSE, bw = FALSE, lab = NULL) { + library(ape) + library(wordcloud) + classes<-classes[classes!=0] + classes<-as.factor(classes) + sum.cl<-as.matrix(summary(classes, maxsum=1000000)) + sum.cl<-(sum.cl/colSums(sum.cl)*100) + sum.cl<-round(sum.cl,2) + sum.cl<-cbind(sum.cl,as.matrix(100-sum.cl[,1])) + sum.cl <- sum.cl[,1] + tree.order<- as.numeric(tree$tip.label) + vec.mat<-NULL + row.keep <- select.chi.classe(chisqtable, nbbycl) + toplot <- chisqtable[row.keep,] + lclasses <- list() + for (classe in 1:length(sum.cl)) { + ntoplot <- toplot[,classe] + ntoplot <- ntoplot[order(ntoplot, decreasing = TRUE)] + ntoplot <- round(ntoplot, 0) + ntoplot <- ntoplot[1:nbbycl] + #ntoplot <- ntoplot[order(ntoplot)] + #ntoplot <- ifelse(length(ntoplot) > nbbycl, ntoplot[1:nbbycl], ntoplot) + lclasses[[classe]] <- ntoplot + } + vec.mat <- matrix(1, nrow = 2, ncol = length(sum.cl)) + vec.mat[2,] <- 2:(length(sum.cl)+1) + layout(matrix(vec.mat, nrow=2, ncol=length(sum.cl)),heights=c(1,4)) + if (! bw) { + col <- rainbow(length(sum.cl))[as.numeric(tree$tip.label)] + colcloud <- rainbow(length(sum.cl)) + } + par(mar=c(1,0,0,0)) + label.ori<-tree[[2]] + if (!is.null(lab)) { + tree$tip.label <- lab + } else { + tree[[2]]<-paste('classe ',tree[[2]]) + } + plot.phylo(tree,label.offset=0.1,tip.col=col, type=type.dendro, direction = 'downwards', srt=90, adj = 0) + for (i in tree.order) { + par(mar=c(0,0,1,0),cex=0.7) + #wordcloud(names(lclasses[[i]]), lclasses[[i]], scale = c(1.5, 0.2), random.order=FALSE, colors = colcloud[i]) + yval <- 1.1 + plot(0,0,pch='', axes = FALSE) + vcex <- norm.vec(lclasses[[i]], 0.8, 3) + for (j in 1:length(lclasses[[i]])) { + yval <- yval-(strheight( names(lclasses[[i]])[j],cex=vcex[j])+0.02) + text(-0.9, yval, names(lclasses[[i]])[j], cex = vcex[j], col = colcloud[i], adj=0) + } + } + +} + +plot.dendro.cloud <- function(tree, classes, chisqtable, nbbycl = 60, type.dendro = "phylogram", from.cmd = FALSE, bw = FALSE, lab = NULL) { + library(wordcloud) + library(ape) + classes<-classes[classes!=0] + classes<-as.factor(classes) + sum.cl<-as.matrix(summary(classes, maxsum=1000000)) + sum.cl<-(sum.cl/colSums(sum.cl)*100) + sum.cl<-round(sum.cl,2) + sum.cl<-cbind(sum.cl,as.matrix(100-sum.cl[,1])) + sum.cl <- sum.cl[,1] + tree.order<- as.numeric(tree$tip.label) + vec.mat<-NULL + row.keep <- select.chi.classe(chisqtable, nbbycl) + toplot <- chisqtable[row.keep,] + lclasses <- list() + for (classe in 1:length(sum.cl)) { + ntoplot <- toplot[,classe] + ntoplot <- ntoplot[order(ntoplot, decreasing = TRUE)] + ntoplot <- round(ntoplot, 0) + ntoplot <- ntoplot[1:nbbycl] + ntoplot <- ntoplot[order(ntoplot)] + #ntoplot <- ifelse(length(ntoplot) > nbbycl, ntoplot[1:nbbycl], ntoplot) + lclasses[[classe]] <- ntoplot + } + for (i in 1:length(sum.cl)) vec.mat<-append(vec.mat,1) + v<-2 + for (i in 1:length(sum.cl)) { + vec.mat<-append(vec.mat,v) + v<-v+1 + } + layout(matrix(vec.mat,length(sum.cl),2),widths=c(1,2)) + if (! bw) { + col <- rainbow(length(sum.cl))[as.numeric(tree$tip.label)] + colcloud <- rainbow(length(sum.cl)) + } + par(mar=c(0,0,0,0)) + label.ori<-tree[[2]] + if (!is.null(lab)) { + tree$tip.label <- lab + } else { + tree[[2]]<-paste('classe ',tree[[2]]) + } + plot.phylo(tree,label.offset=0.1,tip.col=col, type=type.dendro) + for (i in rev(tree.order)) { + par(mar=c(0,0,1,0),cex=0.9) + wordcloud(names(lclasses[[i]]), lclasses[[i]], scale = c(4, 0.8), random.order=FALSE, colors = colcloud[i]) + } +} + plot.dendropr <- function(tree, classes, type.dendro="phylogram", histo=FALSE, from.cmd=FALSE, bw=FALSE, lab = NULL, tclasse=TRUE) { classes<-classes[classes!=0] classes<-as.factor(classes) - sum.cl<-as.matrix(summary(classes)) + sum.cl<-as.matrix(summary(classes, maxsum=1000000)) sum.cl<-(sum.cl/colSums(sum.cl)*100) sum.cl<-round(sum.cl,2) sum.cl<-cbind(sum.cl,as.matrix(100-sum.cl[,1])) tree.order<- as.numeric(tree$tip.label) + + if (! bw) { - col = rainbow(nrow(sum.cl))[as.numeric(tree$tip.label)] + col <- rainbow(nrow(sum.cl))[as.numeric(tree$tip.label)] col.bars <- col col.pie <- rainbow(nrow(sum.cl)) #col.vec<-rainbow(nrow(sum.cl))[as.numeric(tree[[2]])] diff --git a/Rscripts/prototypical.R b/Rscripts/prototypical.R new file mode 100644 index 0000000..b5f58fd --- /dev/null +++ b/Rscripts/prototypical.R @@ -0,0 +1,65 @@ + +norm.vec <- function(v, min, max) { + + vr <- range(v) + if (vr[1]==vr[2]) { + fac <- 1 + } else { + fac <- (max-min)/(vr[2]-vr[1]) + } + (v-vr[1]) * fac + min +} + + +#x a table with freq and rank, rownames are words + +prototypical <- function(x, mfreq = NULL, mrank = NULL, cexrange=c(0.8, 3), cexalpha = c(0.5, 1), labfreq = TRUE, labrank = TRUE, cloud = TRUE) { + library(wordcloud) + if (is.null(mfreq)) { + mfreq <- sum(x[,1]) / nrow(x) + } + if (is.null(mrank)) { + mrank <- sum(x[,1] * x[,2]) / sum(x[,1]) + } + print(mfreq) + print(mrank) + + x <- x[order(x[,1], decreasing = TRUE),] + x[,2] <- round(x[,2],1) + ZN <- which(x[,1] >= mfreq & x[,2] <= mrank) + FP <- which(x[,1] >= mfreq & x[,2] > mrank) + SP <- which(x[,1] < mfreq & x[,2] > mrank) + CE <- which(x[,1] < mfreq & x[,2] <= mrank) + mfreq <- round(mfreq, 2) + mrank <- round(mrank, 2) + toplot <- list(ZN, FP, SP, CE) + labcex <- norm.vec(x[,1], cexrange[1], cexrange[2]) + labalpha <- norm.vec(x[,2], cexalpha[2], cexalpha[1]) + labalpha <- rgb(0.1,0.2,0.1, labalpha) + par(oma=c(1,3,3,1)) + layout(matrix(c(1,4,2,3), nrow=2)) + ti <- c("Zone du noyau", "Première périphérie", "Seconde périphérie", "Elements contrastés") + for (i in 1:length(toplot)) { + rtoplot <- toplot[[i]] + if (length(rtoplot)) { + par(mar=c(0,0,2,0)) + if (cloud) { + labels <- paste(rownames(x)[rtoplot], x[rtoplot,1], x[rtoplot,2], sep='-') + wordcloud(labels, x[rtoplot,1], scale = c(max(labcex[rtoplot]), min(labcex[rtoplot])), color = labalpha[rtoplot], random.order=FALSE, rot.per = 0) + box() + } else { + yval <- 1.1 + plot(0,0,pch='', axes = FALSE) + k<- 0 + for (val in rtoplot) { + yval <- yval-(strheight(rownames(x)[val],cex=labcex[val])+0.02) + text(-0.9, yval, paste(rownames(x)[val], x[val,1], x[val,2], sep = '-'), cex = labcex[val], col = labalpha[val], adj=0) + } + box() + } + title(ti[i]) + } + } + mtext(paste('<', mfreq, ' Fréquences ', '>=', mfreq, sep = ' '), side=2, line=1, cex=1, col="red", outer=TRUE) + mtext(paste('<', mrank, ' Rangs ', '>=', mrank, sep = ' '), side=3, line=1, cex=1, col="red", outer=TRUE) +} diff --git a/analysematrix.py b/analysematrix.py index 2a3c88d..7b861a6 100644 --- a/analysematrix.py +++ b/analysematrix.py @@ -59,7 +59,7 @@ class AnalyseMatrix : pass def doR(self, Rscript, wait = False, dlg = None, message = '') : - log.info('R code...') + #log.info('R code...') pid = exec_rcode(self.ira.RPath, Rscript, wait = wait) while pid.poll() is None : if dlg : diff --git a/chemins.py b/chemins.py index 847e5c7..6b124ef 100644 --- a/chemins.py +++ b/chemins.py @@ -62,6 +62,23 @@ def ffr(filename): def FFF(filename): return filename.replace('\\', '/') +RscriptsPath = { + 'Rfunct': 'Rfunct.R', + 'chdfunct': 'chdfunct.R', + 'Rgraph': 'Rgraph.R', + 'plotafcm': 'plotafcm.R', + 'afc_graph' : 'afc_graph.R', + #'CHD': 'CHDPOND.R', + 'CHD': 'CHD.R', + #'CHD' : 'NCHD.R', + 'chdtxt': 'chdtxt.R', + 'chdquest': 'chdquest.R', + 'pamtxt' : 'pamtxt.R', + 'anacor' : 'anacor.R', + #'anacor' : 'Nanacor.R', + 'simi' : 'simi.R', + } + def ConstructRscriptsPath(AppliPath): RScriptsPath = os.path.join(AppliPath, 'Rscripts') #print('@@@@@@@@@@@PONDERATION CHDPOND.R@@@@@@@@@@@@@@@@') diff --git a/dialog.py b/dialog.py index 314700d..4b79f88 100755 --- a/dialog.py +++ b/dialog.py @@ -2687,3 +2687,119 @@ class FreqDialog(wx.Dialog): # end wxGlade +class ProtoDial ( wx.Dialog ): + + def __init__( self, parent, headers ): + wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = u'Préférences', pos = wx.DefaultPosition, size = wx.DefaultSize, style = wx.DEFAULT_DIALOG_STYLE ) + + self.SetSizeHintsSz( wx.Size( 200,300 ), wx.DefaultSize ) + + bSizer1 = wx.BoxSizer( wx.VERTICAL ) + + fgSizer1 = wx.FlexGridSizer( 0, 2, 0, 0 ) + fgSizer1.SetFlexibleDirection( wx.BOTH ) + fgSizer1.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED ) + + self.m_staticText1 = wx.StaticText( self, wx.ID_ANY, u"Variables", wx.DefaultPosition, wx.DefaultSize, 0 ) + self.m_staticText1.Wrap( -1 ) + fgSizer1.Add( self.m_staticText1, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, 5 ) + + self.m_staticText2 = wx.StaticText( self, wx.ID_ANY, u"Rangs", wx.DefaultPosition, wx.DefaultSize, 0 ) + self.m_staticText2.Wrap( -1 ) + fgSizer1.Add( self.m_staticText2, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, 5 ) + + variablesChoices = headers + self.variables = wx.ListBox( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, variablesChoices, wx.LB_MULTIPLE ) + self.variables.SetMinSize( wx.Size( 150,-1 ) ) + + fgSizer1.Add( self.variables, 0, wx.ALL|wx.EXPAND, 5 ) + + rangsChoices = headers + self.rangs = wx.ListBox( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, rangsChoices, wx.LB_MULTIPLE ) + self.rangs.SetMinSize( wx.Size( 150,-1 ) ) + + fgSizer1.Add( self.rangs, 0, wx.ALL|wx.EXPAND, 5 ) + + + bSizer1.Add( fgSizer1, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5 ) + + fgSizer3 = wx.FlexGridSizer( 0, 2, 0, 0 ) + fgSizer3.SetFlexibleDirection( wx.BOTH ) + fgSizer3.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED ) + + self.m_staticText3 = wx.StaticText( self, wx.ID_ANY, u"Limite fréquence", wx.DefaultPosition, wx.DefaultSize, 0 ) + self.m_staticText3.Wrap( -1 ) + fgSizer3.Add( self.m_staticText3, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 ) + + bSizer2 = wx.BoxSizer( wx.HORIZONTAL ) + + choix_freqChoices = [ u"automatique (moyenne)", u"manuelle" ] + self.choix_freq = wx.Choice( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, choix_freqChoices, 0 ) + self.choix_freq.SetSelection( 0 ) + bSizer2.Add( self.choix_freq, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 ) + + self.freqlim = wx.TextCtrl( self, wx.ID_ANY, u"0", wx.DefaultPosition, wx.DefaultSize, wx.TE_CENTRE ) + self.freqlim.Enable( False ) + self.freqlim.SetMinSize( wx.Size( 100,-1 ) ) + + bSizer2.Add( self.freqlim, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 ) + + + fgSizer3.Add( bSizer2, 1, wx.EXPAND, 5 ) + + self.m_staticText4 = wx.StaticText( self, wx.ID_ANY, u"Limite rang", wx.DefaultPosition, wx.DefaultSize, 0 ) + self.m_staticText4.Wrap( -1 ) + fgSizer3.Add( self.m_staticText4, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 ) + + bSizer21 = wx.BoxSizer( wx.HORIZONTAL ) + + choix_rangChoices = [ u"automatique (moyenne)", u"manuelle" ] + self.choix_rang = wx.Choice( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, choix_rangChoices, 0 ) + self.choix_rang.SetSelection( 0 ) + bSizer21.Add( self.choix_rang, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 ) + + self.ranglim = wx.TextCtrl( self, wx.ID_ANY, u"0", wx.DefaultPosition, wx.DefaultSize, wx.TE_CENTRE ) + self.ranglim.Enable( False ) + self.ranglim.SetMinSize( wx.Size( 100,-1 ) ) + + bSizer21.Add( self.ranglim, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 ) + + + fgSizer3.Add( bSizer21, 1, wx.EXPAND, 5 ) + + self.m_staticText5 = wx.StaticText( self, wx.ID_ANY, u"Fréquence minimum", wx.DefaultPosition, wx.DefaultSize, 0 ) + self.m_staticText5.Wrap( -1 ) + fgSizer3.Add( self.m_staticText5, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 ) + + self.m_textCtrl4 = wx.TextCtrl( self, wx.ID_ANY, u"2", wx.DefaultPosition, wx.DefaultSize, wx.TE_CENTRE ) + fgSizer3.Add( self.m_textCtrl4, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, 5 ) + + + bSizer1.Add( fgSizer3, 1, wx.EXPAND, 5 ) + + m_sdbSizer1 = wx.StdDialogButtonSizer() + self.m_sdbSizer1OK = wx.Button( self, wx.ID_OK ) + m_sdbSizer1.AddButton( self.m_sdbSizer1OK ) + self.m_sdbSizer1Cancel = wx.Button( self, wx.ID_CANCEL ) + m_sdbSizer1.AddButton( self.m_sdbSizer1Cancel ) + m_sdbSizer1.Realize(); + + bSizer1.Add( m_sdbSizer1, 0, wx.EXPAND, 5 ) + + self.SetSizer( bSizer1 ) + self.Layout() + bSizer1.Fit( self ) + + self.Centre( wx.BOTH ) + + # Connect Events + self.choix_freq.Bind( wx.EVT_CHOICE, self.UpdateText ) + self.choix_rang.Bind( wx.EVT_CHOICE, self.UpdateText ) + + def __del__( self ): + pass + + + # Virtual event handlers, overide them in your derived class + def UpdateText( self, event ): + event.Skip() diff --git a/dictionnaires/expression_gr.txt b/dictionnaires/expression_gr.txt new file mode 100644 index 0000000..e69de29 diff --git a/dictionnaires/lexique_gr.txt b/dictionnaires/lexique_gr.txt new file mode 100644 index 0000000..e59ea82 --- /dev/null +++ b/dictionnaires/lexique_gr.txt @@ -0,0 +1,558 @@ +και και sw +του του sw +το το sw +της της sw +η η sw +την την sw +ο ο sw +από από sw +με με sw +να να sw +που που sw +των των sw +στην στην sw +για για sw +τον τον sw +σε σε sw +στο στο sw +τα τα sw +οι οι sw +τη τη sw +τους τους sw +στη στη sw +τις τις sw +α α sw +ως ως sw +στις στις sw +ή ή sw +ότι ότι sw +στον στον sw +στα στα sw +μια μια sw +π π sw +β β sw +σ σ sw +ενώ ενώ sw +χ χ sw +οποία οποία sw +αν αν sw +δ δ sw +γ γ sw +στους στους sw +ου ου sw +ε ε sw +μία μία sw +κ κ sw +μ μ sw +ένας ένας sw +πιο πιο sw +ν ν sw +σελ σελ sw +ς ς sw +πως πως sw +ενός ενός sw +μα μα sw +ος ος sw +αυτά αυτά sw +κή κή sw +κός κός sw +μου μου sw +σαν σαν sw +δε δε sw +υπό υπό sw +επί επί sw +κι κι sw +εν εν sw +ι ι sw +μη μη sw +μας μας sw +έως έως sw +αφού αφού sw +μιας μιας sw +τ τ sw +προ προ sw +κό κό sw +αυτές αυτές sw +τόσο τόσο sw +ας ας sw +όσο όσο sw +κάτι κάτι sw +ανά ανά sw +τι τι sw +μέσω μέσω sw +λα λα sw +εκ εκ sw +αυτός αυτός sw +είτε είτε sw +μην μην sw +παρά παρά sw +περί περί sw +εδώ εδώ sw +αχα αχα sw +κής κής sw +ήδη ήδη sw +ντε ντε sw +σου σου sw +απ απ sw +ούτε ούτε sw +φ φ sw +αυτού αυτού sw +αυτών αυτών sw +εκδ εκδ sw +όλη όλη sw +χλμ χλμ sw +άνω άνω sw +πάλι πάλι sw +ης ης sw +κού κού sw +εκατομ εκατομ sw +όλοι όλοι sw +σας σας sw +καὶ καὶ sw +λ λ sw +όλο όλο sw +θ θ sw +οποίου οποίου sw +γι γι sw +εις εις sw +αυτούς αυτούς sw +κλπ κλπ sw +εξ εξ sw +κατ κατ sw +αυτοί αυτοί sw +στ στ sw +τομ τομ sw +φκ φκ sw +αντί αντί sw +ό ό sw +αι αι sw +ρ ρ sw +ζ ζ sw +ά ά sw +κά κά sw +απο απο sw +υ υ sw +εάν εάν sw +κές κές sw +πώς πώς sw +ημ ημ sw +ιι ιι sw +κα κα sw +αλ αλ sw +δὲ δὲ sw +αγ αγ sw +βπ βπ sw +ελ ελ sw +δια δια sw +βλ βλ sw +κών κών sw +και και sw +του του sw +της της sw +το το sw +να να sw +την την sw +η η sw +με με sw +που που sw +των των sw +για για sw +ότι ότι sw +τους τους sw +τα τα sw +δεν δεν sw +είναι είναι sw +ο ο sw +από από sw +τη τη sw +οι οι sw +σε σε sw +τον τον sw +τις τις sw +στην στην sw +στο στο sw +απ απ sw +μας μας sw +κι κι sw +στη στη sw +θα θα sw +μια μια sw +αλλά αλλά sw +στα στα sw +αυτό αυτό sw +ένα ένα sw +όχι όχι sw +ή ή sw +μόνο μόνο sw +αυτή αυτή sw +σαν σαν sw +ήταν ήταν sw +στις στις sw +στον στον sw +όπως όπως sw +αν αν sw +όμως όμως sw +σήμερα σήμερα sw +ενώ ενώ sw +γιατί γιατί sw +έχει έχει sw +ν ν sw +λοιπόν λοιπόν sw +σ σ sw +καί καί sw +αφού αφού sw +ούτε ούτε sw +όσο όσο sw +χωρίς χωρίς sw +μετά μετά sw +τόσο τόσο sw +είχε είχε sw +μπορεί μπορεί sw +χώρα χώρα sw +στους στους sw +έτσι έτσι sw +είτε είτε sw +δύο δύο sw +ακόμη ακόμη sw +πιο πιο sw +έχουν έχουν sw +αυτά αυτά sw +όπου όπου sw +όταν όταν sw +πάνω πάνω sw +άλλη άλλη sw +πάρα πάρα sw +χρόνια χρόνια sw +όλα όλα sw +αυτοί αυτοί sw +επί επί sw +αυτές αυτές sw +ένας ένας sw +οποία οποία sw +μέχρι μέχρι sw +βέβαια βέβαια sw +κατά κατά sw +σημερινή σημερινή sw +μη μη sw +αυτός αυτός sw +εδώ εδώ sw +τότε τότε sw +δήθεν δήθεν sw +αυτήν αυτήν sw +πρέπει πρέπει sw +πού πού sw +μην μην sw +ίδια ίδια sw +υπάρχει υπάρχει sw +σας σας sw +δηλαδή δηλαδή sw +κανένα κανένα sw +γι γι sw +πολύ πολύ sw +μ μ sw +αυτής αυτής sw +όλες όλες sw +παρά παρά sw +όλοι όλοι sw +τι τι sw +κάθε κάθε sw +εμείς εμείς sw +πριν πριν sw +καμιά καμιά sw +όσα όσα sw +κ κ sw +δε δε sw +τίς τίς sw +προς προς sw +ποτέ ποτέ sw +παρ παρ sw +κυρίως κυρίως sw +αυτούς αυτούς sw +έχουμε έχουμε sw +μιας μιας sw +κανένας κανένας sw +κάνει κάνει sw +πίσω πίσω sw +πια πια sw +είχαν είχαν sw +αμέσως αμέσως sw +έναν έναν sw +έγινε έγινε sw +γίνεται γίνεται sw +άλλους άλλους sw +άλλο άλλο sw +τίποτε τίποτε sw +πρόκειται πρόκειται sw +ακριβώς ακριβώς sw +ίδιο ίδιο sw +χιλιάδες χιλιάδες sw +περίπου περίπου sw +μπροστά μπροστά sw +επειδή επειδή sw +βρίσκεται βρίσκεται sw +υπάρχουν υπάρχουν sw +τουλάχιστον τουλάχιστον sw +πούναι πούναι sw +οποιαδήποτε οποιαδήποτε sw +πάλι πάλι sw +ενός ενός sw +είχαμε είχαμε sw +ανάμεσα ανάμεσα sw +άλλες άλλες sw +πρώτη πρώτη sw +πρόσφατα πρόσφατα sw +κάνουν κάνουν sw +δεύτερο δεύτερο sw +δεκάδες δεκάδες sw +h h sw +πρώην πρώην sw +πάντα πάντα sw +μόνη μόνη sw +λόγω λόγω sw +αυτών αυτών sw +άλλωστε άλλωστε sw +άλλων άλλων sw +υπήρξε υπήρξε sw +ορισμένες ορισμένες sw +οποίο οποίο sw +δυο δυο sw +ας ας sw +όσοι όσοι sw +σχεδόν σχεδόν sw +μπορούν μπορούν sw +μέρες μέρες sw +μάλιστα μάλιστα sw +δ δ sw +έγιναν έγιναν sw +όλη όλη sw +κάτι κάτι sw +εν εν sw +άλλοι άλλοι sw +φαίνεται φαίνεται sw +τρεις τρεις sw +τρίτου τρίτου sw +πώς πώς sw +λένε λένε sw +κλπ κλπ sw +κάποιος κάποιος sw +κάποια κάποια sw +εκτός εκτός sw +δισεκατομμύρια δισεκατομμύρια sw +γίνει γίνει sw +απέναντι απέναντι sw +σημερινό σημερινό sw +πλέον πλέον sw +πέρα πέρα sw +κανείς κανείς sw +καν καν sw +αυτού αυτού sw +έστω έστω sw +όλους όλους sw +φορές φορές sw +φορά φορά sw +πρόσφατη πρόσφατη sw +περί περί sw +νάχει νάχει sw +νάναι νάναι sw +μεγάλο μεγάλο sw +μεγάλη μεγάλη sw +εξής εξής sw +αυτόν αυτόν sw +έκανε έκανε sw +τέτοιο τέτοιο sw +σημερινές σημερινές sw +π π sw +ορισμένα ορισμένα sw +οποίες οποίες sw +οποίας οποίας sw +καμία καμία sw +διάφορα διάφορα sw +τώρα τώρα sw +τέτοια τέτοια sw +τέτια τέτια sw +τ τ sw +πιστεύουμε πιστεύουμε sw +μία μία sw +θάχε θάχε sw +θ θ sw +βρίσκονται βρίσκονται sw +άλλα άλλα sw +όλων όλων sw +ψέμα ψέμα sw +σχετικά σχετικά sw +πούμε πούμε sw +ποιος ποιος sw +λέγαμε λέγαμε sw +κάποιο κάποιο sw +ιδιαίτερα ιδιαίτερα sw +εκατομμύρια εκατομμύρια sw +ε ε sw +δισεκατομμυρίων δισεκατομμυρίων sw +γ γ sw +αλλού αλλού sw +ίσως ίσως sw +ώστε ώστε sw +όσους όσους sw +όσον όσον sw +τρίτο τρίτο sw +ποιον ποιον sw +μόλις μόλις sw +μεγάλες μεγάλες sw +δεύτερη δεύτερη sw +έχοντας έχοντας sw +έκαναν έκαναν sw +ότου ότου sw +όντας όντας sw +ό ό sw +τρίτη τρίτη sw +συνεχείς συνεχείς sw +συνήθως συνήθως sw +συνέχεια συνέχεια sw +πρώτο πρώτο sw +πέντε πέντε sw +ορισμένοι ορισμένοι sw +μέχρις μέχρις sw +καθένας καθένας sw +καθένα καθένα sw +θέλει θέλει sw +θάταν θάταν sw +επίσης επίσης sw +εκατομμυρίων εκατομμυρίων sw +εισαγγελέα εισαγγελέα sw +β β sw +έμμεση έμμεση sw +άμεσης άμεσης sw +άλλος άλλος sw +eνώ eνώ sw +όλο όλο sw +χιλιάδων χιλιάδων sw +φ φ sw +τί τί sw +στ στ sw +πρώτος πρώτος sw +πρώτα πρώτα sw +πούχουν πούχουν sw +πούχει πούχει sw +ποιο ποιο sw +ποια ποια sw +οποίους οποίους sw +νάχουν νάχουν sw +μεγαλύτερα μεγαλύτερα sw +μεγάλων μεγάλων sw +μεγάλα μεγάλα sw +μήπως μήπως sw +μήνα μήνα sw +λ λ sw +κάπως κάπως sw +ελλ ελλ sw +εκ εκ sw +δεκαετίες δεκαετίες sw +δεκαετία δεκαετία sw +απόλυτα απόλυτα sw +α α sw +ίδιος ίδιος sw +έξω έξω sw +άρα άρα sw +τρία τρία sw +τησ τησ sw +πάσης πάσης sw +πάντες πάντες sw +οποίου οποίου sw +ολόκληρη ολόκληρη sw +μπορούσαν μπορούσαν sw +μεταξύ μεταξύ sw +μεγαλύτερη μεγαλύτερη sw +λέμε λέμε sw +χρειάζεται χρειάζεται sw +χ χ sw +υπό υπό sw +τριών τριών sw +τούτοις τούτοις sw +πρόσφατες πρόσφατες sw +πούχε πούχε sw +λίγο λίγο sw +εξ εξ sw +εκατοντάδων εκατοντάδων sw +εκατοντάδες εκατοντάδες sw +απλή απλή sw +ακόμα ακόμα sw +τισ τισ sw +τέτιο τέτιο sw +τέτιες τέτιες sw +πόσο πόσο sw +παντού παντού sw +ορισμένους ορισμένους sw +οποιοσδήποτε οποιοσδήποτε sw +λλοι λλοι sw +επιπλέον επιπλέον sw +δικό δικό sw +δικούς δικούς sw +δι δι sw +δεκάδων δεκάδων sw +ήδη ήδη sw +άλλου άλλου sw +tόσο tόσο sw +kι kι sw +aν aν sw +υ υ sw +τέτοιες τέτοιες sw +πράγματι πράγματι sw +ποιοι ποιοι sw +πιστεύει πιστεύει sw +παραπάνω παραπάνω sw +οποιασδήποτε οποιασδήποτε sw +μπορέσει μπορέσει sw +μικρό μικρό sw +μερικές μερικές sw +μεγαλύτερες μεγαλύτερες sw +λες λες sw +κάποιου κάποιου sw +κάνοντας κάνοντας sw +ιδίως ιδίως sw +θέλουν θέλουν sw +θάπρεπε θάπρεπε sw +εκεί εκεί sw +ίδιους ίδιους sw +έπρεπε έπρεπε sw +όποιον όποιον sw +όποιο όποιο sw +τρισεκατομμύριο τρισεκατομμύριο sw +τρίτος τρίτος sw +τουσ τουσ sw +στισ στισ sw +σου σου sw +ρα ρα sw +ρ ρ sw +πως πως sw +πολλές πολλές sw +παρότι παρότι sw +πέρσι πέρσι sw +οποίων οποίων sw +νάγινε νάγινε sw +μπορείτε μπορείτε sw +μισού μισού sw +μισή μισή sw +μεγάλης μεγάλης sw +μακριά μακριά sw +λλος λλος sw +λίγες λίγες sw +λίγα λίγα sw +κανέναν κανέναν sw +θάναι θάναι sw +εξίσου εξίσου sw +εντούτοις εντούτοις sw +δια δια sw +δηλ δηλ sw +γύρω γύρω sw +γίνονταν γίνονταν sw +αύριο αύριο sw +αργότερα αργότερα sw +ήξερε ήξερε sw +έχετε έχετε sw +tο tο sw +mε mε sw +eτσι eτσι sw +aπ aπ sw +5ης 5ης sw +50% 50% sw +μή μή sw diff --git a/images/splash.png b/images/splash.png index 5c56b0d..cab4a7b 100644 Binary files a/images/splash.png and b/images/splash.png differ diff --git a/images/splash.svg b/images/splash.svg index 4804629..f7759e2 100644 --- a/images/splash.svg +++ b/images/splash.svg @@ -144,10 +144,10 @@ inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" - inkscape:window-width="1155" - inkscape:window-height="998" + inkscape:window-width="1018" + inkscape:window-height="1030" inkscape:window-x="0" - inkscape:window-y="27" + inkscape:window-y="18" inkscape:window-maximized="0" /> @@ -303,7 +303,7 @@ x="110.10663" y="146.45171" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;font-family:gargi;-inkscape-font-specification:gargi Medium" />Version 0.6 alpha 2 Version 0.6 alpha 4 = self.parametres['freqmin']] + with open(self.pathout['table.csv'], 'w') as f : + f.write('\n'.join(['\t'.join(['"' + val[0] +'"', `val[1]`, `val[2]`]) for val in res])) + self.parent.tableau.parametres = self.parent.tableau.parametre + self.parent.tableau.save_tableau(self.pathout['analyse.db']) + + def DoR(self) : + script = ProtoScript(self) + script.make_script() + self.doR(script.scriptout) diff --git a/textwordcloud.py b/textwordcloud.py index 908ba89..bc875bc 100644 --- a/textwordcloud.py +++ b/textwordcloud.py @@ -43,8 +43,8 @@ class WordCloud(AnalyseText): else : return 'NOK' - def make_option(self) : - dial = PrefWordCloud(self.ira) + def make_option(self, fromcluster = False) : + dial = PrefWordCloud(self.ira, fromcluster) dial.CenterOnParent() res = dial.ShowModal() if res == wx.ID_OK : @@ -61,6 +61,8 @@ class WordCloud(AnalyseText): self.parametres['col_bg'] = dial.color_bg.GetColour() self.parametres['mode'] = dial.typeformeschoice.GetSelection() self.parametres['svg'] = svg + if fromcluster : + self.parametres['indice'] = dial.indice.GetSelection() outgraph = os.path.join(os.path.dirname(self.pathout['zipf.png']), 'nuage_') nb = 1 if svg : @@ -84,11 +86,11 @@ class ClusterCloud(WordCloud) : self.parametres['type'] = 'clustercloud' #FIXME limit = 2 - res = self.make_option() + res = self.make_option(True) if res == wx.ID_OK : prof = self.parametres['clusterprof'] del self.parametres['clusterprof'] - if self.parametres.get('unit', 0) == 0 : + if self.parametres['indice'] == 0 : tokeep = 1 else : tokeep = 2