Statistics
| Revision:

root / tmp / org.txm.groovy.core / src / groovy / org / txm / test / AFC.groovy @ 615

History | View | Annotate | Download (4.7 kB)

1
/**
2
 * Main.
3
 *
4
 * @param args the args
5
 */
6
// Copyright © 2010-2013 ENS de Lyon.
7
// Copyright © 2007-2010 ENS de Lyon, CNRS, INRP, University of
8
// Lyon 2, University of Franche-Comté, University of Nice
9
// Sophia Antipolis, University of Paris 3.
10
// 
11
// The TXM platform is free software: you can redistribute it
12
// and/or modify it under the terms of the GNU General Public
13
// License as published by the Free Software Foundation,
14
// either version 2 of the License, or (at your option) any
15
// later version.
16
// 
17
// The TXM platform is distributed in the hope that it will be
18
// useful, but WITHOUT ANY WARRANTY; without even the implied
19
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
20
// PURPOSE. See the GNU General Public License for more
21
// details.
22
// 
23
// You should have received a copy of the GNU General
24
// Public License along with the TXM platform. If not, see
25
// http://www.gnu.org/licenses.
26
// 
27
// 
28
// 
29
// $LastChangedDate:$
30
// $LastChangedRevision:$
31
// $LastChangedBy:$ 
32
//
33
package org.txm.test
34

    
35
import org.txm.Toolbox
36
import org.txm.ca.core.functions.CA
37
import org.txm.searchengine.cqp.clientExceptions.CqiClientException
38
import org.txm.searchengine.cqp.clientExceptions.InvalidCqpIdException
39
import org.txm.searchengine.cqp.corpus.*
40
import org.txm.searchengine.cqp.corpus.query.*
41
import org.apache.commons.lang.time.StopWatch
42

    
43
// TODO: Auto-generated Javadoc
44
/* (non-Javadoc)
45
 * @see groovy.lang.Script#run()
46
 */
47
def timer = new StopWatch()
48

    
49
                // on récupère le corpus VOEUX
50
                //EN: let's get the VOEUX corpus
51
                def voeux = CorpusManager.getCorpusManager().getCorpus("VOEUX")
52

    
53
timer.start()
54

    
55
                // on crée une partition sur les textes avec comme propriété discriminante l'id du texte
56
                //EN: let create a partition on texts with their ID's
57
                def text_su = voeux.getStructuralUnit("text")
58
                def text_id = text_su.getProperty("id")
59
                def textes = voeux.createPartition(text_su, text_id)
60
                
61
timer.stop()
62
println "Création de la partition : "+timer.toString()        
63
timer.reset()
64

    
65
                // choisir la propriété lexicale pour construire la table lexicale
66
                //EN: choose the lexical property to build the lexical table
67
                def prop = voeux.getProperty("lemme") 
68

    
69
timer.start()
70

    
71
                // on crée une table lexicale sans les hapax
72
                //EN: let create a lexical table without hapax legomenon
73
                def table = textes.getLexicalTable(prop, 2)
74
                
75
timer.stop()
76
println "Création de la table lexicale des lemmes : "+timer.toString()
77
timer.reset()                
78
        
79
timer.start()
80
                // on fait une afc
81
                //EN: compute the CA
82
                def ca = new CA(table)
83
                ca.compute();
84

    
85
timer.stop()
86
println "calcul de l'AFC 1 : "+timer.toString()                
87
timer.reset()
88

    
89
timer.start()
90

    
91
                // les valeurs propres
92
                //EN: singular values
93
                ca.getSingularValues()
94
                
95
timer.stop()
96
println "récupération des valeurs propres SV1 : "+timer.toString()        
97
timer.reset()        
98

    
99
timer.start()
100

    
101
                // les données de colonnes produites par le package CA de R
102
                //EN: column data produced by the CA R package
103
                ca.getColsCoords() 
104
                ca.getColsDist()
105
                ca.getColsInertia()
106
                ca.getColsMass()
107
                
108
timer.stop()
109
println "récupération de toutes les infos de colonnes1 : "+timer.toString()
110
timer.reset()
111

    
112
timer.start()
113

    
114
                // les données de lignes produites par le package CA de R
115
                //EN: row data produced by the CA R package
116
                ca.getRowsCoords()
117
                ca.getRowsDist()
118
                ca.getRowsInertia()
119
                ca.getRowsMass()
120
                
121
timer.stop()
122
println "récupération de toutes les infos de lignes1 : "+timer.toString()
123
timer.reset()
124

    
125
timer.start()
126

    
127
// on joue un peu avec la table EN: let's play with the table
128
table.cut(3000)                                                 // pas plus de 3000 valeurs, EN: not more than 3000 values
129
table.filter(table.getFreqs(), 2000, 5) // coupe a 2000 valeurs et Fmin=5, EN: cut to 2000 values and Fmin=5
130

    
131
timer.stop()
132
println "On filtre la table lexicale en fréquence et en nombre de lignes : "+timer.toString()
133
timer.reset()
134

    
135
timer.start()
136

    
137
// on fait une afc
138
//EN: we compute a CA
139
def ca2 = new CA(table)
140
ca2.compute();
141
timer.stop()
142
println "calcul de la deuxième AFC : "+timer.toString()                
143
timer.reset()
144

    
145
timer.start()
146

    
147
// les valeurs propres
148
//EN: singular values
149
ca2.getSingularValues()
150

    
151
timer.stop()
152
println "récupération des valeurs propres SV2 : "+timer.toString()        
153
timer.reset()        
154

    
155
timer.start()
156

    
157
// les données de colonnes produites par le package CA de R
158
//EN: column data produced by the CA R package
159
ca2.getColsCoords() 
160
ca2.getColsDist()
161
ca2.getColsInertia()
162
ca2.getColsMass()
163

    
164
timer.stop()
165
println "récupération de toutes les infos de colonnes2 : "+timer.toString()
166
timer.reset()
167

    
168
timer.start()
169

    
170
// les données de lignes produites par le package CA de R
171
//EN: row data produced by the CA R package
172
ca2.getRowsCoords()
173
ca2.getRowsDist()
174
ca2.getRowsInertia()
175
ca2.getRowsMass()
176

    
177
timer.stop()
178
println "récupération de toutes les infos de lignes2 : "+timer.toString()
179
timer.reset()