Révision 2229
| tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/handlers/ComputeSpecifities.java (revision 2229) | ||
|---|---|---|
| 32 | 32 |
import org.txm.core.messages.TXMCoreMessages; |
| 33 | 33 |
import org.txm.index.core.functions.PartitionIndex; |
| 34 | 34 |
import org.txm.lexicaltable.core.functions.LexicalTable; |
| 35 |
import org.txm.lexicaltable.rcp.editors.LexicalTableEditor; |
|
| 36 | 35 |
import org.txm.rcp.editors.TXMEditor; |
| 37 | 36 |
import org.txm.rcp.handlers.BaseAbstractHandler; |
| 38 | 37 |
import org.txm.searchengine.cqp.corpus.Partition; |
| tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/editors/SpecificitiesEditor.java (revision 2229) | ||
|---|---|---|
| 53 | 53 |
import org.txm.rcp.swt.widget.ThresholdsGroup; |
| 54 | 54 |
import org.txm.rcp.swt.widget.structures.PropertiesComboViewer; |
| 55 | 55 |
import org.txm.searchengine.cqp.corpus.CQPCorpus; |
| 56 |
import org.txm.searchengine.cqp.corpus.Subcorpus; |
|
| 56 | 57 |
import org.txm.specificities.core.functions.Specificities; |
| 57 | 58 |
import org.txm.specificities.core.preferences.SpecificitiesPreferences; |
| 58 | 59 |
import org.txm.specificities.rcp.messages.SpecificitiesUIMessages; |
| ... | ... | |
| 226 | 227 |
return; |
| 227 | 228 |
} |
| 228 | 229 |
|
| 229 |
|
|
| 230 |
int len = lexicalTableColumnNames.length; |
|
| 231 |
if (len == 2) {
|
|
| 232 |
len--; // show only the first column specifs since they are the same (modulo signus) |
|
| 233 |
} |
|
| 230 | 234 |
if(!update |
| 231 | 235 |
// //&& this.getResult().hasBeenComputedOnce() |
| 232 | 236 |
) {
|
| 233 | 237 |
|
| 238 |
|
|
| 239 |
|
|
| 234 | 240 |
// remove lexical table columns if already exist |
| 235 | 241 |
// int columnsCount = specificitesTable.getColumnCount(); |
| 236 | 242 |
// System.out.println("SpecificitiesEditor.updateEditorFromResult(): column count = " + columnsCount);
|
| ... | ... | |
| 241 | 247 |
|
| 242 | 248 |
// System.out.println("partnames: "+Arrays.toString(partNames));
|
| 243 | 249 |
// for each lexical table column |
| 244 |
for (int i = 0, firstLexicalTableColumnIndex = 3; i < lexicalTableColumnNames.length ; i++, firstLexicalTableColumnIndex += 2) {
|
|
| 250 |
for (int i = 0, firstLexicalTableColumnIndex = 3; i < len ; i++, firstLexicalTableColumnIndex += 2) {
|
|
| 245 | 251 |
|
| 246 | 252 |
//System.err.println("SpecificitiesEditor.updateEditorFromResult() creating column freq at index " + firstLexicalTableColumnIndex);
|
| 247 | 253 |
|
| ... | ... | |
| 309 | 315 |
typeFrequencyColumn.pack(); |
| 310 | 316 |
|
| 311 | 317 |
// Updating the table headers from lexical table values |
| 312 |
for (int i = 0, firstLexicalTableColumnIndex = 3; i < lexicalTableColumnNames.length ; i++, firstLexicalTableColumnIndex += 2) {
|
|
| 318 |
for (int i = 0, firstLexicalTableColumnIndex = 3; i < len ; i++, firstLexicalTableColumnIndex += 2) {
|
|
| 313 | 319 |
// frequency columns |
| 314 | 320 |
TableColumn freqpartTableColumn = specificitesTable.getColumn(firstLexicalTableColumnIndex); |
| 315 | 321 |
text = lexicalTableColumnNames[i]; |
| ... | ... | |
| 322 | 328 |
freqpartTableColumn.setAlignment(SWT.RIGHT); |
| 323 | 329 |
freqpartTableColumn.pack(); |
| 324 | 330 |
} |
| 325 |
|
|
| 326 |
|
|
| 327 |
|
|
| 331 |
|
|
| 328 | 332 |
// Pack the columns so the label of the sort column is not truncated due of the sorting order arrow display |
| 329 | 333 |
TXMEditor.packColumns(viewer); |
| 330 | 334 |
|
| 331 |
} |
|
| 332 |
catch (Exception e) {
|
|
| 335 |
} catch (Exception e) {
|
|
| 333 | 336 |
// TODO Auto-generated catch block |
| 334 | 337 |
e.printStackTrace(); |
| 335 | 338 |
} |
| tmp/org.txm.specificities.core/src/org/txm/specificities/core/statsengine/r/function/SpecificitiesR.java (revision 2229) | ||
|---|---|---|
| 84 | 84 |
specIndex = compute(symbol, lt, null, null); |
| 85 | 85 |
} |
| 86 | 86 |
|
| 87 |
/** |
|
| 88 |
* compute Specificites of subcorpus using the textometry package functions. |
|
| 89 |
* |
|
| 90 |
* @param lexicon the lexicon |
|
| 91 |
* @param subLexicon the sub lexicon |
|
| 92 |
* @return the double[][] |
|
| 93 |
* @throws StatException the stat exception |
|
| 94 |
* @throws REXPMismatchException |
|
| 95 |
* @throws RserveException |
|
| 96 |
*/ |
|
| 97 |
public SpecificitiesR(Vector lexicon, Vector subLexicon) throws StatException, RserveException, REXPMismatchException {
|
|
| 98 |
super(prefixR+(specif_counter++)); |
|
| 87 |
// /** |
|
| 88 |
// * compute Specificites of subcorpus using the textometry package functions. |
|
| 89 |
// * |
|
| 90 |
// * @param lexicon the lexicon |
|
| 91 |
// * @param subLexicon the sub lexicon |
|
| 92 |
// * @return the double[][] |
|
| 93 |
// * @throws StatException the stat exception |
|
| 94 |
// * @throws REXPMismatchException |
|
| 95 |
// * @throws RserveException |
|
| 96 |
// */ |
|
| 97 |
// public SpecificitiesR(Vector lexicon, Vector subLexicon) throws StatException, RserveException, REXPMismatchException {
|
|
| 98 |
// super(prefixR+(specif_counter++)); |
|
| 99 |
// |
|
| 100 |
// RWorkspace rw = RWorkspace.getRWorkspaceInstance(); |
|
| 101 |
// rw.safeEval("library(textometry)"); //$NON-NLS-1$
|
|
| 102 |
// REXP r = rw.callFunction("specificities.lexicon.new", new QuantitativeDataStructure[] { lexicon, subLexicon }, symbol); //$NON-NLS-1$
|
|
| 103 |
// // double[] res = RWorkspace.toDouble(r); |
|
| 104 |
// //System.out.println(" build double matrix");
|
|
| 105 |
// specIndex = r.asDoubleMatrix(); |
|
| 106 |
// } |
|
| 99 | 107 |
|
| 100 |
RWorkspace rw = RWorkspace.getRWorkspaceInstance(); |
|
| 101 |
rw.safeEval("library(textometry)"); //$NON-NLS-1$
|
|
| 102 |
REXP r = rw.callFunction("specificities.lexicon.new", new QuantitativeDataStructure[] { lexicon, subLexicon }, symbol); //$NON-NLS-1$
|
|
| 103 |
// double[] res = RWorkspace.toDouble(r); |
|
| 104 |
//System.out.println(" build double matrix");
|
|
| 105 |
specIndex = r.asDoubleMatrix(); |
|
| 106 |
} |
|
| 107 |
|
|
| 108 | 108 |
/** |
| 109 | 109 |
* compute Specificites of lexical table using the textometry package functions. |
| 110 | 110 |
* |
| tmp/org.txm.specificities.core/src/org/txm/specificities/core/functions/Specificities.java (revision 2229) | ||
|---|---|---|
| 46 | 46 |
import org.txm.core.results.TXMResult; |
| 47 | 47 |
import org.txm.lexicaltable.core.functions.LexicalTable; |
| 48 | 48 |
import org.txm.lexicaltable.core.statsengine.data.ILexicalTable; |
| 49 |
import org.txm.objects.CorpusBuild; |
|
| 50 | 49 |
import org.txm.searchengine.cqp.clientExceptions.CqiClientException; |
| 51 |
import org.txm.searchengine.cqp.corpus.CQPCorpus; |
|
| 52 |
import org.txm.searchengine.cqp.corpus.CQPLexicon; |
|
| 53 | 50 |
import org.txm.searchengine.cqp.corpus.Partition; |
| 54 | 51 |
import org.txm.searchengine.cqp.corpus.Property; |
| 55 |
import org.txm.searchengine.cqp.corpus.Subcorpus; |
|
| 56 | 52 |
import org.txm.searchengine.cqp.corpus.WordProperty; |
| 57 | 53 |
import org.txm.specificities.core.messages.SpecificitiesCoreMessages; |
| 58 | 54 |
import org.txm.specificities.core.preferences.SpecificitiesPreferences; |
| ... | ... | |
| 167 | 163 |
} |
| 168 | 164 |
|
| 169 | 165 |
ILexicalTable data = this.lexicalTable.getData(); |
| 170 |
|
|
| 171 | 166 |
SpecificitiesR rSpecificities = new SpecificitiesR(data); |
| 172 | 167 |
double[][] specIndex = rSpecificities.getScores(); |
| 173 | 168 |
|
| 174 |
if (this.lexicalTable.getPartition() != null) {
|
|
| 175 |
init(symbol, specIndex); |
|
| 176 |
} |
|
| 177 |
else {
|
|
| 169 |
//TODO if test no more necessary ? only if lexicalTable symb |
|
| 170 |
// if (this.lexicalTable.getPartition() != null) {
|
|
| 171 |
// init(symbol, specIndex); |
|
| 172 |
// } |
|
| 173 |
// else {
|
|
| 178 | 174 |
init(rSpecificities.getSymbol(), specIndex); //$NON-NLS-1$ |
| 179 |
} |
|
| 175 |
// }
|
|
| 180 | 176 |
//} |
| 181 | 177 |
|
| 182 | 178 |
return true; |
| ... | ... | |
| 239 | 235 |
for (int j = 0 ; j < indices[i].length ; j++) {
|
| 240 | 236 |
if (indices[i][j] > MAX) {
|
| 241 | 237 |
indices[i][j] = MAX; |
| 242 |
} |
|
| 243 |
else if (indices[i][j] < MIN) {
|
|
| 238 |
} else if (indices[i][j] < MIN) {
|
|
| 244 | 239 |
indices[i][j] = MIN; |
| 245 | 240 |
} |
| 246 | 241 |
} |
| ... | ... | |
| 298 | 293 |
RWorkspace rw = RWorkspace.getRWorkspaceInstance(); |
| 299 | 294 |
rw.voidEval("library(textometry)");
|
| 300 | 295 |
REXP rez = rw.eval("specificities(matrix(c("+f+", "+(t-f)+", "+(F-f)+", "+(T-t-F+f)+"), ncol=2))");
|
| 301 |
if (rez != null) return rez.asDoubles()[0]; |
|
| 296 |
if (rez != null) {
|
|
| 297 |
return rez.asDoubles()[0]; |
|
| 298 |
} |
|
| 302 | 299 |
return 0.0d; |
| 303 | 300 |
} |
| 304 | 301 |
|
| ... | ... | |
| 311 | 308 |
this.getLexicalTable().setUnitProperty(unitProperty); |
| 312 | 309 |
} |
| 313 | 310 |
|
| 314 |
|
|
| 315 |
|
|
| 316 |
|
|
| 317 | 311 |
/** |
| 318 | 312 |
* Gets the type focus. |
| 319 | 313 |
* |
| ... | ... | |
| 339 | 333 |
* @throws StatException the stat exception |
| 340 | 334 |
*/ |
| 341 | 335 |
public int getColumnsCount() throws StatException {
|
| 342 |
if (lexicalTable != null) |
|
| 336 |
if (lexicalTable != null) {
|
|
| 343 | 337 |
try {
|
| 344 | 338 |
return lexicalTable.getNColumns(); |
| 345 | 339 |
} catch (Exception e) {
|
| ... | ... | |
| 347 | 341 |
e.printStackTrace(); |
| 348 | 342 |
return 0; |
| 349 | 343 |
} |
| 350 |
else
|
|
| 344 |
} else {
|
|
| 351 | 345 |
return getColumnsNames().length; |
| 346 |
} |
|
| 352 | 347 |
} |
| 353 | 348 |
|
| 354 | 349 |
/** |
| ... | ... | |
| 414 | 409 |
// } |
| 415 | 410 |
} |
| 416 | 411 |
|
| 412 |
public LexicalTable getParent() {
|
|
| 413 |
return (LexicalTable) this.parent; |
|
| 414 |
} |
|
| 415 |
|
|
| 417 | 416 |
/** |
| 418 | 417 |
* Gets the specificities index. |
| 419 | 418 |
* |
| ... | ... | |
| 502 | 501 |
public int[] getFormFrequencies() throws Exception {
|
| 503 | 502 |
//System.out.println("get freq by table");
|
| 504 | 503 |
Vector formFrequencies = lexicalTable.getRowMarginsVector(); |
| 505 |
if (rowindex != null) {
|
|
| 506 |
formFrequencies = formFrequencies.get(rowindex); |
|
| 507 |
} |
|
| 504 |
// if (rowindex != null) {
|
|
| 505 |
// formFrequencies = formFrequencies.get(rowindex);
|
|
| 506 |
// }
|
|
| 508 | 507 |
return formFrequencies.asIntArray(); |
| 509 | 508 |
} |
| 510 | 509 |
|
Formats disponibles : Unified diff