You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opennlp.apache.org by ma...@apache.org on 2023/01/26 20:26:28 UTC
[opennlp-sandbox] branch migrate_nlp-utils-sandbox-component_to_java11 created (now a398878)
This is an automated email from the ASF dual-hosted git repository.
mawiesne pushed a change to branch migrate_nlp-utils-sandbox-component_to_java11
in repository https://gitbox.apache.org/repos/asf/opennlp-sandbox.git
at a398878 migrate sandbox component 'nlp-utils' to Java 11
This branch includes the following new commits:
new a398878 migrate sandbox component 'nlp-utils' to Java 11
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[opennlp-sandbox] 01/01: migrate sandbox component 'nlp-utils' to Java 11
Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
mawiesne pushed a commit to branch migrate_nlp-utils-sandbox-component_to_java11
in repository https://gitbox.apache.org/repos/asf/opennlp-sandbox.git
commit a398878c9ebb5c62d51ecbfb981b84e2fba9b7f0
Author: Martin Wiesner <ma...@hs-heilbronn.de>
AuthorDate: Thu Jan 26 21:26:20 2023 +0100
migrate sandbox component 'nlp-utils' to Java 11
- adjusts parent project (org.apache.apache) to version 18
- adjusts Java language level to 11
- cures some deprecation issues
- improves existing JavaDoc
---
nlp-utils/pom.xml | 25 +-
.../anomalydetection/AnomalyDetectionUtils.java | 7 +-
.../org/apache/opennlp/utils/cfg/CFGBuilder.java | 2 +-
.../org/apache/opennlp/utils/cfg/CFGRunner.java | 265 ++++++++++-----------
.../opennlp/utils/cfg/ContextFreeGrammar.java | 8 +-
.../utils/cfg/ProbabilisticContextFreeGrammar.java | 22 +-
.../classification/SimpleNaiveBayesClassifier.java | 27 ++-
.../UpdatableSimpleNaiveBayesClassifier.java | 24 +-
.../opennlp/utils/languagemodel/LanguageModel.java | 12 +-
.../languagemodel/NaiveSentenceLanguageModel.java | 4 +-
.../opennlp/utils/languagemodel/NoisyChannel.java | 4 +-
.../TrigramSentenceLanguageModel.java | 2 +-
.../org/apache/opennlp/utils/ngram/NGramUtils.java | 6 +-
.../utils/regression/GradientDescentUtils.java | 2 +-
.../opennlp/utils/regression/Hypothesis.java | 2 +-
.../regression/LinearCombinationHypothesis.java | 2 +-
.../utils/regression/RegressionModelUtils.java | 32 +--
.../java/org/apache/opennlp/utils/TestUtils.java | 8 +-
.../AnomalyDetectionUtilsTest.java | 5 +-
.../SimpleNaiveBayesClassifierTest.java | 6 +-
.../NaiveSentenceLanguageModelTest.java | 16 +-
.../TrigramSentenceLanguageModelTest.java | 16 +-
.../apache/opennlp/utils/ngram/NGramUtilsTest.java | 12 +-
.../utils/regression/GradientDescentUtilsTest.java | 2 +-
.../utils/regression/RegressionModelUtilsTest.java | 13 +-
25 files changed, 268 insertions(+), 256 deletions(-)
diff --git a/nlp-utils/pom.xml b/nlp-utils/pom.xml
index 70d0df9..5a006ab 100644
--- a/nlp-utils/pom.xml
+++ b/nlp-utils/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
@@ -19,12 +20,22 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
-
+ <parent>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <!-- TODO OPENNLP-1452 once this is resolved, move to 29 as well. -->
+ <version>18</version>
+ <relativePath />
+ </parent>
+
<groupId>org.apache.opennlp</groupId>
<artifactId>nlp-utils</artifactId>
- <version>0.1-SNAPSHOT</version>
+ <version>2.1.1-SNAPSHOT</version>
+ <name>Apache OpenNLP Utils</name>
<properties>
+ <maven.compiler.source>11</maven.compiler.source>
+ <maven.compiler.target>11</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
@@ -32,20 +43,20 @@
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
- <version>4.11</version>
+ <version>4.13.2</version>
<scope>test</scope>
</dependency>
</dependencies>
+
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
- <version>2.0.2</version>
<configuration>
- <source>1.7</source>
- <target>1.7</target>
- <encoding>UTF-8</encoding>
+ <source>${maven.compiler.source}</source>
+ <target>${maven.compiler.target}</target>
+ <compilerArgument>-Xlint</compilerArgument>
</configuration>
</plugin>
</plugins>
diff --git a/nlp-utils/src/main/java/org/apache/opennlp/utils/anomalydetection/AnomalyDetectionUtils.java b/nlp-utils/src/main/java/org/apache/opennlp/utils/anomalydetection/AnomalyDetectionUtils.java
index 0d7d4a8..009441f 100644
--- a/nlp-utils/src/main/java/org/apache/opennlp/utils/anomalydetection/AnomalyDetectionUtils.java
+++ b/nlp-utils/src/main/java/org/apache/opennlp/utils/anomalydetection/AnomalyDetectionUtils.java
@@ -19,6 +19,8 @@
package org.apache.opennlp.utils.anomalydetection;
import java.math.BigDecimal;
+import java.math.RoundingMode;
+
import org.apache.opennlp.utils.TrainingExample;
import org.apache.opennlp.utils.TrainingSet;
@@ -84,9 +86,8 @@ public class AnomalyDetectionUtils {
* @param x the input
* @param set the training set
* @return the probability of the given input
- * @throws Exception
*/
- public static double getGaussianProbability(TrainingExample x, TrainingSet set) throws Exception {
+ public static double getGaussianProbability(TrainingExample x, TrainingSet set) {
double[] mus = fitMus(set);
double[] sigmas = fitSigmas(mus, set);
return calculateGaussianProbability(x, mus, sigmas);
@@ -97,7 +98,7 @@ public class AnomalyDetectionUtils {
assert mus.length == sigmas.length : "parameters not aligned";
BigDecimal px = new BigDecimal(1d);
for (int i = 0; i < mus.length; i++) {
- BigDecimal firstTerm = BigDecimal.ONE.divide(BigDecimal.valueOf(Math.sqrt(2d * Math.PI * sigmas[i])), BigDecimal.ROUND_CEILING);
+ BigDecimal firstTerm = BigDecimal.ONE.divide(BigDecimal.valueOf(Math.sqrt(2d * Math.PI * sigmas[i])), RoundingMode.CEILING);
BigDecimal secondTerm = BigDecimal.valueOf(Math.exp(-1 * (Math.pow(x.getInputs()[i] - mus[i], 2) / (2 * Math.pow(sigmas[i], 2)))));
px = px.multiply(firstTerm.multiply(secondTerm));
}
diff --git a/nlp-utils/src/main/java/org/apache/opennlp/utils/cfg/CFGBuilder.java b/nlp-utils/src/main/java/org/apache/opennlp/utils/cfg/CFGBuilder.java
index 7cca8ee..806433f 100644
--- a/nlp-utils/src/main/java/org/apache/opennlp/utils/cfg/CFGBuilder.java
+++ b/nlp-utils/src/main/java/org/apache/opennlp/utils/cfg/CFGBuilder.java
@@ -62,7 +62,7 @@ public class CFGBuilder {
public ContextFreeGrammar build() {
assert nonTerminalSymbols != null && terminalSymbols != null && rules != null && startSymbol != null :
- "missing definitions { V : " + nonTerminalSymbols + ", ∑ : " + terminalSymbols + ", R : " + rules + ", S : " + startSymbol + "}";
+ "missing definitions {V : " + nonTerminalSymbols + ", ∑ : " + terminalSymbols + ", R : " + rules + ", S : " + startSymbol + "}";
return new ContextFreeGrammar(nonTerminalSymbols, terminalSymbols, rules, startSymbol, randomExpansion);
}
}
diff --git a/nlp-utils/src/main/java/org/apache/opennlp/utils/cfg/CFGRunner.java b/nlp-utils/src/main/java/org/apache/opennlp/utils/cfg/CFGRunner.java
index e3bb59b..07d93e1 100644
--- a/nlp-utils/src/main/java/org/apache/opennlp/utils/cfg/CFGRunner.java
+++ b/nlp-utils/src/main/java/org/apache/opennlp/utils/cfg/CFGRunner.java
@@ -34,147 +34,146 @@ import java.util.Map;
*/
public class CFGRunner {
- public static void main(String[] args) throws Exception {
- CFGBuilder builder = new CFGBuilder();
-
- Arrays.sort(args);
- boolean useWn = Arrays.binarySearch(args, "-wn") >= 0;
-
- Collection<String> adverbsCollection;
- Collection<String> verbsCollection;
- Collection<String> adjectivesCollection;
- Collection<String> nounsCollection;
- if (useWn) {
- adverbsCollection = getTokens("/opennlp/cfg/wn/adv.txt");
- adjectivesCollection = getTokens("/opennlp/cfg/wn/adj.txt");
- nounsCollection = getTokens("/opennlp/cfg/wn/noun.txt");
- verbsCollection = getTokens("/opennlp/cfg/wn/verb.txt");
- } else {
- adverbsCollection = getTokens("/opennlp/cfg/an/adv.txt");
- adjectivesCollection = getTokens("/opennlp/cfg/an/adj.txt");
- nounsCollection = getTokens("/opennlp/cfg/an/noun.txt");
- verbsCollection = getTokens("/opennlp/cfg/an/verb.txt");
- }
+ public static void main(String[] args) throws Exception {
+ CFGBuilder builder = new CFGBuilder();
+
+ Arrays.sort(args);
+ boolean useWn = Arrays.binarySearch(args, "-wn") >= 0;
+
+ Collection<String> adverbsCollection;
+ Collection<String> verbsCollection;
+ Collection<String> adjectivesCollection;
+ Collection<String> nounsCollection;
+ if (useWn) {
+ adverbsCollection = getTokens("/opennlp/cfg/wn/adv.txt");
+ adjectivesCollection = getTokens("/opennlp/cfg/wn/adj.txt");
+ nounsCollection = getTokens("/opennlp/cfg/wn/noun.txt");
+ verbsCollection = getTokens("/opennlp/cfg/wn/verb.txt");
+ } else {
+ adverbsCollection = getTokens("/opennlp/cfg/an/adv.txt");
+ adjectivesCollection = getTokens("/opennlp/cfg/an/adj.txt");
+ nounsCollection = getTokens("/opennlp/cfg/an/noun.txt");
+ verbsCollection = getTokens("/opennlp/cfg/an/verb.txt");
+ }
+
+ Collection<String> terminals = new LinkedList<>();
+ terminals.addAll(adverbsCollection);
+ terminals.addAll(verbsCollection);
+ terminals.addAll(adjectivesCollection);
+ terminals.addAll(nounsCollection);
+
+ builder.withTerminals(terminals);
+
+ Collection<String> nonTerminals = new LinkedList<>();
+ String startSymbol = "START_SYMBOL";
+ nonTerminals.add(startSymbol);
+ nonTerminals.add("NP");
+ nonTerminals.add("NN");
+ nonTerminals.add("Adv");
+ nonTerminals.add("Adj");
+ nonTerminals.add("VP");
+ nonTerminals.add("Vb");
+ builder.withNonTerminals(nonTerminals);
+
+ builder.withStartSymbol(startSymbol);
+
+ Collection<Rule> rules = new LinkedList<Rule>();
+ rules.add(new Rule(startSymbol, "VP", "NP"));
+ rules.add(new Rule("VP", "Adv", "Vb"));
+ rules.add(new Rule("NP", "Adj", "NN"));
+
+ for (String v : verbsCollection) {
+ rules.add(new Rule("Vb", v));
+ }
+ for (String adj : adjectivesCollection) {
+ rules.add(new Rule("Adj", adj));
+ }
+ for (String n : nounsCollection) {
+ rules.add(new Rule("NN", n));
+ }
+ for (String adv : adverbsCollection) {
+ rules.add(new Rule("Adv", adv));
+ }
+ builder.withRules(rules);
+ ContextFreeGrammar cfg = builder.withRandomExpansion(true).build();
+ String[] sentence = cfg.leftMostDerivation(startSymbol);
+ String toString = Arrays.toString(sentence);
+
+ if (toString.length() > 0) {
+ System.out.println(toString.substring(1, toString.length() - 1).replaceAll(",", ""));
+ }
- Collection<String> terminals = new LinkedList<>();
- terminals.addAll(adverbsCollection);
- terminals.addAll(verbsCollection);
- terminals.addAll(adjectivesCollection);
- terminals.addAll(nounsCollection);
-
- builder.withTerminals(terminals);
-
- Collection<String> nonTerminals = new LinkedList<String>();
- String startSymbol = "START_SYMBOL";
- nonTerminals.add(startSymbol);
- nonTerminals.add("NP");
- nonTerminals.add("NN");
- nonTerminals.add("Adv");
- nonTerminals.add("Adj");
- nonTerminals.add("VP");
- nonTerminals.add("Vb");
- builder.withNonTerminals(nonTerminals);
-
- builder.withStartSymbol(startSymbol);
-
- Collection<Rule> rules = new LinkedList<Rule>();
- rules.add(new Rule(startSymbol, "VP", "NP"));
- rules.add(new Rule("VP", "Adv", "Vb"));
- rules.add(new Rule("NP", "Adj", "NN"));
-
- for (String v : verbsCollection) {
- rules.add(new Rule("Vb", v));
+ boolean pt = Arrays.binarySearch(args, "-pt") >= 0;
+
+ if (pt) {
+ Map<Rule, Double> rulesMap = new HashMap<>();
+ rulesMap.put(new Rule(startSymbol, "VP", "NP"), 1d);
+ rulesMap.put(new Rule("VP", "Adv", "Vb"), 1d);
+ rulesMap.put(new Rule("NP", "Adj", "NN"), 1d);
+
+ SecureRandom secureRandom = new SecureRandom();
+
+ double remainingP = 1d;
+ for (String v : verbsCollection) {
+ double p = (double) secureRandom.nextInt(1000) / 1001d;
+ if (rulesMap.size() == verbsCollection.size() - 1) {
+ p = remainingP;
}
- for (String adj : adjectivesCollection) {
- rules.add(new Rule("Adj", adj));
+ if (remainingP - p <= 0) {
+ p /= 10;
}
- for (String n : nounsCollection) {
- rules.add(new Rule("NN", n));
+ rulesMap.put(new Rule("Vb", v), p);
+ remainingP -= p;
+ }
+ for (String a : adjectivesCollection) {
+ double p = (double) secureRandom.nextInt(1000) / 1001d;
+ if (rulesMap.size() == adjectivesCollection.size() - 1) {
+ p = remainingP;
}
- for (String adv : adverbsCollection) {
- rules.add(new Rule("Adv", adv));
+ if (remainingP - p <= 0) {
+ p /= 10;
}
- builder.withRules(rules);
- ContextFreeGrammar cfg = builder.withRandomExpansion(true).build();
- String[] sentence = cfg.leftMostDerivation(startSymbol);
- String toString = Arrays.toString(sentence);
-
- if (toString.length() > 0) {
- System.out.println(toString.substring(1, toString.length() - 1).replaceAll(",", ""));
+ rulesMap.put(new Rule("Adj", a), p);
+ remainingP -= p;
+ }
+ for (String n : nounsCollection) {
+ double p = (double) secureRandom.nextInt(1000) / 1001d;
+ if (rulesMap.size() == nounsCollection.size() - 1) {
+ p = remainingP;
+ } else if (remainingP - p <= 0) {
+ p /= 10;
}
-
- boolean pt = Arrays.binarySearch(args, "-pt") >= 0;
-
- if (pt) {
- Map<Rule, Double> rulesMap = new HashMap<>();
- rulesMap.put(new Rule(startSymbol, "VP", "NP"), 1d);
- rulesMap.put(new Rule("VP", "Adv", "Vb"), 1d);
- rulesMap.put(new Rule("NP", "Adj", "NN"), 1d);
-
- SecureRandom secureRandom = new SecureRandom();
-
- double remainingP = 1d;
- for (String v : verbsCollection) {
- double p = (double) secureRandom.nextInt(1000) / 1001d;
- if (rulesMap.size() == verbsCollection.size() - 1) {
- p = remainingP;
- }
- if (remainingP - p <= 0) {
- p /= 10;
- }
- rulesMap.put(new Rule("Vb", v), p);
- remainingP -= p;
- }
- for (String a : adjectivesCollection) {
- double p = (double) secureRandom.nextInt(1000) / 1001d;
- if (rulesMap.size() == adjectivesCollection.size() - 1) {
- p = remainingP;
- }
- if (remainingP - p <= 0) {
- p /= 10;
- }
- rulesMap.put(new Rule("Adj", a), p);
- remainingP -= p;
- }
- for (String n : nounsCollection) {
- double p = (double) secureRandom.nextInt(1000) / 1001d;
- if (rulesMap.size() == nounsCollection.size() - 1) {
- p = remainingP;
- } else if (remainingP - p <= 0) {
- p /= 10;
- }
- rulesMap.put(new Rule("NN", n), p);
- remainingP -= p;
- }
- for (String a : adverbsCollection) {
- double p = (double) secureRandom.nextInt(1000) / 1001d;
- if (rulesMap.size() == adverbsCollection.size() - 1) {
- p = remainingP;
- }
- if (remainingP - p <= 0) {
- p /= 10;
- }
- rulesMap.put(new Rule("Adv", a), p);
- remainingP -= p;
- }
- ProbabilisticContextFreeGrammar pcfg = new ProbabilisticContextFreeGrammar(cfg.getNonTerminalSymbols(), cfg.getTerminalSymbols(),
- rulesMap, startSymbol, true);
- ProbabilisticContextFreeGrammar.ParseTree parseTree = pcfg.cky(Arrays.asList(sentence));
- System.out.println(parseTree);
+ rulesMap.put(new Rule("NN", n), p);
+ remainingP -= p;
+ }
+ for (String a : adverbsCollection) {
+ double p = (double) secureRandom.nextInt(1000) / 1001d;
+ if (rulesMap.size() == adverbsCollection.size() - 1) {
+ p = remainingP;
}
- }
-
- private static Collection<String> getTokens(String s) throws IOException {
- Collection<String> tokens = new LinkedList<>();
- InputStream resourceStream = CFGRunner.class.getResourceAsStream(s);
- BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(resourceStream));
- String line;
- while ((line = bufferedReader.readLine()) != null) {
- tokens.add(line);
+ if (remainingP - p <= 0) {
+ p /= 10;
}
- bufferedReader.close();
- resourceStream.close();
- return tokens;
+ rulesMap.put(new Rule("Adv", a), p);
+ remainingP -= p;
+ }
+ ProbabilisticContextFreeGrammar pcfg = new ProbabilisticContextFreeGrammar(cfg.getNonTerminalSymbols(), cfg.getTerminalSymbols(),
+ rulesMap, startSymbol, true);
+ ProbabilisticContextFreeGrammar.ParseTree parseTree = pcfg.cky(Arrays.asList(sentence));
+ System.out.println(parseTree);
+ }
+ }
+
+ private static Collection<String> getTokens(String s) throws IOException {
+ Collection<String> tokens = new LinkedList<>();
+ try (BufferedReader bufferedReader = new BufferedReader(
+ new InputStreamReader(CFGRunner.class.getResourceAsStream(s)))) {
+ String line;
+ while ((line = bufferedReader.readLine()) != null) {
+ tokens.add(line);
+ }
}
+ return tokens;
+ }
}
diff --git a/nlp-utils/src/main/java/org/apache/opennlp/utils/cfg/ContextFreeGrammar.java b/nlp-utils/src/main/java/org/apache/opennlp/utils/cfg/ContextFreeGrammar.java
index c3419ed..e3e4826 100644
--- a/nlp-utils/src/main/java/org/apache/opennlp/utils/cfg/ContextFreeGrammar.java
+++ b/nlp-utils/src/main/java/org/apache/opennlp/utils/cfg/ContextFreeGrammar.java
@@ -65,7 +65,7 @@ public class ContextFreeGrammar {
}
public String[] leftMostDerivation(String... words) {
- ArrayList<String> expansion = new ArrayList<String>(words.length);
+ ArrayList<String> expansion = new ArrayList<>(words.length);
assert words.length > 0 && startSymbol.equals(words[0]);
@@ -78,13 +78,13 @@ public class ContextFreeGrammar {
private Collection<String> getTerminals(String word) {
if (terminalSymbols.contains(word)) {
- Collection<String> c = new LinkedList<String>();
+ Collection<String> c = new LinkedList<>();
c.add(word);
return c;
} else {
assert nonTerminalSymbols.contains(word) : "word " + word + " is not contained in non terminals";
String[] expansions = getExpansionForSymbol(word);
- Collection<String> c = new LinkedList<String>();
+ Collection<String> c = new LinkedList<>();
for (String e : expansions) {
c.addAll(getTerminals(e));
}
@@ -98,7 +98,7 @@ public class ContextFreeGrammar {
}
private Rule getRuleForSymbol(String word) {
- ArrayList<Rule> possibleRules = new ArrayList<Rule>();
+ ArrayList<Rule> possibleRules = new ArrayList<>();
for (Rule r : rules) {
if (word.equals(r.getEntry())) {
if (!randomExpansion) {
diff --git a/nlp-utils/src/main/java/org/apache/opennlp/utils/cfg/ProbabilisticContextFreeGrammar.java b/nlp-utils/src/main/java/org/apache/opennlp/utils/cfg/ProbabilisticContextFreeGrammar.java
index f5d936c..edd6b37 100644
--- a/nlp-utils/src/main/java/org/apache/opennlp/utils/cfg/ProbabilisticContextFreeGrammar.java
+++ b/nlp-utils/src/main/java/org/apache/opennlp/utils/cfg/ProbabilisticContextFreeGrammar.java
@@ -39,7 +39,7 @@ public class ProbabilisticContextFreeGrammar {
private final Collection<String> terminalSymbols;
private final Map<Rule, Double> rules;
private final String startSymbol;
- private boolean randomExpansion;
+ private final boolean randomExpansion;
private static final Rule emptyRule = new Rule("EMPTY~", "");
@@ -86,7 +86,7 @@ public class ProbabilisticContextFreeGrammar {
public String[] leftMostDerivation(String... words) {
- ArrayList<String> expansion = new ArrayList<String>(words.length);
+ ArrayList<String> expansion = new ArrayList<>(words.length);
assert words.length > 0 && startSymbol.equals(words[0]);
@@ -98,13 +98,13 @@ public class ProbabilisticContextFreeGrammar {
private Collection<String> getTerminals(String word) {
if (terminalSymbols.contains(word)) {
- Collection<String> c = new LinkedList<String>();
+ Collection<String> c = new LinkedList<>();
c.add(word);
return c;
} else {
assert nonTerminalSymbols.contains(word) : "word " + word + " is not contained in non terminals";
String[] expansions = getExpansionForSymbol(word);
- Collection<String> c = new LinkedList<String>();
+ Collection<String> c = new LinkedList<>();
for (String e : expansions) {
c.addAll(getTerminals(e));
}
@@ -118,7 +118,7 @@ public class ProbabilisticContextFreeGrammar {
}
private Rule getRuleForSymbol(String word) {
- ArrayList<Rule> possibleRules = new ArrayList<Rule>();
+ ArrayList<Rule> possibleRules = new ArrayList<>();
for (Rule r : rules.keySet()) {
if (word.equals(r.getEntry())) {
if (!randomExpansion) {
@@ -186,7 +186,7 @@ public class ProbabilisticContextFreeGrammar {
}
private Collection<Rule> getRulesForNonTerminal(String x) {
- LinkedList<Rule> ntRules = new LinkedList<Rule>();
+ LinkedList<Rule> ntRules = new LinkedList<>();
for (Rule r : rules.keySet()) {
String[] expansion = r.getExpansion();
if (expansion.length == 2 && x.equals(r.getEntry()) && nonTerminalSymbols.contains(expansion[0]) && nonTerminalSymbols.contains(expansion[1])) {
@@ -197,7 +197,7 @@ public class ProbabilisticContextFreeGrammar {
}
private Collection<Rule> getNTRules() {
- Collection<Rule> ntRules = new LinkedList<Rule>();
+ Collection<Rule> ntRules = new LinkedList<>();
for (Rule r : rules.keySet()) {
String[] expansion = r.getExpansion();
if (expansion.length == 2 && nonTerminalSymbols.contains(expansion[0]) && nonTerminalSymbols.contains(expansion[1])) {
@@ -211,7 +211,7 @@ public class ProbabilisticContextFreeGrammar {
return rules.keySet().contains(rule) ? rules.get(rule) : 0;
}
- public class ParseTree {
+ public static class ParseTree {
private final double probability;
private final int splitPoint;
@@ -281,11 +281,11 @@ public class ProbabilisticContextFreeGrammar {
}
public static ProbabilisticContextFreeGrammar parseGrammar(boolean trim, String... parseTreeStrings) {
- return parseGrammar(new HashMap<Rule, Double>(), "S", trim, parseTreeStrings);
+ return parseGrammar(new HashMap<>(), "S", trim, parseTreeStrings);
}
public static ProbabilisticContextFreeGrammar parseGrammar(String... parseTreeStrings) {
- return parseGrammar(new HashMap<Rule, Double>(), "S", true, parseTreeStrings);
+ return parseGrammar(new HashMap<>(), "S", true, parseTreeStrings);
}
public static ProbabilisticContextFreeGrammar parseGrammar(Map<Rule, Double> rulesMap, String startSymbol, boolean trim, String... parseStrings) {
@@ -303,7 +303,7 @@ public class ProbabilisticContextFreeGrammar {
for (String parseTreeString : parseStrings) {
if (trim) {
- parseTreeString = parseTreeString.replaceAll("\n", "").replaceAll("\t", "").replaceAll("\\s+", " ");
+ parseTreeString = parseTreeString.replace("\n", "").replace("\t", "").replaceAll("\\s+", " ");
}
String toConsume = String.valueOf(parseTreeString);
diff --git a/nlp-utils/src/main/java/org/apache/opennlp/utils/classification/SimpleNaiveBayesClassifier.java b/nlp-utils/src/main/java/org/apache/opennlp/utils/classification/SimpleNaiveBayesClassifier.java
index b7bf33c..1114677 100644
--- a/nlp-utils/src/main/java/org/apache/opennlp/utils/classification/SimpleNaiveBayesClassifier.java
+++ b/nlp-utils/src/main/java/org/apache/opennlp/utils/classification/SimpleNaiveBayesClassifier.java
@@ -25,16 +25,17 @@ import java.util.LinkedList;
import java.util.Map;
/**
- * C = argmax( P(d|c) * P(c) )
- * where P(d|c) is called: likelihood
- * and P(c) is called: prior - we can count relative frequencies in a corpus
- * and d is a vector of features
- * <p/>
- * we assume:
- * 1. bag of words assumption: positions don't matter
- * 2. conditional independence: the feature probabilities are independent given a class
- * <p/>
- * thus P(d|c) == P(x1,..,xn|c) == P(x1|c)*...P(xn|c)
+ * {@code C = argmax( P(d|c) * P(c) )}
+ * where {@code P(d|c)} is called: likelihood
+ * and {@code P(c)} is called: prior - we can count relative frequencies in a corpus
+ * and {@code d} is a vector of features.
+ * <p>
+ * We assume:
+ * <ol>
+ * <li>bag of words assumption: positions don't matter</li>
+ * <li>conditional independence: the feature probabilities are independent given a class</li>
+ * </ol>
+ * thus {@code P(d|c) == P(x1,..,xn|c) == P(x1|c)*...P(xn|c)}
*/
public class SimpleNaiveBayesClassifier implements NaiveBayesClassifier<String, String> {
@@ -104,10 +105,10 @@ public class SimpleNaiveBayesClassifier implements NaiveBayesClassifier<String,
@Override
public String calculateClass(String inputDocument) {
- Double max = 0d;
+ double max = 0d;
String foundClass = null;
for (String cl : classMegaDocMap.keySet()) {
- Double clVal = priors.get(cl) * calculateLikelihood(inputDocument, cl);
+ double clVal = priors.get(cl) * calculateLikelihood(inputDocument, cl);
if (clVal > max) {
max = clVal;
foundClass = cl;
@@ -120,7 +121,7 @@ public class SimpleNaiveBayesClassifier implements NaiveBayesClassifier<String,
private Double calculateLikelihood(String document, String c) {
String megaDoc = classMegaDocMap.get(c);
// for each word
- Double result = 1d;
+ double result = 1d;
for (String word : tokenizeDoc(document)) {
// num : count the no of times the word appears in documents of class c (+1)
double num = count(word, megaDoc) + 1; // +1 is added because of add 1 smoothing
diff --git a/nlp-utils/src/main/java/org/apache/opennlp/utils/classification/UpdatableSimpleNaiveBayesClassifier.java b/nlp-utils/src/main/java/org/apache/opennlp/utils/classification/UpdatableSimpleNaiveBayesClassifier.java
index dab6f60..a3c064a 100644
--- a/nlp-utils/src/main/java/org/apache/opennlp/utils/classification/UpdatableSimpleNaiveBayesClassifier.java
+++ b/nlp-utils/src/main/java/org/apache/opennlp/utils/classification/UpdatableSimpleNaiveBayesClassifier.java
@@ -25,22 +25,21 @@ import java.util.List;
import java.util.Map;
import java.util.TreeSet;
-
public class UpdatableSimpleNaiveBayesClassifier implements NaiveBayesClassifier<List<String>, String> {
- private final Collection<String> vocabulary = new TreeSet<String>(); // the bag of all the words in the corpus
- private final Map<String, Integer> classCounts = new LinkedHashMap<String, Integer>();
+ private final Collection<String> vocabulary = new TreeSet<>(); // the bag of all the words in the corpus
+ private final Map<String, Integer> classCounts = new LinkedHashMap<>();
private double noDocs = 0d;
- private final Map<String, Map<String, Integer>> nm = new HashMap<String, Map<String, Integer>>();
- private final Map<String, Double> priors = new HashMap<String, Double>();
- private final Map<String, Double> dens = new HashMap<String, Double>();
+ private final Map<String, Map<String, Integer>> nm = new HashMap<>();
+ private final Map<String, Double> priors = new HashMap<>();
+ private final Map<String, Double> dens = new HashMap<>();
public void addExample(String klass, List<String> words) {
vocabulary.addAll(words);
Integer integer = classCounts.get(klass);
- Integer f = integer != null ? integer : 0;
+ int f = integer != null ? integer : 0;
classCounts.put(klass, f + 1);
noDocs++;
@@ -48,7 +47,7 @@ public class UpdatableSimpleNaiveBayesClassifier implements NaiveBayesClassifier
for (String w : words) {
Map<String, Integer> wordCountsForClass = nm.get(klass);
if (wordCountsForClass == null) {
- wordCountsForClass = new HashMap<String, Integer>();
+ wordCountsForClass = new HashMap<>();
}
Integer count = wordCountsForClass.get(w);
if (count == null) {
@@ -69,7 +68,7 @@ public class UpdatableSimpleNaiveBayesClassifier implements NaiveBayesClassifier
private void calculateDen(String c) {
// den : for the whole dictionary, count the no of times a word appears in documents of class c (+|V|)
- Double den = 0d;
+ double den = 0d;
for (String w : vocabulary) {
Integer integer = nm.get(c).get(w);
den += integer != null ? integer : 0;
@@ -78,8 +77,9 @@ public class UpdatableSimpleNaiveBayesClassifier implements NaiveBayesClassifier
dens.put(c, den);
}
- public String calculateClass(List<String> words) throws Exception {
- Double max = -1000000d;
+ @Override
+ public String calculateClass(List<String> words) {
+ double max = -1000000d;
String foundClass = null;
for (String cl : nm.keySet()) {
double prior = priors.get(cl);
@@ -100,7 +100,7 @@ public class UpdatableSimpleNaiveBayesClassifier implements NaiveBayesClassifier
double result = 0d;
for (String word : words) {
// num : count the no of times the word appears in documents of class c (+1)
- Integer freq = wordFreqs.get(word) != null ? wordFreqs.get(word) : 0;
+ int freq = wordFreqs.get(word) != null ? wordFreqs.get(word) : 0;
double num = freq + 1d; // +1 is added because of add 1 smoothing
// P(w|c) = num/den
diff --git a/nlp-utils/src/main/java/org/apache/opennlp/utils/languagemodel/LanguageModel.java b/nlp-utils/src/main/java/org/apache/opennlp/utils/languagemodel/LanguageModel.java
index e84f48c..7b56847 100644
--- a/nlp-utils/src/main/java/org/apache/opennlp/utils/languagemodel/LanguageModel.java
+++ b/nlp-utils/src/main/java/org/apache/opennlp/utils/languagemodel/LanguageModel.java
@@ -22,18 +22,18 @@ import java.util.Collection;
/**
* A language model can calculate the probability <i>p</i> (between 0 and 1) of a
- * certain set of <code>T</code> objects, given a vocabulary.
- * <code>T</code> is usually an {@link java.lang.Iterable} or an array as language models are very commonly used for
- * sentences, so that T is e.g. an array of <code>String</code>s.
+ * certain set of {@code T} objects, given a vocabulary.
+ * {@code T} is usually an {@link java.lang.Iterable} or an array as language models are very commonly used for
+ * sentences, so that T is e.g. an array of {@code String}s.
*/
public interface LanguageModel<T> {
/**
- * Calculate the probability of a sample, given a vocabulary
+ * Calculates the probability of a sample, given a {@code vocabulary},
*
- * @param vocabulary a {@link Collection} of objects of type <code>T</code>
+ * @param vocabulary a {@link Collection} of objects of type {@code T}
* @param sample the sample to evaluate the probability for
- * @return a <code>double</code> between <code>0</code> and <code>1</code>
+ * @return a {@code double} between {@code 0} and {@code 1}
*/
double calculateProbability(Collection<T> vocabulary, T sample);
diff --git a/nlp-utils/src/main/java/org/apache/opennlp/utils/languagemodel/NaiveSentenceLanguageModel.java b/nlp-utils/src/main/java/org/apache/opennlp/utils/languagemodel/NaiveSentenceLanguageModel.java
index abadc23..d29b2e5 100644
--- a/nlp-utils/src/main/java/org/apache/opennlp/utils/languagemodel/NaiveSentenceLanguageModel.java
+++ b/nlp-utils/src/main/java/org/apache/opennlp/utils/languagemodel/NaiveSentenceLanguageModel.java
@@ -22,8 +22,8 @@ import java.util.Collection;
import java.util.Collections;
/**
- * Simple sentence language model which just counts the no. of occurrences of
- * a sentence over the no. of sentences in the vocabulary.
+ * Simple sentence language model which just counts the occurrences of
+ * a sentence over the number of sentences in the vocabulary.
*/
public class NaiveSentenceLanguageModel<T> implements LanguageModel<T[]> {
diff --git a/nlp-utils/src/main/java/org/apache/opennlp/utils/languagemodel/NoisyChannel.java b/nlp-utils/src/main/java/org/apache/opennlp/utils/languagemodel/NoisyChannel.java
index fd2b81d..9085605 100644
--- a/nlp-utils/src/main/java/org/apache/opennlp/utils/languagemodel/NoisyChannel.java
+++ b/nlp-utils/src/main/java/org/apache/opennlp/utils/languagemodel/NoisyChannel.java
@@ -30,10 +30,10 @@ public abstract class NoisyChannel {
}
public String findCorrection(String mispelledWord) {
- Double val = 0d;
+ double val = 0d;
String correctWord = null;
for (String word : dictionary) {
- Double curVal = calculateLikelihood(mispelledWord, word) * calculatePrior(word);
+ double curVal = calculateLikelihood(mispelledWord, word) * calculatePrior(word);
if (curVal > val) {
val = curVal;
correctWord = word;
diff --git a/nlp-utils/src/main/java/org/apache/opennlp/utils/languagemodel/TrigramSentenceLanguageModel.java b/nlp-utils/src/main/java/org/apache/opennlp/utils/languagemodel/TrigramSentenceLanguageModel.java
index a916cd3..b51856e 100644
--- a/nlp-utils/src/main/java/org/apache/opennlp/utils/languagemodel/TrigramSentenceLanguageModel.java
+++ b/nlp-utils/src/main/java/org/apache/opennlp/utils/languagemodel/TrigramSentenceLanguageModel.java
@@ -54,7 +54,7 @@ public class TrigramSentenceLanguageModel<T> implements LanguageModel<T[]> {
}
private Set<Trigram> getTrigrams(T[] sample) {
- Set<Trigram> trigrams = new HashSet<Trigram>();
+ Set<Trigram> trigrams = new HashSet<>();
for (int i = 0; i < sample.length; i++) {
T x0 = null;
T x1 = null;
diff --git a/nlp-utils/src/main/java/org/apache/opennlp/utils/ngram/NGramUtils.java b/nlp-utils/src/main/java/org/apache/opennlp/utils/ngram/NGramUtils.java
index a7371bc..00eccb6 100644
--- a/nlp-utils/src/main/java/org/apache/opennlp/utils/ngram/NGramUtils.java
+++ b/nlp-utils/src/main/java/org/apache/opennlp/utils/ngram/NGramUtils.java
@@ -23,7 +23,7 @@ import java.util.Collection;
import java.util.HashSet;
/**
- * utility class for calculating probabilities of tri/bi/uni-grams
+ * A utility class for calculating probabilities of tri/bi/uni-grams.
*/
public class NGramUtils {
@@ -123,8 +123,8 @@ public class NGramUtils {
}
public static <T> Double calculateMissingBigramProbabilityMass(T x1, Double discount, Collection<T[]> set) {
- Double missingMass = 0d;
- Double countWord = count(x1, set);
+ double missingMass = 0d;
+ double countWord = count(x1, set);
for (T word : flatSet(set)) {
missingMass += (count(word, x1, set) - discount) / countWord;
}
diff --git a/nlp-utils/src/main/java/org/apache/opennlp/utils/regression/GradientDescentUtils.java b/nlp-utils/src/main/java/org/apache/opennlp/utils/regression/GradientDescentUtils.java
index 009e72b..67613b5 100644
--- a/nlp-utils/src/main/java/org/apache/opennlp/utils/regression/GradientDescentUtils.java
+++ b/nlp-utils/src/main/java/org/apache/opennlp/utils/regression/GradientDescentUtils.java
@@ -23,7 +23,7 @@ import java.util.Random;
import org.apache.opennlp.utils.TrainingSet;
/**
- * Utility class for calculating gradient descent
+ * A utility class for calculating gradient descent.
*/
public class GradientDescentUtils {
diff --git a/nlp-utils/src/main/java/org/apache/opennlp/utils/regression/Hypothesis.java b/nlp-utils/src/main/java/org/apache/opennlp/utils/regression/Hypothesis.java
index 4642fbd..711ae43 100644
--- a/nlp-utils/src/main/java/org/apache/opennlp/utils/regression/Hypothesis.java
+++ b/nlp-utils/src/main/java/org/apache/opennlp/utils/regression/Hypothesis.java
@@ -24,7 +24,7 @@ package org.apache.opennlp.utils.regression;
public interface Hypothesis {
/**
- * calculate the output given some inputs according to the underlying model.
+ * Calculates the output given some inputs according to the underlying model.
*
* @param inputs an array of inputs as <code>double</code>
* @return a <code>double</code> representing the output
diff --git a/nlp-utils/src/main/java/org/apache/opennlp/utils/regression/LinearCombinationHypothesis.java b/nlp-utils/src/main/java/org/apache/opennlp/utils/regression/LinearCombinationHypothesis.java
index 45efba8..6150a37 100644
--- a/nlp-utils/src/main/java/org/apache/opennlp/utils/regression/LinearCombinationHypothesis.java
+++ b/nlp-utils/src/main/java/org/apache/opennlp/utils/regression/LinearCombinationHypothesis.java
@@ -19,7 +19,7 @@
package org.apache.opennlp.utils.regression;
/**
- * Simplest {@link Hypothesis} which just linearly combines inputs with weights
+ * Simplest {@link Hypothesis} which just linearly combines inputs with weights.
*/
public class LinearCombinationHypothesis implements Hypothesis {
private final double[] weights;
diff --git a/nlp-utils/src/main/java/org/apache/opennlp/utils/regression/RegressionModelUtils.java b/nlp-utils/src/main/java/org/apache/opennlp/utils/regression/RegressionModelUtils.java
index d543f51..7b606a2 100644
--- a/nlp-utils/src/main/java/org/apache/opennlp/utils/regression/RegressionModelUtils.java
+++ b/nlp-utils/src/main/java/org/apache/opennlp/utils/regression/RegressionModelUtils.java
@@ -22,16 +22,16 @@ import org.apache.opennlp.utils.TrainingExample;
import org.apache.opennlp.utils.TrainingSet;
/**
- * Utility class for calculating various regression models costs
+ * A utility class for calculating various regression models costs.
*/
public class RegressionModelUtils {
/**
- * calculate the ordinary least squares (OLS) cost in the given training set for a given hypothesis
+ * Calculates the ordinary least squares (OLS) cost in the given training set for a given hypothesis.
*
- * @param trainingSet the training set used
- * @param hypothesis the hypothesis function representing the model
- * @return the cost of the hypothesis for the given training set using OLS
+ * @param trainingSet The {@link TrainingSet} used.
+ * @param hypothesis The {@link Hypothesis} function representing the model.
+ * @return The cost of the hypothesis for the given training set using OLS.
*/
public static double ordinaryLeastSquares(TrainingSet trainingSet, Hypothesis hypothesis) {
double output = 0;
@@ -43,12 +43,12 @@ public class RegressionModelUtils {
}
/**
- * calculate the least mean square (LMS) update for a given weight vector
+ * Calculates the least mean square (LMS) update for a given weight vector.
*
- * @param thetas the array of weights
- * @param alpha the learning rate alpha
- * @param trainingSet the training set to use for learning
- * @param hypothesis the hypothesis representing the model
+ * @param thetas The array of weights.
+ * @param alpha The learning rate alpha.
+ * @param trainingSet The {@link TrainingSet} to use for learning.
+ * @param hypothesis The {@link Hypothesis} representing the model.
* @return the updated weights vector
*/
public static double[] batchLeastMeanSquareUpdate(double[] thetas, double alpha, TrainingSet trainingSet, Hypothesis hypothesis) {
@@ -66,12 +66,12 @@ public class RegressionModelUtils {
/**
* calculate least mean square update for a given training example for the j-th input
*
- * @param thetas the array of weights
- * @param alpha the learning rate alpha
- * @param trainingExample the training example to use for learning
- * @param hypothesis the hypothesis representing the model
- * @param j the index of the j-th input
- * @return the updated weight for the j-th element of the weights vector
+ * @param thetas The array of weights.
+ * @param alpha The learning rate alpha.
+ * @param trainingExample The {@link TrainingExample} to use for learning.
+ * @param hypothesis The {@link Hypothesis} representing the model.
+ * @param j The index of the j-th input.
+ * @return The updated weight for the j-th element of the weights vector.
*/
public static double singleLeastMeanSquareUpdate(double[] thetas, double alpha, TrainingExample trainingExample, Hypothesis hypothesis, int j) {
return thetas[j] + alpha * (trainingExample.getOutput() - hypothesis.calculateOutput(trainingExample.getInputs())) * trainingExample.getInputs()[j];
diff --git a/nlp-utils/src/test/java/org/apache/opennlp/utils/TestUtils.java b/nlp-utils/src/test/java/org/apache/opennlp/utils/TestUtils.java
index 5d4b84f..32d318f 100644
--- a/nlp-utils/src/test/java/org/apache/opennlp/utils/TestUtils.java
+++ b/nlp-utils/src/test/java/org/apache/opennlp/utils/TestUtils.java
@@ -29,7 +29,7 @@ import org.junit.Ignore;
@Ignore
public class TestUtils {
- private static Random r = new Random();
+ private static final Random R = new Random();
public static void fillTrainingSet(TrainingSet trainingSet, int size, int dimension) {
for (int i = 0; i < size; i++) {
@@ -43,7 +43,7 @@ public class TestUtils {
}
public static Collection<String[]> generateRandomVocabulary() {
- int size = r.nextInt(1000);
+ int size = R.nextInt(1000);
Collection<String[]> vocabulary = new ArrayList<String[]>(size);
for (int i = 0; i < size; i++) {
String[] sentence = generateRandomSentence();
@@ -53,10 +53,10 @@ public class TestUtils {
}
public static String[] generateRandomSentence() {
- int dimension = r.nextInt(10);
+ int dimension = R.nextInt(10);
String[] sentence = new String[dimension];
for (int j = 0; j < dimension; j++) {
- char c = (char) r.nextInt(10);
+ char c = (char) R.nextInt(10);
sentence[j] = c + "-" + c + "-" + c;
}
return sentence;
diff --git a/nlp-utils/src/test/java/org/apache/opennlp/utils/anomalydetection/AnomalyDetectionUtilsTest.java b/nlp-utils/src/test/java/org/apache/opennlp/utils/anomalydetection/AnomalyDetectionUtilsTest.java
index 7a84c2f..d5f2560 100644
--- a/nlp-utils/src/test/java/org/apache/opennlp/utils/anomalydetection/AnomalyDetectionUtilsTest.java
+++ b/nlp-utils/src/test/java/org/apache/opennlp/utils/anomalydetection/AnomalyDetectionUtilsTest.java
@@ -25,7 +25,6 @@ import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
/**
* Testcase for {@link org.apache.opennlp.utils.anomalydetection.AnomalyDetectionUtils}
@@ -33,7 +32,7 @@ import static org.junit.Assert.assertTrue;
public class AnomalyDetectionUtilsTest {
@Test
- public void testGaussianDistributionProbabilityFromFitParameters() throws Exception {
+ public void testGaussianDistributionProbabilityFromFitParameters() {
TrainingSet trainingSet = new TrainingSet();
TestUtils.fillTrainingSet(trainingSet, 100, 5);
double[] mus = AnomalyDetectionUtils.fitMus(trainingSet);
@@ -46,7 +45,7 @@ public class AnomalyDetectionUtilsTest {
}
@Test
- public void testGaussianDistributionProbabilityFromTrainingSet() throws Exception {
+ public void testGaussianDistributionProbabilityFromTrainingSet() {
TrainingSet trainingSet = new TrainingSet();
TestUtils.fillTrainingSet(trainingSet, 100, 5);
TrainingExample newInput = new TrainingExample(new double[]{0.4d,0.5d,0.5d,0.5d,0.2d}, 0d);
diff --git a/nlp-utils/src/test/java/org/apache/opennlp/utils/classification/SimpleNaiveBayesClassifierTest.java b/nlp-utils/src/test/java/org/apache/opennlp/utils/classification/SimpleNaiveBayesClassifierTest.java
index 8016679..8d7f408 100644
--- a/nlp-utils/src/test/java/org/apache/opennlp/utils/classification/SimpleNaiveBayesClassifierTest.java
+++ b/nlp-utils/src/test/java/org/apache/opennlp/utils/classification/SimpleNaiveBayesClassifierTest.java
@@ -31,8 +31,8 @@ import static org.junit.Assert.assertTrue;
public class SimpleNaiveBayesClassifierTest {
@Test
- public void ppsIntegrationTest() throws Exception {
- Map<String, String> trainedCorpus = new HashMap<String, String>();
+ public void ppsIntegrationTest() {
+ Map<String, String> trainedCorpus = new HashMap<>();
trainedCorpus.put("CAVOUR ad.te napoleone III affare: cat. C/2 ottimo" +
" stato ingresso angolo cottura bagno con doccia e camera. " +
"ottimo per investimento o piccolo studio per professionisti" +
@@ -69,7 +69,7 @@ public class SimpleNaiveBayesClassifierTest {
SimpleNaiveBayesClassifier classifier = new SimpleNaiveBayesClassifier(trainedCorpus);
- Boolean isAgency = classifier.calculateClass("CENTRO S.Maria Maggiore " +
+ boolean isAgency = classifier.calculateClass("CENTRO S.Maria Maggiore " +
"angolo Napoleone III in palazzo epoca con portiere 110 mq ristrutt." +
" IIp salone doppio cucina ab. 2 camere bagno ripost. balcone " +
"perimetrale E. 730.000 tratt. ").equals("A");
diff --git a/nlp-utils/src/test/java/org/apache/opennlp/utils/languagemodel/NaiveSentenceLanguageModelTest.java b/nlp-utils/src/test/java/org/apache/opennlp/utils/languagemodel/NaiveSentenceLanguageModelTest.java
index 10e0fac..c4d0825 100644
--- a/nlp-utils/src/test/java/org/apache/opennlp/utils/languagemodel/NaiveSentenceLanguageModelTest.java
+++ b/nlp-utils/src/test/java/org/apache/opennlp/utils/languagemodel/NaiveSentenceLanguageModelTest.java
@@ -31,17 +31,17 @@ import static org.junit.Assert.assertTrue;
public class NaiveSentenceLanguageModelTest {
@Test
- public void testEmptyVocabularyProbability() throws Exception {
- NaiveSentenceLanguageModel<String> model = new NaiveSentenceLanguageModel<String>();
- assertEquals("probability with an empty vocabulary is always 0", 0d, model.calculateProbability(Collections.<String[]>emptySet(),
- new String[0]), 0d);
- assertEquals("probability with an empty vocabulary is always 0", 0d, model.calculateProbability(Collections.<String[]>emptySet(),
- new String[]{"1", "2", "3"}), 0d);
+ public void testEmptyVocabularyProbability() {
+ NaiveSentenceLanguageModel<String> model = new NaiveSentenceLanguageModel<>();
+ assertEquals("probability with an empty vocabulary is always 0",
+ 0d, model.calculateProbability(Collections.emptySet(), new String[0]), 0d);
+ assertEquals("probability with an empty vocabulary is always 0",
+ 0d, model.calculateProbability(Collections.emptySet(), new String[]{"1", "2", "3"}), 0d);
}
@Test
- public void testRandomVocabularyAndSentence() throws Exception {
- NaiveSentenceLanguageModel<String> model = new NaiveSentenceLanguageModel<String>();
+ public void testRandomVocabularyAndSentence() {
+ NaiveSentenceLanguageModel<String> model = new NaiveSentenceLanguageModel<>();
double probability = model.calculateProbability(TestUtils.generateRandomVocabulary(), TestUtils.generateRandomSentence());
assertTrue("a probability measure should be between 0 and 1 [was " + probability + "]", probability >= 0 && probability <= 1);
}
diff --git a/nlp-utils/src/test/java/org/apache/opennlp/utils/languagemodel/TrigramSentenceLanguageModelTest.java b/nlp-utils/src/test/java/org/apache/opennlp/utils/languagemodel/TrigramSentenceLanguageModelTest.java
index b2d6d51..b716c26 100644
--- a/nlp-utils/src/test/java/org/apache/opennlp/utils/languagemodel/TrigramSentenceLanguageModelTest.java
+++ b/nlp-utils/src/test/java/org/apache/opennlp/utils/languagemodel/TrigramSentenceLanguageModelTest.java
@@ -31,17 +31,17 @@ import static org.junit.Assert.assertTrue;
public class TrigramSentenceLanguageModelTest {
@Test
- public void testEmptyVocabularyProbability() throws Exception {
- TrigramSentenceLanguageModel<String> model = new TrigramSentenceLanguageModel<String>();
- assertEquals("probability with an empty vocabulary is always 0", 0d, model.calculateProbability(Collections.<String[]>emptySet(),
- new String[0]), 0d);
- assertEquals("probability with an empty vocabulary is always 0", 0d, model.calculateProbability(Collections.<String[]>emptySet(),
- new String[]{"1", "2", "3"}), 0d);
+ public void testEmptyVocabularyProbability() {
+ TrigramSentenceLanguageModel<String> model = new TrigramSentenceLanguageModel<>();
+ assertEquals("probability with an empty vocabulary is always 0",
+ 0d, model.calculateProbability(Collections.emptySet(), new String[0]), 0d);
+ assertEquals("probability with an empty vocabulary is always 0",
+ 0d, model.calculateProbability(Collections.emptySet(), new String[]{"1", "2", "3"}), 0d);
}
@Test
- public void testRandomVocabularyAndSentence() throws Exception {
- TrigramSentenceLanguageModel<String> model = new TrigramSentenceLanguageModel<String>();
+ public void testRandomVocabularyAndSentence() {
+ TrigramSentenceLanguageModel<String> model = new TrigramSentenceLanguageModel<>();
double probability = model.calculateProbability(TestUtils.generateRandomVocabulary(), TestUtils.generateRandomSentence());
assertTrue("a probability measure should be between 0 and 1 [was " + probability + "]", probability >= 0 && probability <= 1);
}
diff --git a/nlp-utils/src/test/java/org/apache/opennlp/utils/ngram/NGramUtilsTest.java b/nlp-utils/src/test/java/org/apache/opennlp/utils/ngram/NGramUtilsTest.java
index 8da4947..a988e98 100644
--- a/nlp-utils/src/test/java/org/apache/opennlp/utils/ngram/NGramUtilsTest.java
+++ b/nlp-utils/src/test/java/org/apache/opennlp/utils/ngram/NGramUtilsTest.java
@@ -32,7 +32,7 @@ import static org.junit.Assert.assertTrue;
public class NGramUtilsTest {
@Test
public void testBigram() {
- Collection<String[]> set = new LinkedList<String[]>();
+ Collection<String[]> set = new LinkedList<>();
set.add(new String[]{"<s>", "I", "am", "Sam", "</s>"});
set.add(new String[]{"<s>", "Sam", "I", "am", "</s>"});
set.add(new String[]{"<s>", "I", "do", "not", "like", "green", "eggs", "and", "ham", "</s>"});
@@ -48,7 +48,7 @@ public class NGramUtilsTest {
@Test
public void testTrigram() {
- Collection<String[]> set = new LinkedList<String[]>();
+ Collection<String[]> set = new LinkedList<>();
set.add(new String[]{"<s>", "I", "am", "Sam", "</s>"});
set.add(new String[]{"<s>", "Sam", "I", "am", "</s>"});
set.add(new String[]{"<s>", "I", "do", "not", "like", "green", "eggs", "and", "ham", "</s>"});
@@ -60,8 +60,8 @@ public class NGramUtilsTest {
}
@Test
- public void testLinearInterpolation() throws Exception {
- Collection<String[]> set = new LinkedList<String[]>();
+ public void testLinearInterpolation() {
+ Collection<String[]> set = new LinkedList<>();
set.add(new String[]{"the", "green", "book", "STOP"});
set.add(new String[]{"my", "blue", "book", "STOP"});
set.add(new String[]{"his", "green", "house", "STOP"});
@@ -74,8 +74,8 @@ public class NGramUtilsTest {
}
@Test
- public void testLinearInterpolation2() throws Exception {
- Collection<String[]> set = new LinkedList<String[]>();
+ public void testLinearInterpolation2() {
+ Collection<String[]> set = new LinkedList<>();
set.add(new String[]{"D", "N", "V", "STOP"});
set.add(new String[]{"D", "N", "V", "STOP"});
Double lambda = 1d / 3d;
diff --git a/nlp-utils/src/test/java/org/apache/opennlp/utils/regression/GradientDescentUtilsTest.java b/nlp-utils/src/test/java/org/apache/opennlp/utils/regression/GradientDescentUtilsTest.java
index 91e7370..4486120 100644
--- a/nlp-utils/src/test/java/org/apache/opennlp/utils/regression/GradientDescentUtilsTest.java
+++ b/nlp-utils/src/test/java/org/apache/opennlp/utils/regression/GradientDescentUtilsTest.java
@@ -28,7 +28,7 @@ import org.junit.Test;
public class GradientDescentUtilsTest {
@Test
- public void testConvergence() throws Exception {
+ public void testConvergence() {
TrainingSet trainingSet = new TrainingSet();
TestUtils.fillTrainingSet(trainingSet, 100, 5);
GradientDescentUtils.batchGradientDescent(trainingSet, 0.00002);
diff --git a/nlp-utils/src/test/java/org/apache/opennlp/utils/regression/RegressionModelUtilsTest.java b/nlp-utils/src/test/java/org/apache/opennlp/utils/regression/RegressionModelUtilsTest.java
index 4c46a9b..8676989 100644
--- a/nlp-utils/src/test/java/org/apache/opennlp/utils/regression/RegressionModelUtilsTest.java
+++ b/nlp-utils/src/test/java/org/apache/opennlp/utils/regression/RegressionModelUtilsTest.java
@@ -22,8 +22,8 @@ import org.apache.opennlp.utils.TrainingExample;
import org.apache.opennlp.utils.TrainingSet;
import org.junit.Test;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
/**
* Testcase for {@link org.apache.opennlp.utils.regression.RegressionModelUtils}
@@ -31,14 +31,15 @@ import static org.junit.Assert.assertTrue;
public class RegressionModelUtilsTest {
@Test
- public void testLMS() throws Exception {
+ public void testLMS() {
TrainingSet trainingSet = new TrainingSet();
trainingSet.add(new TrainingExample(new double[]{10, 10}, 1));
LinearCombinationHypothesis hypothesis = new LinearCombinationHypothesis(1, 1);
- double[] updatedParameters = RegressionModelUtils.batchLeastMeanSquareUpdate(new double[]{1, 1}, 0.1, trainingSet, hypothesis);
+ double[] updatedParameters = RegressionModelUtils.batchLeastMeanSquareUpdate(
+ new double[]{1, 1}, 0.1, trainingSet, hypothesis);
assertNotNull(updatedParameters);
- assertTrue(updatedParameters.length == 2);
- assertTrue(updatedParameters[0] == -18d);
- assertTrue(updatedParameters[1] == -18d);
+ assertEquals(2, updatedParameters.length);
+ assertEquals(-18d, updatedParameters[0], 0.0);
+ assertEquals(-18d, updatedParameters[1], 0.0);
}
}