
gr.demokritos.iit.jinsect.documentModel.representations.NGramGaussNormDocument Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of JInsect Show documentation
Show all versions of JInsect Show documentation
The JINSECT toolkit is a Java-based toolkit and library that supports and demonstrates the use of n-gram graphs within Natural Language Processing applications, ranging from summarization and summary evaluation to text classification and indexing.
The newest version!
/*
* NGramGaussNormDocument.java
*
* Created on May 29, 2007, 6:48 PM
*
*/
package gr.demokritos.iit.jinsect.documentModel.representations;
import java.io.IOException;
import java.io.InvalidClassException;
import gr.demokritos.iit.jinsect.documentModel.comparators.CachedDocumentComparator;
import gr.demokritos.iit.jinsect.documentModel.documentTypes.NGramDocument;
import gr.demokritos.iit.jinsect.structs.ISimilarity;
/**
*
* @author ggianna
*/
public class NGramGaussNormDocument extends NGramDocument {
protected DocumentNGramGaussNormGraph Graph;
/** Creates a new instance, using graphs with Gauss-function-normalized edge weights for neighbouring.*/
public NGramGaussNormDocument() {
Graph = new DocumentNGramGaussNormGraph();
Histogram = new DocumentNGramHistogram();
}
public NGramGaussNormDocument(int iMinGraphSize, int iMaxGraphSize, int iGraphCorrelationWindow,
int iMinHistogramSize, int iMaxHistogramSize) {
Graph = new DocumentNGramGaussNormGraph(iMinGraphSize, iMaxGraphSize, iGraphCorrelationWindow);
Histogram = new DocumentNGramHistogram(iMinHistogramSize, iMaxHistogramSize);
}
public DocumentNGramGaussNormGraph getDocumentGraph() {
return Graph;
}
/** Set the graph to a {@link DocumentNGramGaussNormGraph} graph supplied. If a type of
*@param idgNew The graph to use.
*/
public void setDocumentGraph(DocumentNGramGaussNormGraph idgNew) {
Graph = idgNew;
}
public static void main(String[] sArgs) {
final NGramGaussNormDocument dggTest1 = new NGramGaussNormDocument(3, 5, 30, 3, 3);
final NGramGaussNormDocument dggTest2 = new NGramGaussNormDocument(3, 5, 30, 3, 3);
// NGramGaussNormDocument dggTest3 = new NGramGaussNormDocument(3, 3, 176, 3, 3);
// NGramDocument dgTest1 = new NGramDocument(3, 3, 176, 3, 3);
// NGramDocument dgTest2 = new NGramDocument(3, 3, 176, 3, 3);
// NGramDocument dgTest3 = new NGramDocument(3, 3, 176, 3, 3);
final String s1 = "Gauss1";
final String s2 = "Gauss2";
// String s3 = "/home/ggianna/JInsect/DUC/models2005/D301/D301.M.250.I.A";
// System.err.println("Loading " + s1);
// dgTest1.loadDataStringFromFile(s1);
// System.err.println("Loading " + s2);
// dgTest2.loadDataStringFromFile(s2);
// System.err.println("Loading " + s3);
// dgTest3.loadDataStringFromFile(s3);
//
Thread t1 = new Thread(new Runnable() {
public void run() {
System.err.println("Complex Loading " + s1);
dggTest1.loadDataStringFromFile(s1);
System.err.println("Cache (1) success:" + dggTest1.getDocumentGraph().eclLocator.getSuccessRatio());
}
});
t1.start();
Thread t2 = new Thread(new Runnable() {
public void run() {
System.err.println("Complex Loading " + s2);
dggTest2.loadDataStringFromFile(s2);
System.err.println("Cache (2) success:" + dggTest2.getDocumentGraph().eclLocator.getSuccessRatio());
}
});
t2.start();
while (t1.isAlive() || t2.isAlive())
Thread.yield();
System.err.println("Loading complete. Starting comparison...");
// System.err.println("Complex Loading " + s3);
// dggTest3.loadDataStringFromFile(s3);
t1 = new Thread(new Runnable() {
public void run() {
CachedDocumentComparator std = new CachedDocumentComparator(1.0);
ISimilarity sSimil;
try {
sSimil = std.getSimilarityBetween(dggTest1, dggTest2);
System.err.println("Overall similarity (Gauss)" + sSimil.getOverallSimilarity());
} catch (InvalidClassException ex) {
ex.printStackTrace();
}
}
});
// sSimil = std.getSimilarityBetween(dgTest1, dgTest2);
// System.err.println("Overall similarity (usual)" + sSimil.getOverallSimilarity());
t2 = new Thread(new Runnable() {
public void run() {
CachedDocumentComparator std = new CachedDocumentComparator(1.0);
try {
ISimilarity sSimil = std.getSimilarityBetween(dggTest1, dggTest1);
System.err.println("Overall similarity in case of complete match (Gauss)" +
sSimil.getOverallSimilarity());
} catch (InvalidClassException ex) {
ex.printStackTrace();
}
}
});
t1.start();
t2.start();
// sSimil = std.getSimilarityBetween(dgTest1, dgTest3);
// System.err.println("Overall similarity in case of complete match (usual)" +
// sSimil.getOverallSimilarity());
while (t1.isAlive() || t2.isAlive())
Thread.yield();
System.err.println("\nTest complete.");
}
public void loadDataStringFromFile(String sFilename) {
try {
Histogram.loadDataStringFromFile(sFilename);
Graph.loadDataStringFromFile(sFilename);
}
catch (IOException ioe) {
ioe.printStackTrace();
Histogram.setDataString("");
Graph.setDataString("");
}
}
public void setDataString(String sDataString) {
Histogram.setDataString(sDataString);
Graph.setDataString(sDataString);
}
public void clear() {
Graph.InitGraphs();
Histogram.setDataString("");
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy