Revision: 17475
http://sourceforge.net/p/gate/code/17475
Author: adamfunk
Date: 2014-02-27 15:02:48 +0000 (Thu, 27 Feb 2014)
Log Message:
-----------
The app now runs again. The GUIs, however,....
Modified Paths:
--------------
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/apply/TermScoreCopier.java
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/bank/AbstractTermbank.java
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/bank/AnnotationTermbank.java
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/bank/DocumentFrequencyBank.java
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/bank/HyponymyTermbank.java
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/bank/TfIdfTermbank.java
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/gui/CsvFileSelectionActionListener.java
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/gui/SliderPanel.java
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/gui/TermbankViewer.java
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/output/CsvGenerator.java
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/util/Utilities.java
Removed Paths:
-------------
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/gui/DocumentFrequencyViewer.java
Modified:
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/apply/TermScoreCopier.java
===================================================================
---
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/apply/TermScoreCopier.java
2014-02-27 14:53:44 UTC (rev 17474)
+++
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/apply/TermScoreCopier.java
2014-02-27 15:02:48 UTC (rev 17475)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012--2013, The University of Sheffield. See the file
+ * Copyright (c) 2012--2014, The University of Sheffield. See the file
* COPYRIGHT.txt in the software or at http://gate.ac.uk/gate/COPYRIGHT.txt
*
* This file is part of GATE (see http://gate.ac.uk/), and is free
@@ -21,11 +21,9 @@
import gate.creole.metadata.RunTime;
import gate.termraider.bank.AbstractTermbank;
import gate.termraider.util.*;
-
import java.text.NumberFormat;
import java.util.*;
-import org.apache.commons.lang.StringUtils;
@CreoleResource(name = "Termbank Score Copier",
@@ -68,7 +66,6 @@
Set<String> annotationTypes = termbank.getInputAnnotationTypes();
String termFeature = termbank.getInputAnnotationFeature();
String languageFeature = termbank.getLanguageFeature();
- String scoreFeature = termbank.getScoreProperty();
AnnotationSet candidates =
document.getAnnotations(annotationSetName).get(annotationTypes);
checkInterruption();
@@ -76,23 +73,14 @@
for (Annotation candidate : candidates) {
Term term = new Term(candidate, document, languageFeature, termFeature);
FeatureMap fm = candidate.getFeatures();
- Double score = termbank.getScore(term);
- if (score != null) {
- fm.put(scoreFeature, score);
+
+ // What the heck, slap them all on the annotation features.
+ // You can't put too many features in a nuclear reactor.
+ Map<ScoreType, Number> scoreMap = termbank.getScoreMap(term);
+ for (ScoreType st : scoreMap.keySet()) {
+ fm.put(st.toNormalizedString(), scoreMap.get(st));
}
- if (useFeature(frequencyFeature)) {
- fm.put(frequencyFeature, termbank.getTermFrequency(term));
- }
-
- // TODO
- // Figure out whether to deal with non-main scores (term freq, doc freq,
- // ref doc freq, &c.; & if so, how
-
- if (useFeature(docFrequencyFeature)) {
- fm.put(docFrequencyFeature, termbank.getDocFrequency(term));
- }
-
checkInterruption();
} // end for candidates loop
@@ -111,11 +99,6 @@
}
- private boolean useFeature(String feature) {
- return (StringUtils.stripToEmpty(feature).length() > 0);
- }
-
-
/* CREOLE METHODS */
@RunTime
Modified:
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/bank/AbstractTermbank.java
===================================================================
---
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/bank/AbstractTermbank.java
2014-02-27 14:53:44 UTC (rev 17474)
+++
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/bank/AbstractTermbank.java
2014-02-27 15:02:48 UTC (rev 17475)
@@ -16,16 +16,12 @@
import gate.gui.ActionsPublisher;
import gate.util.*;
import gate.*;
-
import java.io.*;
import java.util.*;
-
import gate.termraider.output.*;
import gate.termraider.util.*;
import gate.termraider.gui.*;
-
import javax.swing.Action;
-
import org.apache.commons.lang.StringEscapeUtils;
@@ -47,15 +43,14 @@
// TODO get rid of this in favour of the default key of scores
@Deprecated
protected Map<Term, Double> termScores;
-
- protected List<Term> termsByDescendingScore;
+ @Deprecated
protected Map<Term, Integer> termFrequencies, docFrequencies;
- protected boolean descendingScoresDone = false;
+
+ private List<Term> termsByDescendingScore;
+ protected boolean descendingScoresDone = false;
- // TODO delete when FrequencyTableModel is superseded
- public static final String freqProperty = "frequency";
-
protected List<ScoreType> scoreTypes;
+ private Number minDefaultScore, maxDefaultScore;
public Resource init() throws ResourceInstantiationException {
@@ -68,8 +63,8 @@
}
resetScores();
processCorpora();
+ calculateScores();
scanTypesLanguagesDocFreq();
- calculateScores();
return this;
}
@@ -106,6 +101,11 @@
}
+ public Map<Term, Number> getDefaultScores() {
+ return this.scores.get(getDefaultScoreType());
+ }
+
+
protected abstract void initializeScoreTypes();
@@ -131,6 +131,15 @@
}
+ public Map<ScoreType, Number> getScoreMap(Term term) {
+ Map<ScoreType, Number> result = new HashMap<ScoreType, Number>();
+ for (ScoreType st : this.scoreTypes) {
+ result.put(st, this.scores.get(st).get(term));
+ }
+ return result;
+ }
+
+
public Set<String> getDocumentsForTerm(Term term) {
if (this.termDocuments.containsKey(term)) {
return this.termDocuments.get(term);
@@ -152,32 +161,49 @@
return this.docFrequencies;
}
- // TODO delete when FrequencyTableModel is superseded
- @Deprecated
- public String getFreqProperty() {
- return freqProperty;
- }
-
public Map<Term, Number> getScores() {
return this.scores.get(this.getDefaultScoreType());
}
+ private void findMinAndMaxDefaultScores() {
+ Collection<Number> values = this.getDefaultScores().values();
+ if (values.isEmpty()) {
+ minDefaultScore = new Integer(0);
+ maxDefaultScore = new Integer(1);
+ }
+ else {
+ minDefaultScore = values.iterator().next();
+ maxDefaultScore = values.iterator().next();
+ for (Number n : values) {
+ if (n.doubleValue() < minDefaultScore.doubleValue()) {
+ minDefaultScore = n;
+ }
+
+ if (n.doubleValue() > maxDefaultScore.doubleValue()) {
+ maxDefaultScore = n;
+ }
+ }
+ }
+ }
+
+
public Number getMinScore() {
- if (this.termScores.isEmpty()) {
- return 1.0;
+ // lazy calculation
+ if (minDefaultScore == null) {
+ findMinAndMaxDefaultScores();
}
- // implied else
- return Collections.min(this.termScores.values());
+ return minDefaultScore;
}
+
public Number getMaxScore() {
- if (this.termScores.isEmpty()) {
- return 1.0;
+ // lazy calculation
+ if (maxDefaultScore == null) {
+ findMinAndMaxDefaultScores();
}
- // implied else
- return Collections.max(this.termScores.values());
+ return maxDefaultScore;
}
@@ -222,10 +248,9 @@
protected void scanTypesLanguagesDocFreq() {
this.types = new TreeSet<String>();
this.languages = new TreeSet<String>();
- for (Term term : this.termFrequencies.keySet()) {
+ for (Term term : this.getDefaultScores().keySet()) {
this.languages.add(term.getLanguageCode());
this.types.add(term.getType());
- this.docFrequencies.put(term, termDocuments.get(term).size());
}
}
Modified:
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/bank/AnnotationTermbank.java
===================================================================
---
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/bank/AnnotationTermbank.java
2014-02-27 14:53:44 UTC (rev 17474)
+++
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/bank/AnnotationTermbank.java
2014-02-27 15:02:48 UTC (rev 17475)
@@ -68,11 +68,12 @@
for (Term term : termIndividualScores.keySet()) {
score = MergingMode.calculate(mergingMode,
termIndividualScores.get(term));
Utilities.setScoreTermValue(scores, getDefaultScoreType(), term, score);
- Utilities.setScoreTermValue(scores, localDocFrequencyST, term,
termDocuments.size());
+ int localDF = termDocuments.get(term).size();
+ Utilities.setScoreTermValue(scores, localDocFrequencyST, term, localDF);
}
if (debugMode) {
- System.out.println("Termbank: nbr of terms = " +
termsByDescendingScore.size());
+ System.out.println("Termbank: nbr of terms = " + termDocuments.size());
}
}
Modified:
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/bank/DocumentFrequencyBank.java
===================================================================
---
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/bank/DocumentFrequencyBank.java
2014-02-27 14:53:44 UTC (rev 17474)
+++
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/bank/DocumentFrequencyBank.java
2014-02-27 15:02:48 UTC (rev 17475)
@@ -11,7 +11,6 @@
*/
package gate.termraider.bank;
-import java.io.File;
import java.util.*;
import javax.swing.Action;
import org.apache.commons.lang.StringEscapeUtils;
@@ -26,10 +25,9 @@
import gate.creole.metadata.CreoleResource;
import gate.gui.ActionsPublisher;
import gate.termraider.gui.ActionSaveCsv;
-import gate.termraider.output.CsvGenerator;
import gate.termraider.util.*;
-import gate.util.GateException;
+
@CreoleResource(name = "DocumentFrequencyBank",
icon = "termbank-lr.png",
comment = "Document frequency counter derived from corpora and other DFBs")
@@ -38,12 +36,9 @@
private static final long serialVersionUID = 5149075094060830331L;
-
+ // Note: corpora parameter inherited from AbstractBank
private Set<DocumentFrequencyBank> inputBanks;
- // note: corpora inherited from AbstractBank
- private Map<Term, Integer> documentFrequencies;
- private int minFrequency, maxFrequency;
private Map<String, Set<Term>> stringLookupTable;
// transient to allow serialization
@@ -52,11 +47,12 @@
public Resource init() throws ResourceInstantiationException {
prepare();
+ initializeScoreTypes();
resetScores();
processInputBanks();
processCorpora();
+ calculateScores();
scanTypesLanguagesDocFreq();
- calculateScores();
return this;
}
@@ -75,10 +71,14 @@
inputBanks = new HashSet<DocumentFrequencyBank>();
}
}
+
protected void resetScores() {
+ scores = new HashMap<ScoreType, Map<Term,Number>>();
+ for (ScoreType type : scoreTypes) {
+ scores.put(type, new HashMap<Term, Number>());
+ }
documentCount = 0;
- documentFrequencies = new HashMap<Term, Integer>();
languages = new HashSet<String>();
types = new HashSet<String>();
stringLookupTable = new HashMap<String, Set<Term>>();
@@ -105,7 +105,7 @@
for (DocumentFrequencyBank bank : inputBanks) {
this.documentCount += bank.documentCount;
for (Term term : bank.getTerms()) {
- increment(term, bank.getFrequencyStrict(term));
+ Utilities.incrementMap(getDefaultScores(), term,
bank.getFrequencyStrict(term));
}
}
}
@@ -135,37 +135,29 @@
}
for (Term term : documentTerms) {
- increment(term, 1);
+ Utilities.incrementMap(getDefaultScores(), term, 1);
}
}
protected void calculateScores() {
- if (this.getTerms().size() > 0) {
- minFrequency =
this.getFrequencyStrict(this.getTerms().iterator().next());
- }
- else {
- minFrequency = 0;
- }
- maxFrequency = 0;
+ // TODO use the termDocuments mapping here
+
for (Term term : this.getTerms()) {
- int freq = this.getFrequencyStrict(term);
- maxFrequency = Math.max(maxFrequency, freq);
- minFrequency = Math.min(minFrequency, freq);
this.types.add(term.getType());
this.languages.add(term.getLanguageCode());
storeStringLookup(term);
}
+
+ if (debugMode) {
+ System.out.println("Termbank: nbr of terms = " + termDocuments.size());
+ }
}
- public Set<Term> getTerms() {
- return documentFrequencies.keySet();
- }
-
public int getFrequencyStrict(Term term) {
- if (documentFrequencies.containsKey(term)) {
- return documentFrequencies.get(term).intValue();
+ if (getDefaultScores().containsKey(term)) {
+ return getDefaultScores().get(term).intValue();
}
return 0;
@@ -174,8 +166,8 @@
public int getFrequencyLax(Term term) {
// Try for an exact match first
- if (documentFrequencies.containsKey(term)) {
- return documentFrequencies.get(term).intValue();
+ if (getDefaultScores().containsKey(term)) {
+ return getDefaultScores().get(term).intValue();
}
// Now see if there's one with a blank language code
@@ -183,7 +175,7 @@
if (stringLookupTable.containsKey(termString)) {
for (Term testTerm : stringLookupTable.get(termString)) {
if (testTerm.closeMatch(term)) {
- return documentFrequencies.get(testTerm).intValue();
+ return getDefaultScores().get(testTerm).intValue();
}
}
}
@@ -220,56 +212,6 @@
}
- @Override
- public Double getMinScore() {
- return new Double(this.minFrequency);
- }
-
-
- @Override
- public Double getMaxScore() {
- return new Double(this.maxFrequency);
- }
-
-
- public int getMinFrequency() {
- return this.minFrequency;
- }
-
- public int getMaxFrequency() {
- return this.maxFrequency;
- }
-
-
- public List<Term> getTermsByDescendingFreq() {
- List<Term> terms = new ArrayList<Term>(this.getTerms());
- Comparator<Term> comparator = new
TermComparatorByDescendingScore(documentFrequencies);
- Collections.sort(terms, comparator);
- return terms;
- }
-
-
- @Override
- public void saveAsCsv(Number threshold, File file) throws GateException {
- CsvGenerator.generateAndSaveCsv(this, threshold, file);
- }
-
-
- @Override
- public void saveAsCsv(File file) throws GateException {
- saveAsCsv(0.0, file);
- }
-
-
- private void increment(Term term, int i) {
- int count = i;
- if (documentFrequencies.containsKey(term)) {
- count += documentFrequencies.get(term).intValue();
- }
- documentFrequencies.put(term, count);
- }
-
-
private void storeStringLookup(Term term) {
String termString = term.getTermString();
Set<Term> terms;
@@ -283,16 +225,11 @@
stringLookupTable.put(termString, terms);
}
-
- public Map<Term, Integer> getDocFrequencies() {
- return this.documentFrequencies;
- }
-
protected void initializeScoreTypes() {
// Whatever this is called, it must be the reference
// document frequency, so we will only need
- // getDefaultScoreType()
+ // to use getDefaultScoreType() later
this.scoreTypes = new ArrayList<ScoreType>();
this.scoreTypes.add(new ScoreType(scoreProperty));
}
Modified:
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/bank/HyponymyTermbank.java
===================================================================
---
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/bank/HyponymyTermbank.java
2014-02-27 14:53:44 UTC (rev 17474)
+++
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/bank/HyponymyTermbank.java
2014-02-27 15:02:48 UTC (rev 17475)
@@ -16,7 +16,6 @@
import gate.*;
import gate.termraider.modes.*;
import gate.termraider.util.*;
-
import java.util.*;
@@ -115,11 +114,12 @@
double normalized = Normalization.calculate(normalization, rawScore);
Utilities.setScoreTermValue(scores, rawScoreST, term, rawScore);
Utilities.setScoreTermValue(scores, getDefaultScoreType(), term,
normalized);
- Utilities.setScoreTermValue(scores, localDocFrequencyST, term,
this.termDocuments.size());
+ int localDF = this.termDocuments.get(term).size();
+ Utilities.setScoreTermValue(scores, localDocFrequencyST, term, localDF);
}
if (debugMode) {
- System.out.println("Termbank: nbr of terms = " +
termsByDescendingScore.size());
+ System.out.println("Termbank: nbr of terms = " + termDocuments.size());
}
}
@@ -128,7 +128,7 @@
termHeads = new HashMap<Term, Set<String>>();
termHyponyms = new HashMap<Term, Set<String>>();
termDocuments = new HashMap<Term, Set<String>>();
- termsByDescendingScore = new ArrayList<Term>();
+ scores = new HashMap<ScoreType, Map<Term,Number>>();
termFrequencies = new HashMap<Term, Integer>();
docFrequencies = new HashMap<Term, Integer>();
}
@@ -137,7 +137,8 @@
protected void initializeScoreTypes() {
this.scoreTypes = new ArrayList<ScoreType>();
this.scoreTypes.add(new ScoreType(scoreProperty));
-
+ this.rawScoreST = new ScoreType(scoreProperty + RAW_SUFFIX);
+ this.scoreTypes.add(rawScoreST);
this.termFrequencyST = new ScoreType("termFrequency");
this.scoreTypes.add(termFrequencyST);
this.localDocFrequencyST = new ScoreType("localDocFrequency");
Modified:
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/bank/TfIdfTermbank.java
===================================================================
---
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/bank/TfIdfTermbank.java
2014-02-27 14:53:44 UTC (rev 17474)
+++
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/bank/TfIdfTermbank.java
2014-02-27 15:02:48 UTC (rev 17475)
@@ -48,7 +48,6 @@
for (Annotation candidate : candidates) {
Term term = makeTerm(candidate, document);
Utilities.incrementScoreTermValue(scores, termFrequencyST, term, 1);
-
Utilities.addToMapSet(termDocuments, term, documentSource);
}
}
@@ -74,9 +73,12 @@
protected void calculateScores() {
- for (Term term : termFrequencies.keySet()) {
- int tf = termFrequencies.get(term);
+ for (Term term : scores.get(termFrequencyST).keySet()) {
+ int tf = scores.get(termFrequencyST).get(term).intValue();
int df = getRefDocFrequency(term);
+ Utilities.setScoreTermValue(scores, refDocFrequencyST, term, df);
+ int localDF = this.termDocuments.get(term).size();
+ Utilities.setScoreTermValue(scores, localDocFrequencyST, term, localDF);
int n = docFreqSource.getDocumentCount();
double rawScore = TfCalculation.calculate(tfCalculation, tf) *
IdfCalculation.calculate(idfCalculation, df, n);
Utilities.setScoreTermValue(scores, rawScoreST, term, rawScore);
@@ -96,6 +98,7 @@
termDocuments = new HashMap<Term, Set<String>>();
termFrequencies = new HashMap<Term, Integer>();
documentCount = 0;
+ scores = new HashMap<ScoreType, Map<Term,Number>>();
}
Modified:
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/gui/CsvFileSelectionActionListener.java
===================================================================
---
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/gui/CsvFileSelectionActionListener.java
2014-02-27 14:53:44 UTC (rev 17474)
+++
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/gui/CsvFileSelectionActionListener.java
2014-02-27 15:02:48 UTC (rev 17475)
@@ -45,7 +45,7 @@
Utilities.EXTENSION_CSV);
try {
if (mode == Mode.SAVE) {
- termbank.saveAsCsv(sliderPanel.getValues(), file);
+ termbank.saveAsCsv(sliderPanel.getValue(), file);
}
else { // must be LOAD
System.err.println("LOAD mode is no longer supported.");
Deleted:
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/gui/DocumentFrequencyViewer.java
===================================================================
---
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/gui/DocumentFrequencyViewer.java
2014-02-27 14:53:44 UTC (rev 17474)
+++
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/gui/DocumentFrequencyViewer.java
2014-02-27 15:02:48 UTC (rev 17475)
@@ -1,217 +0,0 @@
-/*
- * Copyright (c) 2008--2014, The University of Sheffield. See the file
- * COPYRIGHT.txt in the software or at http://gate.ac.uk/gate/COPYRIGHT.txt
- *
- * This file is part of GATE (see http://gate.ac.uk/), and is free
- * software, licenced under the GNU Library General Public License,
- * Version 2, June 1991 (in the distribution as file licence.html,
- * and also available at http://gate.ac.uk/gate/licence.html).
- *
- * $Id$
- */
-package gate.termraider.gui;
-
-import gate.Resource;
-import gate.creole.ANNIEConstants;
-import gate.creole.AbstractVisualResource;
-import gate.creole.metadata.CreoleResource;
-import gate.creole.metadata.GuiType;
-import gate.event.ProgressListener;
-import gate.termraider.bank.*;
-import gate.termraider.util.*;
-
-import java.awt.BorderLayout;
-import java.util.*;
-
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JSplitPane;
-import javax.swing.JTabbedPane;
-import javax.swing.JTable;
-import javax.swing.JTextField;
-import javax.swing.table.AbstractTableModel;
-
-
-@CreoleResource(name = "Document Frequency Viewer",
- comment = "viewer for the TermRaider DocumentFrequencyBank",
- guiType = GuiType.LARGE,
- mainViewer = true,
- resourceDisplayed = "gate.termraider.bank.DocumentFrequencyBank")
-public class DocumentFrequencyViewer
- extends AbstractVisualResource
- implements ANNIEConstants, ProgressListener {
-
- private static final long serialVersionUID = 5632849477601995493L;
-
- private JScrollPane freqScrollPane;
- private DocumentFrequencyBank dfb;
- private JTable freqTable, typeTable, langTable;
- private JTabbedPane tabbedPane;
- private DFTableModel freqTableModel;
- private ListTableModel typeTableModel, langTableModel;
- private JTextField docsField;
-
-
- @Override
- public Resource init() {
- initGuiComponents();
- return this;
- }
-
-
- private void initGuiComponents() {
- setLayout(new BorderLayout());
- tabbedPane = new JTabbedPane();
- JPanel dfTab = new JPanel(new BorderLayout());
- tabbedPane.addTab("Document frequencies", dfTab);
-
- docsField = new JTextField("...");
- dfTab.add(docsField, BorderLayout.NORTH);
-
- freqTableModel = new DFTableModel();
- freqTable = new JTable(freqTableModel);
- freqTable.setAutoCreateRowSorter(true);
- freqScrollPane = new JScrollPane(freqTable,
- JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
- JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
- dfTab.add(freqScrollPane, BorderLayout.CENTER);
-
- JSplitPane listsTab = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
- typeTableModel = new ListTableModel("Annotation types indexed");
- typeTable = new JTable(typeTableModel);
- typeTable.setAutoCreateRowSorter(true);
- JScrollPane typeScrollPane = new JScrollPane(typeTable,
- JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
- JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
-
- langTableModel = new ListTableModel("Language codes indexed");
- langTable = new JTable(langTableModel);
- langTable.setAutoCreateRowSorter(true);
- JScrollPane langScrollPane = new JScrollPane(langTable,
- JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
- JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
-
- listsTab.setLeftComponent(typeScrollPane);
- listsTab.setRightComponent(langScrollPane);
- tabbedPane.addTab("Types and languages", listsTab);
-
- this.add(tabbedPane, BorderLayout.CENTER);
- tabbedPane.validate();
- tabbedPane.repaint();
- }
-
-
- public void processFinished() {
- setTarget(dfb);
- }
-
- public void progressChanged(int i) {
- // nothing?
- }
-
- public void setTarget(Object target) {
- if(target == null || ! (target instanceof DocumentFrequencyBank)) {
- throw new IllegalArgumentException("This Viewer cannot show a "
- + (target == null ? "null" : target.getClass().toString()));
- }
-
- dfb = (DocumentFrequencyBank) target;
- docsField.setText("Doc count = " + this.dfb.getDocumentCount());
- freqTableModel.setBank(this.dfb);
- typeTableModel.setList(dfb.getTypes());
- langTableModel.setList(dfb.getLanguages());
- }
-}
-
-
-class DFTableModel extends AbstractTableModel {
- private static final long serialVersionUID = 7536874522584055763L;
-
- private List<Term> terms;
- private String[] columnNames = {"term", "doc frequency"};
- private Map<Term, Integer> docFrequencies;
-
- public DFTableModel() {
- this.docFrequencies = new HashMap<Term, Integer>();
- this.terms = new ArrayList<Term>();
- }
-
- public void setBank(DocumentFrequencyBank termbank) {
- this.docFrequencies = termbank.getDocFrequencies();
- this.terms = new ArrayList<Term>(docFrequencies.keySet());
- Collections.sort(this.terms, new TermComparator());
- }
-
- public int getColumnCount() {
- return 2;
- }
-
- public int getRowCount() {
- return this.terms.size();
- }
-
- public Object getValueAt(int row, int col) {
- Term term = this.terms.get(row);
- if (col == 0) {
- return term.toString();
- }
- // implied else
- if (this.docFrequencies.containsKey(term)) {
- return this.docFrequencies.get(term);
- }
- return 0;
- }
-
- public Class<?> getColumnClass(int col) {
- if (col == 0) {
- return String.class;
- }
- // implied else
- return Integer.class;
- }
-
- public String getColumnName(int col) {
- return columnNames[col];
- }
-
-}
-
-
-
-class ListTableModel extends AbstractTableModel {
- private static final long serialVersionUID = 8277085631925984080L;
-
- private List<String> strings;
- private String heading;
-
- public ListTableModel(String heading) {
- this.heading = heading;
- this.strings = new ArrayList<String>();
- }
-
- public void setList(Collection<String> strings) {
- this.strings = new ArrayList<String>(strings);
- Collections.sort(this.strings);
- }
-
- public int getColumnCount() {
- return 1;
- }
-
- public int getRowCount() {
- return this.strings.size();
- }
-
- public Object getValueAt(int row, int col) {
- return this.strings.get(row);
- }
-
- public Class<?> getColumnClass(int col) {
- return String.class;
- }
-
- public String getColumnName(int col) {
- return heading;
- }
-
-}
Modified:
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/gui/SliderPanel.java
===================================================================
---
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/gui/SliderPanel.java
2014-02-27 14:53:44 UTC (rev 17474)
+++
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/gui/SliderPanel.java
2014-02-27 15:02:48 UTC (rev 17475)
@@ -98,8 +98,8 @@
}
- public Double getValues() {
- return Double.valueOf(slider.getValue());
+ public int getValue() {
+ return slider.getValue();
}
public static JLabel intLabel(int i) {
Modified:
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/gui/TermbankViewer.java
===================================================================
---
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/gui/TermbankViewer.java
2014-02-27 14:53:44 UTC (rev 17474)
+++
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/gui/TermbankViewer.java
2014-02-27 15:02:48 UTC (rev 17475)
@@ -70,9 +70,9 @@
private JScrollPane treeScrollPane, freqScrollPane;
private AbstractTermbank termbank;
private JTree tree;
- private JTable freqTable;
+ private JTable termbankTable;
private JTabbedPane tabbedPane;
- private FrequencyTableModel freqTableModel;
+ private TermbankTableModel termbankTableModel;
private XHTMLPanel termCloud = new XHTMLPanel();
private JComboBox cloudType = new JComboBox(new String[]{"Term Score", "Term
Frequency", "Document Frequency"});
@@ -96,15 +96,15 @@
protected void populateTree(DefaultMutableTreeNode root, AbstractTermbank
termbank) {
List<Term> typeSortedTerms = termbank.getTermsByDescendingScore();
- Map<Term, Double> typeTermScores = termbank.getTermScores();
+ Map<Term, Number> typeTermScores = termbank.getDefaultScores();
Map<Term, Set<String>> typeTermDocuments = termbank.getTermDocuments();
DefaultMutableTreeNode node1, node2;
- Double minScore = sliderPanel.getValues();
+ int minScore = sliderPanel.getValue();
for (Term term : typeSortedTerms) {
- Double score = typeTermScores.get(term);
- if (score >= minScore) {
+ Number score = typeTermScores.get(term);
+ if (score.intValue() >= minScore) {
node1 = new DefaultMutableTreeNode(term + " " + score.toString());
root.add(node1);
@@ -142,11 +142,11 @@
controlPanel.validate();
controlPanel.repaint();
- freqTable = new JTable();
- freqTable.setAutoCreateRowSorter(true);
+ termbankTable = new JTable();
+ termbankTable.setAutoCreateRowSorter(true);
// Set the table model later, because the specific type of termbank
// will determine the number of columns
- freqScrollPane = new JScrollPane(freqTable,
+ freqScrollPane = new JScrollPane(termbankTable,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
tableTab.add(freqScrollPane, BorderLayout.CENTER);
@@ -301,9 +301,8 @@
sliderPanel = new SliderPanel(termbank, "display", false, this);
controlPanel.add(sliderPanel, BorderLayout.CENTER);
sliderPanel.reformat();
- freqTableModel = new FrequencyTableModel();
- freqTableModel.setTermbank(this.termbank);
- freqTable.setModel(freqTableModel);
+ termbankTableModel = new TermbankTableModel(this.termbank);
+ termbankTable.setModel(termbankTableModel);
}
@@ -316,8 +315,7 @@
}
public void setTarget(Object target) {
- if(target == null || ! (target instanceof AbstractTermbank)
- || (target instanceof DocumentFrequencyBank) ) {
+ if(target == null || ! (target instanceof AbstractTermbank)) {
throw new IllegalArgumentException("This Viewer cannot show a "
+ (target == null ? "null" : target.getClass().toString()));
}
@@ -428,77 +426,3 @@
}
}
-
-
-class FrequencyTableModel extends AbstractTableModel {
- private static final long serialVersionUID = -7654670667296912991L;
- private List<Term> terms;
- private String[] columnNames = {"term", "term frequency", "doc frequency",
"ref doc frequency"};
- private Map<Term, Integer> termFrequencies, docFrequencies;
- private AbstractTermbank termbank;
-
- public FrequencyTableModel() {
- this.termFrequencies = new HashMap<Term, Integer>();
- this.docFrequencies = new HashMap<Term, Integer>();
- this.terms = new ArrayList<Term>();
- }
-
- public void setTermbank(AbstractTermbank termbank) {
- this.termFrequencies = termbank.getTermFrequencies();
- this.docFrequencies = termbank.getDocFrequencies();
- this.terms = new ArrayList<Term>(termFrequencies.keySet());
- this.termbank = termbank;
- Collections.sort(this.terms, new TermComparator());
- }
-
- public int getColumnCount() {
- if (this.termbank instanceof TfIdfTermbank) {
- return 4;
- }
- return 3;
- }
-
- public int getRowCount() {
- return this.terms.size();
- }
-
- public Object getValueAt(int row, int col) {
- Term term = this.terms.get(row);
- if (col == 0) {
- return term.toString();
- }
- // implied else
- if (col == 1) {
- if (this.termFrequencies.containsKey(term)) {
- return this.termFrequencies.get(term);
- }
- return 0;
- }
- // implied else
- if (col == 2) {
- if (this.docFrequencies.containsKey(term)) {
- return this.docFrequencies.get(term);
- }
- return 0;
- }
- // implied else
- if (col == 3) {
- return ((TfIdfTermbank) this.termbank).getRefDocFrequency(term);
- }
- return 0;
- }
-
-
- public Class<?> getColumnClass(int col) {
- if (col == 0) {
- return String.class;
- }
- // implied else
- return Integer.class;
- }
-
- public String getColumnName(int col) {
- return columnNames[col];
- }
-
-}
Modified:
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/output/CsvGenerator.java
===================================================================
---
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/output/CsvGenerator.java
2014-02-27 14:53:44 UTC (rev 17474)
+++
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/output/CsvGenerator.java
2014-02-27 15:02:48 UTC (rev 17475)
@@ -32,8 +32,8 @@
writer.println(bank.getCsvHeader());
for (Term term : sortedTerms) {
- Double score = bank.getScore(term);
- if (score >= threshold.doubleValue()) {
+ Number score = bank.getDefaultScores().get(term);
+ if (score.doubleValue() >= threshold.doubleValue()) {
writer.println(bank.getCsvLine(term));
written++;
}
Modified:
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/util/Utilities.java
===================================================================
---
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/util/Utilities.java
2014-02-27 14:53:44 UTC (rev 17474)
+++
gate/branches/termraider-refactoring/plugins/TermRaider/src/gate/termraider/util/Utilities.java
2014-02-27 15:02:48 UTC (rev 17475)
@@ -33,7 +33,14 @@
}
- public static int incrementMap(Map<Term, Integer> map, Term key, int
increment) {
+ /** This is a little dodgy because it forces the new value
+ * to be Integer; to be used carefully.
+ * @param map
+ * @param key
+ * @param increment
+ * @return
+ */
+ public static int incrementMap(Map<Term, Number> map, Term key, int
increment) {
int count = 0;
if (map.containsKey(key)) {
count = map.get(key).intValue();
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Flow-based real-time traffic analytics software. Cisco certified tool.
Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
Customize your own dashboards, set traffic alerts and generate reports.
Network behavioral analysis & security monitoring. All-in-one tool.
http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
_______________________________________________
GATE-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gate-cvs