You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2023/01/14 14:11:16 UTC
[commons-text] 08/08: Add and use a package-private singleton for JaccardSimilarity
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-text.git
commit 0e6d86a576e8835765e8924f9f3f7f00f36b05e4
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sat Jan 14 09:08:20 2023 -0500
Add and use a package-private singleton for JaccardSimilarity
---
src/changes/changes.xml | 3 ++-
.../java/org/apache/commons/text/similarity/JaccardDistance.java | 7 +------
.../java/org/apache/commons/text/similarity/JaccardSimilarity.java | 5 +++++
3 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index cb0067d8..30a10e2c 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -47,13 +47,14 @@ The <action> type attribute can be add,update,fix,remove.
<release version="1.10.1" date="20YY-MM-DD" description="Release 1.10.1. Requires Java 8.">
<!-- FIX -->
<action issue="TEXT-219" type="fix" dev="aherbert" due-to="Jaap Sperling">Fix StringTokenizer.getTokenList to return an independent modifiable list</action>
- <action type="fix" dev="aherbert" due-to="James Nord">Fix javadoc for StringEscapeUtils.escapeHtml4 #382</action>
+ <action type="fix" dev="aherbert" due-to="James Nord">Fix Javadoc for StringEscapeUtils.escapeHtml4 #382</action>
<action type="fix" dev="ggregory" due-to="Pavel Belousov, Gary Gregory">TextStringBuidler#hashCode() allocates a String on each call #387.</action>
<action issue="TEXT-221" type="fix" dev="aherbert" due-to="Remco Riswick">Fix Bundle-SymbolicName to use the package name org.apache.commons.text</action>
<action type="fix" dev="ggregory" due-to="Gary Gregory">Add and use a package-private singleton for RegexTokenizer.</action>
<action type="fix" dev="ggregory" due-to="Gary Gregory">Add and use a package-private singleton for CosineSimilarity.</action>
<action type="fix" dev="ggregory" due-to="Gary Gregory">Add and use a package-private singleton for LongestCommonSubsequence.</action>
<action type="fix" dev="ggregory" due-to="Gary Gregory">Add and use a package-private singleton for JaroWinklerSimilarity.</action>
+ <action type="fix" dev="ggregory" due-to="Gary Gregory">Add and use a package-private singleton for JaccardSimilarity.</action>
<!-- ADD -->
<!-- UPDATE -->
<action type="update" dev="ggregory" due-to="Dependabot">Bump actions/cache from 3.0.8 to 3.0.10 #361, #365.</action>
diff --git a/src/main/java/org/apache/commons/text/similarity/JaccardDistance.java b/src/main/java/org/apache/commons/text/similarity/JaccardDistance.java
index fe956b20..eba0895a 100644
--- a/src/main/java/org/apache/commons/text/similarity/JaccardDistance.java
+++ b/src/main/java/org/apache/commons/text/similarity/JaccardDistance.java
@@ -30,11 +30,6 @@ package org.apache.commons.text.similarity;
*/
public class JaccardDistance implements EditDistance<Double> {
- /**
- * We normalize the jaccardSimilarity for the purpose of computing the distance.
- */
- private final JaccardSimilarity jaccardSimilarity = new JaccardSimilarity();
-
/**
* Calculates Jaccard distance of two set character sequence passed as
* input. Calculates Jaccard similarity and returns the complement of it.
@@ -50,6 +45,6 @@ public class JaccardDistance implements EditDistance<Double> {
if (left == null || right == null) {
throw new IllegalArgumentException("Input cannot be null");
}
- return 1.0 - jaccardSimilarity.apply(left, right).doubleValue();
+ return 1.0 - JaccardSimilarity.INSTANCE.apply(left, right).doubleValue();
}
}
diff --git a/src/main/java/org/apache/commons/text/similarity/JaccardSimilarity.java b/src/main/java/org/apache/commons/text/similarity/JaccardSimilarity.java
index 4f291392..9b77d255 100644
--- a/src/main/java/org/apache/commons/text/similarity/JaccardSimilarity.java
+++ b/src/main/java/org/apache/commons/text/similarity/JaccardSimilarity.java
@@ -33,6 +33,11 @@ import java.util.Set;
*/
public class JaccardSimilarity implements SimilarityScore<Double> {
+ /**
+ * Singleton instance.
+ */
+ static final JaccardSimilarity INSTANCE = new JaccardSimilarity();
+
/**
* Calculates Jaccard Similarity of two set character sequence passed as
* input.