OPENNLP-1259 - Replace instances of Math.random with Random.nextDouble (#30)

Co-authored-by: bd2019us <>
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 bd8fa5a..009e72b 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
@@ -19,6 +19,7 @@
 package org.apache.opennlp.utils.regression;
 
 import java.util.Arrays;
+import java.util.Random;
 import org.apache.opennlp.utils.TrainingSet;
 
 /**
@@ -71,7 +72,8 @@
   private static double[] initializeRandomWeights(int size) {
     double[] doubles = new double[size];
     for (int i = 0; i < doubles.length; i++) {
-      doubles[i] = Math.random() * 0.1d;
+      Random rand = new Random();
+      doubles[i] = rand.nextDouble() * 0.1d;
     }
     return doubles;
   }
diff --git a/opennlp-similarity/src/main/java/opennlp/tools/apps/relevanceVocabs/SynonymListFilter.java b/opennlp-similarity/src/main/java/opennlp/tools/apps/relevanceVocabs/SynonymListFilter.java
index 37f57e4..53d76e9 100644
--- a/opennlp-similarity/src/main/java/opennlp/tools/apps/relevanceVocabs/SynonymListFilter.java
+++ b/opennlp-similarity/src/main/java/opennlp/tools/apps/relevanceVocabs/SynonymListFilter.java
@@ -35,6 +35,7 @@
 import java.util.HashMap;

 import java.util.List;

 import java.util.Map;

+import java.util.Random;

 

 import org.slf4j.Logger;

 import org.slf4j.LoggerFactory;

@@ -92,7 +93,8 @@
 			String[] synonyms = map.getSynonyms(word);

 			if (synonyms==null || synonyms.length<1)

 				return null;

-			int index = (int) Math.floor(Math.random()*(double)synonyms.length);

+			Random rand = new Random();

+			int index = (int) Math.floor(rand.nextDouble()*(double)synonyms.length);

 			System.out.println("Found synonyms "+Arrays.asList(synonyms).toString()+ " | selected synonym = "+synonyms[index] +" | for the input = "+ word);

 			return synonyms[index];

 			

diff --git a/opennlp-similarity/src/main/java/opennlp/tools/apps/review_builder/SentenceOriginalizer.java b/opennlp-similarity/src/main/java/opennlp/tools/apps/review_builder/SentenceOriginalizer.java
index a9c94dc..ed28d70 100644
--- a/opennlp-similarity/src/main/java/opennlp/tools/apps/review_builder/SentenceOriginalizer.java
+++ b/opennlp-similarity/src/main/java/opennlp/tools/apps/review_builder/SentenceOriginalizer.java
@@ -4,6 +4,7 @@
 import java.util.Arrays;

 import java.util.HashSet;

 import java.util.List;

+import java.util.Random;

 

 import org.apache.commons.lang.StringUtils;

 

@@ -87,7 +88,8 @@
 		prodName = StringUtils.trim(prodName.toLowerCase());

 				

 		for(int i = 0; i< sents.length; i++){

-			double flag = Math.random();

+			Random rand = new Random();

+			double flag = rand.nextDouble();

 			String prodNameCurr = null;

 			if (flag>0.4)

 				prodNameCurr = prodName;

diff --git a/opennlp-similarity/src/main/java/opennlp/tools/textsimilarity/ParseTreeMatcher.java b/opennlp-similarity/src/main/java/opennlp/tools/textsimilarity/ParseTreeMatcher.java
index bcff940..0c29cb1 100644
--- a/opennlp-similarity/src/main/java/opennlp/tools/textsimilarity/ParseTreeMatcher.java
+++ b/opennlp-similarity/src/main/java/opennlp/tools/textsimilarity/ParseTreeMatcher.java
@@ -20,6 +20,7 @@
 import java.util.ArrayList;

 import java.util.Collections;

 import java.util.List;

+import java.util.Random;

 

 public class ParseTreeMatcher {

 

@@ -151,6 +152,7 @@
         String sim = posManager.similarPOS(pos1.get(k1), pos2.get(k2));

         String lemmaMatch = lemmaFormManager.matchLemmas(null, chunk1

             .getLemmas().get(k1), chunk2.getLemmas().get(k2), sim);

+	Random rand = new Random();

         // if (LemmaFormManager.acceptableLemmaAndPOS(sim, lemmaMatch)){

         if ((sim != null)

             && (lemmaMatch == null || (lemmaMatch != null && !lemmaMatch

@@ -168,7 +170,7 @@
           }

           k1++;

           k2++;

-        } else if (Math.random() > 0.5) {

+        } else if (rand.nextDouble() > 0.5) {

           k1++;

         } else {

           k2++;