diff --git a/biutee/src/main/java/eu/excitementproject/eop/biutee/rteflow/systems/excitement/BiuteeMain.java b/biutee/src/main/java/eu/excitementproject/eop/biutee/rteflow/systems/excitement/BiuteeMain.java index 88b0845b..6b329edc 100644 --- a/biutee/src/main/java/eu/excitementproject/eop/biutee/rteflow/systems/excitement/BiuteeMain.java +++ b/biutee/src/main/java/eu/excitementproject/eop/biutee/rteflow/systems/excitement/BiuteeMain.java @@ -1,12 +1,11 @@ package eu.excitementproject.eop.biutee.rteflow.systems.excitement; import java.io.File; + import java.io.IOException; -import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.LinkedHashSet; -import java.util.List; import java.util.Set; import org.apache.log4j.Logger; @@ -133,17 +132,39 @@ private static void doTesting(CommonConfig config) throws EDAException, Componen } logger.trace(String.format("Processing all %d xmi files in %s using BiuteeEDA...", xmiFiles.length, lapOutputFolder)); - List results = new ArrayList(); + double tp=0,fp=0,tn=0,fn=0; + //List res = new ArrayList(); for (File xmi : xmiFiles) { JCas jcas = PlatformCASProber.probeXmi(xmi, null); TEDecision decision = eda.process(jcas); DecisionLabel gold = readGoldLabel(jcas, xmi); - results.add(gold.equals(decision.getDecision())); + //res.add(gold.equals(decision.getDecision())); + + if (gold.equals(decision.getDecision())) { + if (decision.getDecision() == DecisionLabel.Entailment) + tp++; + else + tn++; + } else { + if (decision.getDecision() == DecisionLabel.Entailment) + fp++; + else + fn++; + } + logger.info(String.format("Decision for %s: label=%s, confidence=%f", xmi, decision.getDecision(), decision.getConfidence())); } + double accuracy = (tp + tn) / (tp + fp + tn + fn); + double precision = tp / (tp + fp); + double recall = tp / (tp + fn); + double f1 = 2 * ((precision * recall) / (precision + recall)); + logger.trace(String.format("Finished processing %d xmi files using BiuteeEDA.", xmiFiles.length)); - logger.info("Accuracy: " + calcAccuracy(results)); + logger.info("Accuracy: " + accuracy); + logger.info("Precision: " + precision); + logger.info("Recall: " + recall); + logger.info("F1: " + f1); } finally { if (eda != null) { @@ -152,7 +173,7 @@ private static void doTesting(CommonConfig config) throws EDAException, Componen } } - private static double calcAccuracy(List results) { +/* private static double calcAccuracy(List results) { int correct = 0; for (Boolean result : results) { if (result) { @@ -160,7 +181,7 @@ private static double calcAccuracy(List results) { } } return ((double)correct) / results.size(); - } + }*/ private static DecisionLabel readGoldLabel(JCas jcas, File xmi) throws EDAException { DecisionLabel goldLabel = null; diff --git a/core/src/main/java/eu/excitementproject/eop/core/component/syntacticknowledge/SimilarityStorageBasedDIRTSyntacticResource.java b/core/src/main/java/eu/excitementproject/eop/core/component/syntacticknowledge/SimilarityStorageBasedDIRTSyntacticResource.java index e8c530fc..fbb57da5 100644 --- a/core/src/main/java/eu/excitementproject/eop/core/component/syntacticknowledge/SimilarityStorageBasedDIRTSyntacticResource.java +++ b/core/src/main/java/eu/excitementproject/eop/core/component/syntacticknowledge/SimilarityStorageBasedDIRTSyntacticResource.java @@ -68,11 +68,28 @@ public class SimilarityStorageBasedDIRTSyntacticResource extends SyntacticResour * @throws FileNotFoundException */ public SimilarityStorageBasedDIRTSyntacticResource(ConfigurationParams params) throws ConfigurationException, ElementTypeException, FileNotFoundException, RedisRunException { - this( - new DefaultSimilarityStorage(params), - new DependencyPathsFromTreeBinary(new BasicNodeConstructor(), new DependencyPathsFromTree.VerbAdjectiveNounPredicate(), true, true), - params.getInt(Configuration.TOP_N_RULES) - ); + String hostLeft = null; + int portLeft = -1; + try { + hostLeft = params.get(Configuration.L2R_REDIS_HOST); + portLeft = params.getInt(Configuration.L2R_REDIS_PORT); + } catch (ConfigurationException e) { + } + this.maxNumOfRetrievedRules = params.getInt(Configuration.TOP_N_RULES); + + if (hostLeft == null || portLeft == -1) + this.similarityStorage = new DefaultSimilarityStorage(params); + else { + String instanceName = ""; + try { + instanceName = params.get(Configuration.INSTANCE_NAME); + } catch (ConfigurationException e) { + instanceName = params.getConfigurationFile().toString(); + } + this.similarityStorage = new DefaultSimilarityStorage(hostLeft,portLeft,params.get(Configuration.RESOURCE_NAME),instanceName); + } + this.extractor = new DependencyPathsFromTreeBinary(new BasicNodeConstructor(), new DependencyPathsFromTree.VerbAdjectiveNounPredicate(), true, true); + this.matchCriteria = new BasicMatchCriteria(); } /** diff --git a/distsim/src/main/java/eu/excitementproject/eop/distsim/application/CompareElementFeatureData.java b/distsim/src/main/java/eu/excitementproject/eop/distsim/application/CompareElementFeatureData.java index 93ab6ef1..93f72561 100644 --- a/distsim/src/main/java/eu/excitementproject/eop/distsim/application/CompareElementFeatureData.java +++ b/distsim/src/main/java/eu/excitementproject/eop/distsim/application/CompareElementFeatureData.java @@ -2,6 +2,7 @@ import java.io.IOException; + import eu.excitementproject.eop.common.datastructures.immutable.ImmutableIterator; import eu.excitementproject.eop.distsim.items.Element; import eu.excitementproject.eop.distsim.items.Feature; @@ -31,7 +32,7 @@ public class CompareElementFeatureData { public static void main(String[] args) throws LoadingStateException, IOException, ItemNotFoundException, UndefinedKeyException, InvalidCountException { if (args.length != 3 && args.length != 4) { - System.out.println("Usage: java eu.excitementproject.eop.distsim.application.CompareItemData [, default no]"); + System.out.println("Usage: java eu.excitementproject.eop.distsim.application.CompareElementFeatureData [, default no]"); System.exit(0); } @@ -46,12 +47,15 @@ public static void main(String[] args) throws LoadingStateException, IOException file1.open(); elementFeatureData1.loadState(file1); file1.close(); + + IDKeyPersistentBasicMap> elementFeatureData2 = new TroveBasedIDKeyPersistentBasicMap>(); File file2 = new IdTroveBasicIntDoubleMapFile(new java.io.File(dir2 + "/" + args[2]),true); file2.open(); elementFeatureData2.loadState(file2); file2.close(); + file1 = new File(new java.io.File(dir1 + "/elements"),true); file1.open(); MemoryBasedCountableIdentifiableStorage elements1 = new MemoryBasedCountableIdentifiableStorage(file1); @@ -85,7 +89,7 @@ public static void main(String[] args) throws LoadingStateException, IOException file2.open(); MemoryBasedCountableIdentifiableStorage features2 = new MemoryBasedCountableIdentifiableStorage(file2); file2.close(); - + //compare features if (bCheckElementsAndFeatures) { System.out.println("comparing features"); diff --git a/distsim/src/main/java/eu/excitementproject/eop/distsim/application/CompareElementSimilarities.java b/distsim/src/main/java/eu/excitementproject/eop/distsim/application/CompareElementSimilarities.java index e1e45581..40d9bc3a 100644 --- a/distsim/src/main/java/eu/excitementproject/eop/distsim/application/CompareElementSimilarities.java +++ b/distsim/src/main/java/eu/excitementproject/eop/distsim/application/CompareElementSimilarities.java @@ -30,7 +30,7 @@ public class CompareElementSimilarities { public static void main(String[] args) throws LoadingStateException, IOException, ItemNotFoundException, UndefinedKeyException, InvalidCountException { if (args.length != 3) { - System.out.println("Usage: java eu.excitementproject.eop.distsim.application.CompareItemData "); + System.out.println("Usage: java eu.excitementproject.eop.distsim.application.CompareElementSimilarities "); System.exit(0); } diff --git a/distsim/src/main/java/eu/excitementproject/eop/distsim/application/CompareFeatureElements.java b/distsim/src/main/java/eu/excitementproject/eop/distsim/application/CompareFeatureElements.java index 2a990620..b72fbc39 100644 --- a/distsim/src/main/java/eu/excitementproject/eop/distsim/application/CompareFeatureElements.java +++ b/distsim/src/main/java/eu/excitementproject/eop/distsim/application/CompareFeatureElements.java @@ -29,7 +29,7 @@ public class CompareFeatureElements { public static void main(String[] args) throws LoadingStateException, IOException, ItemNotFoundException, UndefinedKeyException { if (args.length != 3) { - System.out.println("Usage: java eu.excitementproject.eop.distsim.application.CompareItemData "); + System.out.println("Usage: java eu.excitementproject.eop.distsim.application.CompareFeatureElements "); System.exit(0); } diff --git a/distsim/src/main/java/eu/excitementproject/eop/distsim/application/RunRedisResources.java b/distsim/src/main/java/eu/excitementproject/eop/distsim/application/RunRedisResources.java index fd9957c2..8c5062ba 100644 --- a/distsim/src/main/java/eu/excitementproject/eop/distsim/application/RunRedisResources.java +++ b/distsim/src/main/java/eu/excitementproject/eop/distsim/application/RunRedisResources.java @@ -20,6 +20,6 @@ public static void main(String[] args) throws Exception { String redisFile = args[0]; int port = Integer.parseInt(args[1].trim()); String redisConfFile = BasicRedisRunner.generateConfigurationFile(redisFile, port); - Runtime.getRuntime().exec(new String[]{BasicRedisRunner.DEFAULT_REDIS_BIN_DIR + "/" + BasicRedisRunner.REDIS_SERVER_CMD,redisConfFile}); + Runtime.getRuntime().exec(new String[]{BasicRedisRunner.DEFAULT_REDIS_BIN_DIR + "/" + BasicRedisRunner.getRedisServerCmd(),redisConfFile}); } } diff --git a/distsim/src/main/java/eu/excitementproject/eop/distsim/builders/cooccurrence/GeneralCooccurrenceExtractor.java b/distsim/src/main/java/eu/excitementproject/eop/distsim/builders/cooccurrence/GeneralCooccurrenceExtractor.java index 9b48d7fc..d7f6cd15 100644 --- a/distsim/src/main/java/eu/excitementproject/eop/distsim/builders/cooccurrence/GeneralCooccurrenceExtractor.java +++ b/distsim/src/main/java/eu/excitementproject/eop/distsim/builders/cooccurrence/GeneralCooccurrenceExtractor.java @@ -47,7 +47,7 @@ @SuppressWarnings("rawtypes") public class GeneralCooccurrenceExtractor implements CooccurrencesExtractor { - private static Logger logger = Logger.getLogger(GeneralCooccurrenceExtractor.class); + //private static Logger logger = Logger.getLogger(GeneralCooccurrenceExtractor.class); /* public GeneralCooccurrenceExtractor(int iThreadNum, CooccurrenceExtraction cooccurrenceExtraction,FileBasedSentenceReader sentenceReader, DataStructureFactory dataStructureFactory) { this.iThreadNum = iThreadNum; @@ -57,9 +57,10 @@ public GeneralCooccurrenceExtractor(int iThreadNum, CooccurrenceExtraction coocc public GeneralCooccurrenceExtractor(ConfigurationParams params,DataStructureFactory dataStructureFactory) throws ConfigurationException, CreationException { this.iThreadNum = params.getInt(Configuration.THREAD_NUM); - if (iThreadNum > 1) { + /*if (this.iThreadNum > 1) { logger.warn("Multi-threading is temporarilly not supported - a single thread will be applied instead"); - } + this.iThreadNum = 1; + }*/ this.confParams = params; this.textUnitStorage = dataStructureFactory.createTextUnitsDataStructure(); this.cooccurrenceStorage = dataStructureFactory.createCooccurrencesDataStucture(); @@ -77,7 +78,7 @@ public CooccurrenceStorage constructCooccurrenceDB(File corpus) throws Cooccurre Set files = FileUtils.getFiles(corpus); //tmp - System.out.println("total number of files: " + files.size()); + //System.out.println("total number of files: " + files.size()); int filesPerCollector = files.size() / iThreadNum; if (files.size() % iThreadNum > 0) @@ -114,7 +115,7 @@ public CooccurrenceStorage constructCooccurrenceDB(File corpus) throws Cooccurre } } - protected final int iThreadNum; + protected int iThreadNum; protected final ConfigurationParams confParams; protected CountableIdentifiableStorage textUnitStorage; protected CountableIdentifiableStorage cooccurrenceStorage; @@ -130,7 +131,7 @@ class CooccurrenceCollector implements Runnable { this.cooccurrenceExtraction = (CooccurrenceExtraction) Factory.create(confParams.get(Configuration.EXTRACTION_CLASS), confParams); //tmp - System.out.println("Thread " + id + ": got " + files.size() + " files"); + //System.out.println("Thread " + id + ": got " + files.size() + " files"); } @Override diff --git a/distsim/src/main/java/eu/excitementproject/eop/distsim/builders/elementfeature/GeneralElementFeatureExtractor.java b/distsim/src/main/java/eu/excitementproject/eop/distsim/builders/elementfeature/GeneralElementFeatureExtractor.java index a6818201..61677a75 100644 --- a/distsim/src/main/java/eu/excitementproject/eop/distsim/builders/elementfeature/GeneralElementFeatureExtractor.java +++ b/distsim/src/main/java/eu/excitementproject/eop/distsim/builders/elementfeature/GeneralElementFeatureExtractor.java @@ -180,7 +180,6 @@ public void run() { break; } - // extract element and feature from the given co-occurrence, and store their counts try { @@ -225,8 +224,8 @@ public void run() { System.out.println(e.toString()); } catch (Exception e) { logger.error(ExceptionUtil.getStackTrace(e)); - } - } + } + } System.out.println(c + " cooccurrences were processed by extractor " + threadID); diff --git a/distsim/src/main/java/eu/excitementproject/eop/distsim/builders/scoring/GeneralElementFeatureScorer.java b/distsim/src/main/java/eu/excitementproject/eop/distsim/builders/scoring/GeneralElementFeatureScorer.java index 9b3aa7ad..05a07ecd 100644 --- a/distsim/src/main/java/eu/excitementproject/eop/distsim/builders/scoring/GeneralElementFeatureScorer.java +++ b/distsim/src/main/java/eu/excitementproject/eop/distsim/builders/scoring/GeneralElementFeatureScorer.java @@ -165,13 +165,8 @@ public void run() { //compute element-feature scores try { - - - - Element element = elementFeaturecounts.getElement(elementFeatureJointCount.getElementId()); - - ImmutableIterator featureCounts = elementFeatureJointCount.getFeatureCounts(); - + Element element = elementFeaturecounts.getElement(elementFeatureJointCount.getElementId()); + ImmutableIterator featureCounts = elementFeatureJointCount.getFeatureCounts(); // measure the score for each feature, based on its counts Map tmpCommonScoredFeatures = new HashMap(); Map tmpScoredFeatures = new HashMap(); diff --git a/distsim/src/main/java/eu/excitementproject/eop/distsim/items/LemmaPosTextUnit.java b/distsim/src/main/java/eu/excitementproject/eop/distsim/items/LemmaPosTextUnit.java index 3a144235..10384978 100644 --- a/distsim/src/main/java/eu/excitementproject/eop/distsim/items/LemmaPosTextUnit.java +++ b/distsim/src/main/java/eu/excitementproject/eop/distsim/items/LemmaPosTextUnit.java @@ -35,7 +35,7 @@ public LemmaPosTextUnit(LemmaPos data, int id, long count) { } @Override - public TextUnit copy() { + public synchronized TextUnit copy() { return new LemmaPosTextUnit(data, id,(long)count); } diff --git a/distsim/src/main/java/eu/excitementproject/eop/distsim/redis/BasicRedisRunner.java b/distsim/src/main/java/eu/excitementproject/eop/distsim/redis/BasicRedisRunner.java index 7202a1e4..23818e47 100644 --- a/distsim/src/main/java/eu/excitementproject/eop/distsim/redis/BasicRedisRunner.java +++ b/distsim/src/main/java/eu/excitementproject/eop/distsim/redis/BasicRedisRunner.java @@ -6,6 +6,7 @@ import java.io.BufferedReader; + import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; @@ -21,6 +22,7 @@ import org.apache.log4j.Logger; +import eu.excitementproject.eop.common.utilities.OS; import eu.excitementproject.eop.common.utilities.configuration.ConfigurationException; import eu.excitementproject.eop.common.utilities.configuration.ConfigurationParams; import eu.excitementproject.eop.distsim.util.Configuration; @@ -153,7 +155,6 @@ public class BasicRedisRunner implements RedisRunner { protected static final String PID_FILE_EXT = ".pid"; protected static final String VM_SWAP_FILE_EXT = ".swap"; protected static final String DB_FILE_EXT = ".rdb"; - public static final String REDIS_SERVER_CMD = "redis-server"; protected static RedisRunner instance = null; protected static String redisBinDir; //a path to the Redis binary directory @@ -165,9 +166,10 @@ public class BasicRedisRunner implements RedisRunner { * * @return a singleton instance of BasicRedisRunner * - * @throws FileNotFoundException in case the default redis binary directory and/or the default configuration file are not existed + * @throws RedisRunException in case the default redis binary directory and/or the default configuration file are not existed + * or does not support current OS */ - public synchronized static RedisRunner getInstance() throws FileNotFoundException { + public synchronized static RedisRunner getInstance() throws RedisRunException { if (instance == null) { instance = new BasicRedisRunner(); } @@ -180,13 +182,18 @@ public synchronized static RedisRunner getInstance() throws FileNotFoundExceptio * @param templateConfigurationFile a path to a Redis configuration file * @return a singleton instance of BasicRedisRunner * - * @throws FileNotFoundException in case the default redis binary directory and/or the default configuration file are not existed + * @throws RedisRunException in case the default redis binary directory and/or the default configuration file are not existed, + * or does not support current OS */ - public synchronized static RedisRunner getInstance(String templateConfigurationFile) throws FileNotFoundException { + public synchronized static RedisRunner getInstance(String templateConfigurationFile) throws RedisRunException { if (instance == null) { instance = new BasicRedisRunner(); } - ((BasicRedisRunner)instance).setRedisConfigurationFileTemplate(templateConfigurationFile); + try { + ((BasicRedisRunner)instance).setRedisConfigurationFileTemplate(templateConfigurationFile); + } catch (FileNotFoundException e) { + throw new RedisRunException(e); + } return instance; } @@ -214,9 +221,10 @@ public synchronized static void setRedisBinDir(String redisBinDir) throws Redis * * @return a singleton instance of BasicRedisRunner * - * @throws FileNotFoundException in case the configured redis binary directory and/or configuration template file are not existed + * @throws RedisRunException in case the configured redis binary directory and/or configuration template file are not existed + * or does not support current OS */ - public synchronized static RedisRunner getInstance(ConfigurationParams params) throws FileNotFoundException { + public synchronized static RedisRunner getInstance(ConfigurationParams params) throws RedisRunException { if (instance == null) { try { BasicRedisRunner.redisBinDir = params.get(Configuration.REDIS_BIN_DIR); @@ -227,6 +235,8 @@ public synchronized static RedisRunner getInstance(ConfigurationParams params) t try { ((BasicRedisRunner)instance).setRedisConfigurationFileTemplate(params.get(Configuration.REDIS_CONFIGURATION_TEMPLATE_FILE)); + } catch (FileNotFoundException e) { + throw new RedisRunException(e); } catch (ConfigurationException e) { } @@ -236,14 +246,15 @@ public synchronized static RedisRunner getInstance(ConfigurationParams params) t /** * Constructs BasicRedisRunner, based on a default location of the Redis binary directory (.) and a default location of the Redis configuration template file (desc/redis.conf) * - * @throws FileNotFoundException in case the default redis binary directory and/or the default configuration file are not existed + * @throws RedisRunException in case the default redis binary directory and/or the default configuration file are not existed, + * or does not support current OS */ - private BasicRedisRunner() throws FileNotFoundException { + private BasicRedisRunner() throws RedisRunException { this.templateConfigurationFile = redisBinDir + "/" + DEFAULT_TEMPLATE_CONFIGURATION_FILE_NAME; this.mapDir2FileInstanceInfo = new HashMap(); this.usedPorts = new HashSet(); - if (!new File(redisBinDir + "/" + REDIS_SERVER_CMD).exists()) - throw new FileNotFoundException("Redis server executable was not found: " + redisBinDir + "/" + REDIS_SERVER_CMD + ". Recheck the redis server directory argument"); + if (!new File(redisBinDir + "/" + getRedisServerCmd()).exists()) + throw new RedisRunException("Redis server executable was not found: " + redisBinDir + "/" + getRedisServerCmd() + ". Recheck the redis server directory argument"); //this.executor = new DefaultExecutor(); } @@ -317,7 +328,7 @@ public void onProcessFailed(ExecuteException e) { logger.warn(e.toString()); } });*/ - Process process = Runtime.getRuntime().exec(new String[]{redisBinDir + "/" + REDIS_SERVER_CMD,confFile}); + Process process = Runtime.getRuntime().exec(new String[]{redisBinDir + "/" + getRedisServerCmd(),confFile}); waitForRedisInitializing(process); logger.info("The redis server on port " + port + ", based on " + confFile + " configuration, is ready now"); @@ -534,7 +545,16 @@ public static void main(String[] args) { } + + public static String getRedisServerCmd() throws RedisRunException { + if (OS.isLinux() || OS.isUnix()) + return "redis-server"; + if (OS.isWindows()) + return "redis-server.exe"; + throw new RedisRunException("Current operating system does not support Redis servewr execution"); + } + static { - redisBinDir = DEFAULT_REDIS_BIN_DIR; + redisBinDir = DEFAULT_REDIS_BIN_DIR; } } diff --git a/distsim/src/main/java/eu/excitementproject/eop/distsim/resource/SimilarityStorageBasedLexicalResource.java b/distsim/src/main/java/eu/excitementproject/eop/distsim/resource/SimilarityStorageBasedLexicalResource.java index 46c1cfb3..750b3ab4 100644 --- a/distsim/src/main/java/eu/excitementproject/eop/distsim/resource/SimilarityStorageBasedLexicalResource.java +++ b/distsim/src/main/java/eu/excitementproject/eop/distsim/resource/SimilarityStorageBasedLexicalResource.java @@ -89,8 +89,15 @@ public SimilarityStorageBasedLexicalResource(ConfigurationParams params) throws if (hostLeft == null || portLeft == -1 || hostRight == null || portRight == -1) this.similarityStorage = new DefaultSimilarityStorage(params); - else - this.similarityStorage = new DefaultSimilarityStorage(hostLeft,portLeft,hostRight,portRight,params.get(Configuration.RESOURCE_NAME),params.get(Configuration.INSTANCE_NAME)); + else { + String instanceName = ""; + try { + instanceName = params.get(Configuration.INSTANCE_NAME); + } catch (ConfigurationException e) { + instanceName = params.getConfigurationFile().toString(); + } + this.similarityStorage = new DefaultSimilarityStorage(hostLeft,portLeft,hostRight,portRight,params.get(Configuration.RESOURCE_NAME),instanceName); + } } diff --git a/distsim/src/main/java/eu/excitementproject/eop/distsim/resource/TestLemmaPosSimilarity.java b/distsim/src/main/java/eu/excitementproject/eop/distsim/resource/TestLemmaPosSimilarity.java index 4a2dedc2..b1c53416 100644 --- a/distsim/src/main/java/eu/excitementproject/eop/distsim/resource/TestLemmaPosSimilarity.java +++ b/distsim/src/main/java/eu/excitementproject/eop/distsim/resource/TestLemmaPosSimilarity.java @@ -41,32 +41,40 @@ public static void main(String[] args) throws SimilarityNotFoundException, Lexic } //ConfigurationFile confFile = new ConfigurationFile(args[0]); - ConfigurationFile confFile = new ConfigurationFile(new ImplCommonConfig(new File(args[0]))); + ConfigurationFile confFile = new ConfigurationFile(new ImplCommonConfig(new File(args[0]))); ConfigurationParams confParams = confFile.getModuleConfiguration(Configuration.KNOWLEDGE_RESOURCE); - - LexicalResource resource = new SimilarityStorageBasedLexicalResource(confParams); - List> similarities = resource.getRulesForLeft("affect",null); + LexicalResource resource = new SimilarityStorageBasedLexicalResource(confParams); + //LexicalResource resource = new SimilarityStorageBasedLexicalResource("te-srv2", 7002,"te-srv2",7003,"a","b",10); + + //LexicalResource resource2 = new SimilarityStorageBasedLexicalResource("te-srv2", 7005,null,-1,"a","b",10); + + /*List> similarities = resource.getRulesForLeft("chair",null); System.out.println("left-2-right rules for affect: "); for (LexicalRule similarity : similarities) System.out.println("<" + similarity.getLLemma() + "," + similarity.getLPos() + ">" + " --> " + "<" + similarity.getRLemma() + "," + similarity.getRPos() + ">" + ": " + similarity.getConfidence()); - similarities = resource.getRulesForRight("affect",null); + similarities = resource.getRulesForRight("chair",null); System.out.println("\nright-2-left rules for affect: "); for (LexicalRule similarity : similarities) System.out.println("<" + similarity.getLLemma() + "," + similarity.getLPos() + ">" + " --> " + "<" + similarity.getRLemma() + "," + similarity.getRPos() + ">" + ": " + similarity.getConfidence()); - +*/ - similarities = resource.getRulesForLeft("affect",new ByCanonicalPartOfSpeech(CanonicalPosTag.V.name())); + List> similarities = resource.getRulesForLeft("acquire",new ByCanonicalPartOfSpeech(CanonicalPosTag.V.name())); System.out.println("\nleft-2-right rules for affect as a verb: "); for (LexicalRule similarity : similarities) System.out.println("<" + similarity.getLLemma() + "," + similarity.getLPos() + ">" + " --> " + "<" + similarity.getRLemma() + "," + similarity.getRPos() + ">" + ": " + similarity.getConfidence()); - similarities = resource.getRulesForRight("affect",new ByCanonicalPartOfSpeech(CanonicalPosTag.V.name())); + /*List> similarities2 = resource2.getRulesForLeft("prince",new ByCanonicalPartOfSpeech(CanonicalPosTag.NN.name())); + System.out.println("\nleft-2-right rules for affect as a verb: "); + for (LexicalRule similarity : similarities2) + System.out.println("<" + similarity.getLLemma() + "," + similarity.getLPos() + ">" + " --> " + "<" + similarity.getRLemma() + "," + similarity.getRPos() + ">" + ": " + similarity.getConfidence());*/ + + /* similarities = resource.getRulesForRight("chair",new ByCanonicalPartOfSpeech(CanonicalPosTag.NN.name())); System.out.println("\nright-2-left rules for affect as a verb: "); for (LexicalRule similarity : similarities) - System.out.println("<" + similarity.getLLemma() + "," + similarity.getLPos() + ">" + " --> " + "<" + similarity.getRLemma() + "," + similarity.getRPos() + ">" + ": " + similarity.getConfidence()); + System.out.println("<" + similarity.getLLemma() + "," + similarity.getLPos() + ">" + " --> " + "<" + similarity.getRLemma() + "," + similarity.getRPos() + ">" + ": " + similarity.getConfidence());*/ } } diff --git a/distsim/src/main/java/eu/excitementproject/eop/distsim/storage/DefaultSimilarityStorage.java b/distsim/src/main/java/eu/excitementproject/eop/distsim/storage/DefaultSimilarityStorage.java index c75b8ee0..9785e2fc 100644 --- a/distsim/src/main/java/eu/excitementproject/eop/distsim/storage/DefaultSimilarityStorage.java +++ b/distsim/src/main/java/eu/excitementproject/eop/distsim/storage/DefaultSimilarityStorage.java @@ -146,13 +146,17 @@ public DefaultSimilarityStorage(String leftRedisHost, int leftRedisPort, String * */ public DefaultSimilarityStorage(ConfigurationParams params) throws ConfigurationException, ElementTypeException, FileNotFoundException, RedisRunException { - //this. + String redisDir = null; + try { + redisDir = params.get(Configuration.REDIS_BIN_DIR); + } catch (ConfigurationException e) {} + String l2rRedisFile = params.get(Configuration.L2R_REDIS_DB_FILE); - this.leftElemntSimilarities = new RedisBasedStringListBasicMap(l2rRedisFile); + this.leftElemntSimilarities = (redisDir == null ? new RedisBasedStringListBasicMap(l2rRedisFile) : new RedisBasedStringListBasicMap(l2rRedisFile,redisDir)); try { //this. String r2lRedisFile= params.get(Configuration.R2L_REDIS_DB_FILE); - this.rightElemntSimilarities = new RedisBasedStringListBasicMap(r2lRedisFile); + this.rightElemntSimilarities = (redisDir == null ? new RedisBasedStringListBasicMap(r2lRedisFile) : new RedisBasedStringListBasicMap(r2lRedisFile,redisDir)); } catch (ConfigurationException e) { //this.l2rRedisFile = null; this.rightElemntSimilarities = null; diff --git a/distsim/src/main/java/eu/excitementproject/eop/distsim/storage/RedisBasedBasicMap.java b/distsim/src/main/java/eu/excitementproject/eop/distsim/storage/RedisBasedBasicMap.java index 2f899de7..3099995f 100644 --- a/distsim/src/main/java/eu/excitementproject/eop/distsim/storage/RedisBasedBasicMap.java +++ b/distsim/src/main/java/eu/excitementproject/eop/distsim/storage/RedisBasedBasicMap.java @@ -3,7 +3,6 @@ */ package eu.excitementproject.eop.distsim.storage; -import java.io.FileNotFoundException; import java.io.Serializable; import org.apache.log4j.Logger; @@ -37,7 +36,7 @@ public class RedisBasedBasicMap private static final long serialVersionUID = 1L; - public RedisBasedBasicMap(String dbFile) throws FileNotFoundException, RedisRunException { + public RedisBasedBasicMap(String dbFile) throws RedisRunException { this.dbFile = dbFile; int port = BasicRedisRunner.getInstance().run(dbFile); JedisPool pool = new JedisPool(new JedisPoolConfig(), "localhost",port); @@ -46,7 +45,7 @@ public RedisBasedBasicMap(String dbFile) throws FileNotFoundException, RedisRunE jedis.getClient().setTimeoutInfinite(); } - public RedisBasedBasicMap(ConfigurationParams params) throws ConfigurationException, FileNotFoundException, RedisRunException { + public RedisBasedBasicMap(ConfigurationParams params) throws ConfigurationException, RedisRunException { this(params.get(Configuration.REDIS_FILE)); } diff --git a/distsim/src/main/java/eu/excitementproject/eop/distsim/storage/RedisBasedCountableIdentifiableStorage.java b/distsim/src/main/java/eu/excitementproject/eop/distsim/storage/RedisBasedCountableIdentifiableStorage.java index fdb9ca04..7451ab17 100644 --- a/distsim/src/main/java/eu/excitementproject/eop/distsim/storage/RedisBasedCountableIdentifiableStorage.java +++ b/distsim/src/main/java/eu/excitementproject/eop/distsim/storage/RedisBasedCountableIdentifiableStorage.java @@ -1,7 +1,5 @@ package eu.excitementproject.eop.distsim.storage; -import java.io.FileNotFoundException; - import java.util.HashSet; import java.util.Set; @@ -49,7 +47,7 @@ public class RedisBasedCountableIdentifiableStorage - 1 + 10 - dist-sim-bap-proximity + dist-sim-bap demo - - redis/db/bap/similarity-l2r.rdb - - - redis/db/bap/similarity-r2l.rdb - 20 + + + + + + + + + + models/bap/similarity-l2r.rdb + + models/bap/similarity-r2l.rdb + + + + + diff --git a/distsim/src/main/resources/demo/configurations/dirt/coocuurence-extraction.xml b/distsim/src/main/resources/demo/configurations/dirt/coocuurence-extraction.xml index e7e185e2..049dd7f4 100644 --- a/distsim/src/main/resources/demo/configurations/dirt/coocuurence-extraction.xml +++ b/distsim/src/main/resources/demo/configurations/dirt/coocuurence-extraction.xml @@ -12,7 +12,7 @@
- 1 + 10 demo - - redis/db/dirt/similarity-l2r.rdb - 20 + + + + + + + + + models/dirt/similarity-l2r.rdb + + + + +
diff --git a/distsim/src/main/resources/demo/configurations/lin/dependency/coocuurence-extraction.xml b/distsim/src/main/resources/demo/configurations/lin/dependency/coocuurence-extraction.xml index 98fdc112..17710302 100644 --- a/distsim/src/main/resources/demo/configurations/lin/dependency/coocuurence-extraction.xml +++ b/distsim/src/main/resources/demo/configurations/lin/dependency/coocuurence-extraction.xml @@ -12,7 +12,7 @@
- 1 + 10 demo - - - models/lin/dependency/similarity-l2r.rdb - - - models/lin/dependency/similarity-r2l.rdb - + 20 + + + + + + + + + models/lin/dependency/similarity-l2r.rdb + + models/lin/dependency/similarity-r2l.rdb + + + + +
diff --git a/distsim/src/main/resources/demo/configurations/lin/proximity/coocuurence-extraction.xml b/distsim/src/main/resources/demo/configurations/lin/proximity/coocuurence-extraction.xml index e6caffea..cfbde4ea 100644 --- a/distsim/src/main/resources/demo/configurations/lin/proximity/coocuurence-extraction.xml +++ b/distsim/src/main/resources/demo/configurations/lin/proximity/coocuurence-extraction.xml @@ -12,7 +12,7 @@
- 1 + 10 demo - - redis/db/lin/proximity/similarity-l2r.rdb - - - redis/db/lin/proximity/similarity-r2l.rdb - 20 + + + + + + + + + models/lin/proximity/similarity-l2r.rdb + + models/lin/proximity/similarity-r2l.rdb + + + + +
diff --git a/distsim/src/main/resources/demo/redis/redis-server.exe b/distsim/src/main/resources/demo/redis/redis-server.exe new file mode 100644 index 00000000..2285c647 Binary files /dev/null and b/distsim/src/main/resources/demo/redis/redis-server.exe differ diff --git a/lexicalinferenceminer/src/main/java/eu/excitementproject/eop/lexicalminer/LexiclRulesRetrieval/WikipediaLexicalResource.java b/lexicalinferenceminer/src/main/java/eu/excitementproject/eop/lexicalminer/LexiclRulesRetrieval/WikipediaLexicalResource.java index e4cc9f5d..1ea19440 100644 --- a/lexicalinferenceminer/src/main/java/eu/excitementproject/eop/lexicalminer/LexiclRulesRetrieval/WikipediaLexicalResource.java +++ b/lexicalinferenceminer/src/main/java/eu/excitementproject/eop/lexicalminer/LexiclRulesRetrieval/WikipediaLexicalResource.java @@ -47,6 +47,7 @@ public class WikipediaLexicalResource implements LexicalResource { private static final int DEFAULT_RULES_LIMIT = 1000; + private static final double MINIMAL_CONFIDENCE = 0.00000000001; //private static Logger logger = Logger.getLogger(WikipediaLexicalResource.class); @@ -175,7 +176,7 @@ private List> makeLexicalRules(List rule = new LexicalRule(ruleData.getLeftTerm(), this.m_nounPOS, - ruleData.getRightTerm(), this.m_nounPOS, m_classifier.getRank(ruleData), ruleData.getRuleType(), + ruleData.getRightTerm(), this.m_nounPOS, Math.max(m_classifier.getRank(ruleData),MINIMAL_CONFIDENCE), ruleData.getRuleType(), ruleData.getRuleResource(), getRuleInfo(ruleData)); rules.add(rule); }