Statistics
| Revision:

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

History | View | Annotate | Download (4.7 kB)

1 479 mdecorde
/**
2 479 mdecorde
 * Main.
3 479 mdecorde
 *
4 479 mdecorde
 * @param args the args
5 479 mdecorde
 */
6 479 mdecorde
// Copyright © 2010-2013 ENS de Lyon.
7 479 mdecorde
// Copyright © 2007-2010 ENS de Lyon, CNRS, INRP, University of
8 479 mdecorde
// Lyon 2, University of Franche-Comté, University of Nice
9 479 mdecorde
// Sophia Antipolis, University of Paris 3.
10 479 mdecorde
//
11 479 mdecorde
// The TXM platform is free software: you can redistribute it
12 479 mdecorde
// and/or modify it under the terms of the GNU General Public
13 479 mdecorde
// License as published by the Free Software Foundation,
14 479 mdecorde
// either version 2 of the License, or (at your option) any
15 479 mdecorde
// later version.
16 479 mdecorde
//
17 479 mdecorde
// The TXM platform is distributed in the hope that it will be
18 479 mdecorde
// useful, but WITHOUT ANY WARRANTY; without even the implied
19 479 mdecorde
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
20 479 mdecorde
// PURPOSE. See the GNU General Public License for more
21 479 mdecorde
// details.
22 479 mdecorde
//
23 479 mdecorde
// You should have received a copy of the GNU General
24 479 mdecorde
// Public License along with the TXM platform. If not, see
25 479 mdecorde
// http://www.gnu.org/licenses.
26 479 mdecorde
//
27 479 mdecorde
//
28 479 mdecorde
//
29 479 mdecorde
// $LastChangedDate:$
30 479 mdecorde
// $LastChangedRevision:$
31 479 mdecorde
// $LastChangedBy:$
32 321 mdecorde
//
33 479 mdecorde
package org.txm.test
34 479 mdecorde
35 479 mdecorde
import org.txm.Toolbox
36 479 mdecorde
import org.txm.ca.core.functions.CA
37 479 mdecorde
import org.txm.searchengine.cqp.clientExceptions.CqiClientException
38 479 mdecorde
import org.txm.searchengine.cqp.clientExceptions.InvalidCqpIdException
39 479 mdecorde
import org.txm.searchengine.cqp.corpus.*
40 479 mdecorde
import org.txm.searchengine.cqp.corpus.query.*
41 479 mdecorde
import org.apache.commons.lang.time.StopWatch
42 479 mdecorde
43 479 mdecorde
// TODO: Auto-generated Javadoc
44 479 mdecorde
/* (non-Javadoc)
45 479 mdecorde
 * @see groovy.lang.Script#run()
46 479 mdecorde
 */
47 479 mdecorde
def timer = new StopWatch()
48 479 mdecorde
49 479 mdecorde
                // on récupère le corpus VOEUX
50 479 mdecorde
                //EN: let's get the VOEUX corpus
51 479 mdecorde
                def voeux = CorpusManager.getCorpusManager().getCorpus("VOEUX")
52 479 mdecorde
53 479 mdecorde
timer.start()
54 479 mdecorde
55 479 mdecorde
                // on crée une partition sur les textes avec comme propriété discriminante l'id du texte
56 479 mdecorde
                //EN: let create a partition on texts with their ID's
57 479 mdecorde
                def text_su = voeux.getStructuralUnit("text")
58 479 mdecorde
                def text_id = text_su.getProperty("id")
59 479 mdecorde
                def textes = voeux.createPartition(text_su, text_id)
60 479 mdecorde
61 479 mdecorde
timer.stop()
62 479 mdecorde
println "Création de la partition : "+timer.toString()
63 479 mdecorde
timer.reset()
64 479 mdecorde
65 479 mdecorde
                // choisir la propriété lexicale pour construire la table lexicale
66 479 mdecorde
                //EN: choose the lexical property to build the lexical table
67 479 mdecorde
                def prop = voeux.getProperty("lemme")
68 479 mdecorde
69 479 mdecorde
timer.start()
70 479 mdecorde
71 479 mdecorde
                // on crée une table lexicale sans les hapax
72 479 mdecorde
                //EN: let create a lexical table without hapax legomenon
73 479 mdecorde
                def table = textes.getLexicalTable(prop, 2)
74 479 mdecorde
75 479 mdecorde
timer.stop()
76 479 mdecorde
println "Création de la table lexicale des lemmes : "+timer.toString()
77 479 mdecorde
timer.reset()
78 479 mdecorde
79 479 mdecorde
timer.start()
80 479 mdecorde
                // on fait une afc
81 479 mdecorde
                //EN: compute the CA
82 479 mdecorde
                def ca = new CA(table)
83 479 mdecorde
                ca.processFromTable();
84 479 mdecorde
85 479 mdecorde
timer.stop()
86 479 mdecorde
println "calcul de l'AFC 1 : "+timer.toString()
87 479 mdecorde
timer.reset()
88 479 mdecorde
89 479 mdecorde
timer.start()
90 479 mdecorde
91 479 mdecorde
                // les valeurs propres
92 479 mdecorde
                //EN: singular values
93 479 mdecorde
                ca.getSingularValues()
94 479 mdecorde
95 479 mdecorde
timer.stop()
96 479 mdecorde
println "récupération des valeurs propres SV1 : "+timer.toString()
97 479 mdecorde
timer.reset()
98 479 mdecorde
99 479 mdecorde
timer.start()
100 479 mdecorde
101 479 mdecorde
                // les données de colonnes produites par le package CA de R
102 479 mdecorde
                //EN: column data produced by the CA R package
103 479 mdecorde
                ca.getColsCoords()
104 479 mdecorde
                ca.getColsDist()
105 479 mdecorde
                ca.getColsInertia()
106 479 mdecorde
                ca.getColsMass()
107 479 mdecorde
108 479 mdecorde
timer.stop()
109 479 mdecorde
println "récupération de toutes les infos de colonnes1 : "+timer.toString()
110 479 mdecorde
timer.reset()
111 479 mdecorde
112 479 mdecorde
timer.start()
113 479 mdecorde
114 479 mdecorde
                // les données de lignes produites par le package CA de R
115 479 mdecorde
                //EN: row data produced by the CA R package
116 479 mdecorde
                ca.getRowsCoords()
117 479 mdecorde
                ca.getRowsDist()
118 479 mdecorde
                ca.getRowsInertia()
119 479 mdecorde
                ca.getRowsMass()
120 479 mdecorde
121 479 mdecorde
timer.stop()
122 479 mdecorde
println "récupération de toutes les infos de lignes1 : "+timer.toString()
123 479 mdecorde
timer.reset()
124 479 mdecorde
125 479 mdecorde
timer.start()
126 479 mdecorde
127 479 mdecorde
// on joue un peu avec la table EN: let's play with the table
128 479 mdecorde
table.cut(3000)                                                 // pas plus de 3000 valeurs, EN: not more than 3000 values
129 479 mdecorde
table.filter(table.getFreqs(), 2000, 5) // coupe a 2000 valeurs et Fmin=5, EN: cut to 2000 values and Fmin=5
130 479 mdecorde
131 479 mdecorde
timer.stop()
132 479 mdecorde
println "On filtre la table lexicale en fréquence et en nombre de lignes : "+timer.toString()
133 479 mdecorde
timer.reset()
134 479 mdecorde
135 479 mdecorde
timer.start()
136 479 mdecorde
137 479 mdecorde
// on fait une afc
138 479 mdecorde
//EN: we compute a CA
139 479 mdecorde
def ca2 = new CA(table)
140 479 mdecorde
ca2.processFromTable();
141 479 mdecorde
timer.stop()
142 479 mdecorde
println "calcul de la deuxième AFC : "+timer.toString()
143 479 mdecorde
timer.reset()
144 479 mdecorde
145 479 mdecorde
timer.start()
146 479 mdecorde
147 479 mdecorde
// les valeurs propres
148 479 mdecorde
//EN: singular values
149 479 mdecorde
ca2.getSingularValues()
150 479 mdecorde
151 479 mdecorde
timer.stop()
152 479 mdecorde
println "récupération des valeurs propres SV2 : "+timer.toString()
153 479 mdecorde
timer.reset()
154 479 mdecorde
155 479 mdecorde
timer.start()
156 479 mdecorde
157 479 mdecorde
// les données de colonnes produites par le package CA de R
158 479 mdecorde
//EN: column data produced by the CA R package
159 479 mdecorde
ca2.getColsCoords()
160 479 mdecorde
ca2.getColsDist()
161 479 mdecorde
ca2.getColsInertia()
162 479 mdecorde
ca2.getColsMass()
163 479 mdecorde
164 479 mdecorde
timer.stop()
165 479 mdecorde
println "récupération de toutes les infos de colonnes2 : "+timer.toString()
166 479 mdecorde
timer.reset()
167 479 mdecorde
168 479 mdecorde
timer.start()
169 479 mdecorde
170 479 mdecorde
// les données de lignes produites par le package CA de R
171 479 mdecorde
//EN: row data produced by the CA R package
172 479 mdecorde
ca2.getRowsCoords()
173 479 mdecorde
ca2.getRowsDist()
174 479 mdecorde
ca2.getRowsInertia()
175 479 mdecorde
ca2.getRowsMass()
176 479 mdecorde
177 479 mdecorde
timer.stop()
178 479 mdecorde
println "récupération de toutes les infos de lignes2 : "+timer.toString()
179 479 mdecorde
timer.reset()