Revision 479 tmp/org.txm.groovy.core/src/groovy/org/txm/test/AFC.groovy

AFC.groovy (revision 479)
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
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:$ 
34 32
//
35
//import org.txm.Toolbox
36
//import org.txm.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.txm.stat.StatException
42
//import org.txm.stat.data.LexicalTable
43
//import org.apache.commons.lang.time.StopWatch
44
//
45
//// TODO: Auto-generated Javadoc
46
///* (non-Javadoc)
47
// * @see groovy.lang.Script#run()
48
// */
49
//def timer = new StopWatch()
50
//
51
//		// on récupère le corpus VOEUX
52
//		//EN: let's get the VOEUX corpus
53
//		def voeux = CorpusManager.getCorpusManager().getCorpus("VOEUX")
54
//
55
//timer.start()
56
//
57
//		// on crée une partition sur les textes avec comme propriété discriminante l'id du texte
58
//		//EN: let create a partition on texts with their ID's
59
//		def text_su = voeux.getStructuralUnit("text")
60
//		def text_id = text_su.getProperty("id")
61
//		def textes = voeux.createPartition(text_su, text_id)
62
//		
63
//timer.stop()
64
//println "Création de la partition : "+timer.toString()	
65
//timer.reset()
66
//
67
//		// choisir la propriété lexicale pour construire la table lexicale
68
//		//EN: choose the lexical property to build the lexical table
69
//		def prop = voeux.getProperty("lemme") 
70
//
71
//timer.start()
72
//
73
//		// on crée une table lexicale sans les hapax
74
//		//EN: let create a lexical table without hapax legomenon
75
//		def table = textes.getLexicalTable(prop, 2)
76
//		
77
//timer.stop()
78
//println "Création de la table lexicale des lemmes : "+timer.toString()
79
//timer.reset()		
80
//	
81
//timer.start()
82
//		// on fait une afc
83
//		//EN: compute the CA
84
//		def ca = new CA(table)
85
//		ca.processFromTable();
86
//
87
//timer.stop()
88
//println "calcul de l'AFC 1 : "+timer.toString()		
89
//timer.reset()
90
//
91
//timer.start()
92
//
93
//		// les valeurs propres
94
//		//EN: singular values
95
//		ca.getSingularValues()
96
//		
97
//timer.stop()
98
//println "récupération des valeurs propres SV1 : "+timer.toString()	
99
//timer.reset()	
100
//
101
//timer.start()
102
//
103
//		// les données de colonnes produites par le package CA de R
104
//		//EN: column data produced by the CA R package
105
//		ca.getColsCoords() 
106
//		ca.getColsDist()
107
//		ca.getColsInertia()
108
//		ca.getColsMass()
109
//		
110
//timer.stop()
111
//println "récupération de toutes les infos de colonnes1 : "+timer.toString()
112
//timer.reset()
113
//
114
//timer.start()
115
//
116
//		// les données de lignes produites par le package CA de R
117
//		//EN: row data produced by the CA R package
118
//		ca.getRowsCoords()
119
//		ca.getRowsDist()
120
//		ca.getRowsInertia()
121
//		ca.getRowsMass()
122
//		
123
//timer.stop()
124
//println "récupération de toutes les infos de lignes1 : "+timer.toString()
125
//timer.reset()
126
//
127
//timer.start()
128
//
129
//// on joue un peu avec la table EN: let's play with the table
130
//table.cut(3000) 						// pas plus de 3000 valeurs, EN: not more than 3000 values
131
//table.filter(table.getFreqs(), 2000, 5) // coupe a 2000 valeurs et Fmin=5, EN: cut to 2000 values and Fmin=5
132
//
133
//timer.stop()
134
//println "On filtre la table lexicale en fréquence et en nombre de lignes : "+timer.toString()
135
//timer.reset()
136
//
137
//timer.start()
138
//
139
//// on fait une afc
140
////EN: we compute a CA
141
//def ca2 = new CA(table)
142
//ca2.processFromTable();
143
//timer.stop()
144
//println "calcul de la deuxième AFC : "+timer.toString()		
145
//timer.reset()
146
//
147
//timer.start()
148
//
149
//// les valeurs propres
150
////EN: singular values
151
//ca2.getSingularValues()
152
//
153
//timer.stop()
154
//println "récupération des valeurs propres SV2 : "+timer.toString()	
155
//timer.reset()	
156
//
157
//timer.start()
158
//
159
//// les données de colonnes produites par le package CA de R
160
////EN: column data produced by the CA R package
161
//ca2.getColsCoords() 
162
//ca2.getColsDist()
163
//ca2.getColsInertia()
164
//ca2.getColsMass()
165
//
166
//timer.stop()
167
//println "récupération de toutes les infos de colonnes2 : "+timer.toString()
168
//timer.reset()
169
//
170
//timer.start()
171
//
172
//// les données de lignes produites par le package CA de R
173
////EN: row data produced by the CA R package
174
//ca2.getRowsCoords()
175
//ca2.getRowsDist()
176
//ca2.getRowsInertia()
177
//ca2.getRowsMass()
178
//
179
//timer.stop()
180
//println "récupération de toutes les infos de lignes2 : "+timer.toString()
181
//timer.reset()
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.processFromTable();
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.processFromTable();
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()

Also available in: Unified diff