This is an automated email from the ASF dual-hosted git repository.
mawiesne pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/opennlp.git
The following commit(s) were added to refs/heads/main by this push:
new fddd5ae6 OPENNLP-1588 Clean out deprecated code marked for removal
(#632)
fddd5ae6 is described below
commit fddd5ae6522dcd832cb3ed760d9aa82b90155244
Author: Martin Wiesner <[email protected]>
AuthorDate: Sat Jul 6 11:27:12 2024 +0200
OPENNLP-1588 Clean out deprecated code marked for removal (#632)
- removes deprecated getters in several records
- removes a very long time deprecated constructor of TokenizerME
- removes deprecated field in DefaultNameContextGenerator and adapts tests
accordingly
- marks a constructor of ADNameSampleStream as "for removal" to indicate
actual removal is more likely in upcoming releases
- marks deprecated 'NameFinderEventStream#generateOutcomes(..)' as "for
removal" to indicate actual removal is more likely in upcoming releases
- clears unused code from NameFinderME
- fixes resource leak in TokenNameFinderFactory
---
opennlp-dl/src/main/java/opennlp/dl/SpanEnd.java | 10 --------
opennlp-dl/src/main/java/opennlp/dl/Tokens.java | 19 --------------
.../opennlp/tools/dictionary/serializer/Entry.java | 9 -------
.../tools/formats/ad/ADNameSampleStream.java | 2 +-
.../opennlp/tools/langdetect/LanguageSample.java | 14 +++-------
.../langdetect/ProbingLanguageDetectionResult.java | 9 -------
.../namefind/DefaultNameContextGenerator.java | 28 +++-----------------
.../tools/namefind/NameFinderEventStream.java | 2 +-
.../java/opennlp/tools/namefind/NameFinderME.java | 23 -----------------
.../tools/namefind/TokenNameFinderFactory.java | 12 +++------
.../java/opennlp/tools/tokenize/TokenizerME.java | 30 ----------------------
.../src/main/java/opennlp/tools/util/TokenTag.java | 15 -----------
.../tools/ml/model/TwoPassDataIndexerTest.java | 6 ++---
.../tools/namefind/NameFinderEventStreamTest.java | 7 +----
14 files changed, 15 insertions(+), 171 deletions(-)
diff --git a/opennlp-dl/src/main/java/opennlp/dl/SpanEnd.java
b/opennlp-dl/src/main/java/opennlp/dl/SpanEnd.java
index d8b02cbc..2c91c192 100644
--- a/opennlp-dl/src/main/java/opennlp/dl/SpanEnd.java
+++ b/opennlp-dl/src/main/java/opennlp/dl/SpanEnd.java
@@ -19,16 +19,6 @@ package opennlp.dl;
public record SpanEnd(int index, int characterEnd) {
- @Deprecated(forRemoval = true)
- public int getIndex() {
- return index;
- }
-
- @Deprecated(forRemoval = true)
- public int getCharacterEnd() {
- return characterEnd;
- }
-
@Override
public String toString() {
return "index: " + index + "; character end: " + characterEnd;
diff --git a/opennlp-dl/src/main/java/opennlp/dl/Tokens.java
b/opennlp-dl/src/main/java/opennlp/dl/Tokens.java
index 45a12491..f5c105fe 100644
--- a/opennlp-dl/src/main/java/opennlp/dl/Tokens.java
+++ b/opennlp-dl/src/main/java/opennlp/dl/Tokens.java
@@ -27,23 +27,4 @@ package opennlp.dl;
*/
public record Tokens(String[] tokens, long[] ids, long[] mask, long[] types) {
- @Deprecated(forRemoval = true)
- public String[] getTokens() {
- return tokens;
- }
-
- @Deprecated(forRemoval = true)
- public long[] getIds() {
- return ids;
- }
-
- @Deprecated(forRemoval = true)
- public long[] getMask() {
- return mask;
- }
-
- @Deprecated(forRemoval = true)
- public long[] getTypes() {
- return types;
- }
}
diff --git
a/opennlp-tools/src/main/java/opennlp/tools/dictionary/serializer/Entry.java
b/opennlp-tools/src/main/java/opennlp/tools/dictionary/serializer/Entry.java
index e8d5ef65..d4cbf79c 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/dictionary/serializer/Entry.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/dictionary/serializer/Entry.java
@@ -31,13 +31,4 @@ import opennlp.tools.util.StringList;
*/
public record Entry(StringList tokens, Attributes attributes) {
- @Deprecated(forRemoval = true)
- public StringList getTokens() {
- return tokens;
- }
-
- @Deprecated(forRemoval = true)
- public Attributes getAttributes() {
- return attributes;
- }
}
diff --git
a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADNameSampleStream.java
b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADNameSampleStream.java
index ab5b54f6..dae804be 100644
---
a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADNameSampleStream.java
+++
b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADNameSampleStream.java
@@ -184,7 +184,7 @@ public class ADNameSampleStream implements
ObjectStream<NameSample> {
* @param splitHyphenatedTokens If {@code true} hyphenated tokens will be
separated:
* "carros-monstro" > "carros" "-" "monstro".
*/
- @Deprecated
+ @Deprecated(forRemoval = true)
public ADNameSampleStream(InputStreamFactory in, String charsetName,
boolean splitHyphenatedTokens) throws IOException {
this(new PlainTextByLineStream(in, charsetName), splitHyphenatedTokens);
diff --git
a/opennlp-tools/src/main/java/opennlp/tools/langdetect/LanguageSample.java
b/opennlp-tools/src/main/java/opennlp/tools/langdetect/LanguageSample.java
index dca39734..3926c95b 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/langdetect/LanguageSample.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/langdetect/LanguageSample.java
@@ -17,6 +17,7 @@
package opennlp.tools.langdetect;
+import java.io.Serial;
import java.io.Serializable;
import java.util.Objects;
@@ -25,23 +26,14 @@ import java.util.Objects;
*/
public record LanguageSample(Language language, CharSequence context)
implements Serializable {
- private static final long serialVersionUID = -2222893493240468729L;
+ @Serial
+ private static final long serialVersionUID = -4791295976215940258L;
public LanguageSample(Language language, CharSequence context) {
this.language = Objects.requireNonNull(language, "language must not be
null");
this.context = Objects.requireNonNull(context, "context must not be null");
}
- @Deprecated(forRemoval = true)
- public Language getLanguage() {
- return language;
- }
-
- @Deprecated(forRemoval = true)
- public CharSequence getContext() {
- return context;
- }
-
@Override
public String toString() {
return language.getLang() + '\t' + context;
diff --git
a/opennlp-tools/src/main/java/opennlp/tools/langdetect/ProbingLanguageDetectionResult.java
b/opennlp-tools/src/main/java/opennlp/tools/langdetect/ProbingLanguageDetectionResult.java
index 7500336a..42857751 100644
---
a/opennlp-tools/src/main/java/opennlp/tools/langdetect/ProbingLanguageDetectionResult.java
+++
b/opennlp-tools/src/main/java/opennlp/tools/langdetect/ProbingLanguageDetectionResult.java
@@ -25,13 +25,4 @@ package opennlp.tools.langdetect;
*/
public record ProbingLanguageDetectionResult(Language[] languages, int length)
{
- @Deprecated(forRemoval = true)
- public Language[] getLanguages() {
- return languages;
- }
-
- @Deprecated(forRemoval = true)
- public int getLength() {
- return length;
- }
}
diff --git
a/opennlp-tools/src/main/java/opennlp/tools/namefind/DefaultNameContextGenerator.java
b/opennlp-tools/src/main/java/opennlp/tools/namefind/DefaultNameContextGenerator.java
index 712d1782..5e13f975 100644
---
a/opennlp-tools/src/main/java/opennlp/tools/namefind/DefaultNameContextGenerator.java
+++
b/opennlp-tools/src/main/java/opennlp/tools/namefind/DefaultNameContextGenerator.java
@@ -19,16 +19,10 @@ package opennlp.tools.namefind;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
import opennlp.tools.util.featuregen.AdaptiveFeatureGenerator;
-import opennlp.tools.util.featuregen.BigramNameFeatureGenerator;
-import opennlp.tools.util.featuregen.CachedFeatureGenerator;
import opennlp.tools.util.featuregen.FeatureGeneratorUtil;
-import opennlp.tools.util.featuregen.OutcomePriorFeatureGenerator;
-import opennlp.tools.util.featuregen.PreviousMapFeatureGenerator;
-import opennlp.tools.util.featuregen.TokenClassFeatureGenerator;
-import opennlp.tools.util.featuregen.TokenFeatureGenerator;
-import opennlp.tools.util.featuregen.WindowFeatureGenerator;
/**
* A {@link NameContextGenerator} implementation for determining contextual
features
@@ -38,31 +32,15 @@ public class DefaultNameContextGenerator implements
NameContextGenerator {
protected AdaptiveFeatureGenerator[] featureGenerators;
- @Deprecated
- private static final AdaptiveFeatureGenerator WINDOW_FEATURES = new
CachedFeatureGenerator(
- new WindowFeatureGenerator(new TokenFeatureGenerator(), 2, 2),
- new WindowFeatureGenerator(new TokenClassFeatureGenerator(true), 2, 2),
- new OutcomePriorFeatureGenerator(),
- new PreviousMapFeatureGenerator(),
- new BigramNameFeatureGenerator());
-
/**
* Creates a name context generator with the specified
* {@link AdaptiveFeatureGenerator feature generators}.
*
* @param featureGenerators One or more {@link AdaptiveFeatureGenerator
feature generators}.
- * If none are provided, a default config ({@link
#WINDOW_FEATURES})
- * will be used.
*/
public DefaultNameContextGenerator(AdaptiveFeatureGenerator...
featureGenerators) {
-
- if (featureGenerators != null) {
- this.featureGenerators = featureGenerators;
- }
- else { // use defaults
- this.featureGenerators =
- new AdaptiveFeatureGenerator[]{WINDOW_FEATURES, new
PreviousMapFeatureGenerator()};
- }
+ this.featureGenerators = Objects.requireNonNull(
+ featureGenerators, "Please specify at least one featureGenerator");
}
@Override
diff --git
a/opennlp-tools/src/main/java/opennlp/tools/namefind/NameFinderEventStream.java
b/opennlp-tools/src/main/java/opennlp/tools/namefind/NameFinderEventStream.java
index a77bfbf6..d6361b34 100644
---
a/opennlp-tools/src/main/java/opennlp/tools/namefind/NameFinderEventStream.java
+++
b/opennlp-tools/src/main/java/opennlp/tools/namefind/NameFinderEventStream.java
@@ -83,7 +83,7 @@ public class NameFinderEventStream extends
opennlp.tools.util.AbstractEventStrea
*
* @deprecated use the {@link BioCodec} implementation of the
SequenceValidator instead!
*/
- @Deprecated
+ @Deprecated(forRemoval = true)
public static String[] generateOutcomes(Span[] names, String type, int
length) {
String[] outcomes = new String[length];
Arrays.fill(outcomes, NameFinderME.OTHER);
diff --git
a/opennlp-tools/src/main/java/opennlp/tools/namefind/NameFinderME.java
b/opennlp-tools/src/main/java/opennlp/tools/namefind/NameFinderME.java
index f8c5e667..72182dab 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/namefind/NameFinderME.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/namefind/NameFinderME.java
@@ -17,7 +17,6 @@
package opennlp.tools.namefind;
-import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
@@ -44,9 +43,7 @@ import opennlp.tools.util.SequenceCodec;
import opennlp.tools.util.SequenceValidator;
import opennlp.tools.util.Span;
import opennlp.tools.util.TrainingParameters;
-import opennlp.tools.util.featuregen.AdaptiveFeatureGenerator;
import opennlp.tools.util.featuregen.AdditionalContextFeatureGenerator;
-import opennlp.tools.util.featuregen.GeneratorFactory;
import opennlp.tools.util.featuregen.WindowFeatureGenerator;
/**
@@ -92,26 +89,6 @@ public class NameFinderME implements TokenNameFinder {
new WindowFeatureGenerator(additionalContextFeatureGenerator, 8,
8));
}
- private static AdaptiveFeatureGenerator createFeatureGenerator(
- byte[] generatorDescriptor, final Map<String, Object> resources)
- throws IOException {
- AdaptiveFeatureGenerator featureGenerator;
-
- if (generatorDescriptor != null) {
- featureGenerator = GeneratorFactory.create(new ByteArrayInputStream(
- generatorDescriptor), key -> {
- if (resources != null) {
- return resources.get(key);
- }
- return null;
- });
- } else {
- featureGenerator = null;
- }
-
- return featureGenerator;
- }
-
@Override
public Span[] find(String[] tokens) {
return find(tokens, EMPTY);
diff --git
a/opennlp-tools/src/main/java/opennlp/tools/namefind/TokenNameFinderFactory.java
b/opennlp-tools/src/main/java/opennlp/tools/namefind/TokenNameFinderFactory.java
index c451c10d..6f31f0fe 100644
---
a/opennlp-tools/src/main/java/opennlp/tools/namefind/TokenNameFinderFactory.java
+++
b/opennlp-tools/src/main/java/opennlp/tools/namefind/TokenNameFinderFactory.java
@@ -248,11 +248,8 @@ public class TokenNameFinderFactory extends
BaseToolFactory {
featureGeneratorBytes = loadDefaultFeatureGeneratorBytes();
}
- InputStream descriptorIn = new ByteArrayInputStream(featureGeneratorBytes);
-
- AdaptiveFeatureGenerator generator;
- try {
- generator = GeneratorFactory.create(descriptorIn, key -> {
+ try (InputStream descriptorIn = new
ByteArrayInputStream(featureGeneratorBytes)) {
+ return GeneratorFactory.create(descriptorIn, key -> {
if (artifactProvider != null) {
return artifactProvider.getArtifact(key);
}
@@ -273,11 +270,10 @@ public class TokenNameFinderFactory extends
BaseToolFactory {
// throwing a Runtime Exception is reasonable
throw new FeatureGeneratorCreationError(e);
- } catch (IOException e) {
+ }
+ catch (IOException e) {
throw new IllegalStateException("Reading from mem cannot result in an
I/O error", e);
}
-
- return generator;
}
/**
diff --git
a/opennlp-tools/src/main/java/opennlp/tools/tokenize/TokenizerME.java
b/opennlp-tools/src/main/java/opennlp/tools/tokenize/TokenizerME.java
index 6664ef27..1c88f84b 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/tokenize/TokenizerME.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/tokenize/TokenizerME.java
@@ -19,11 +19,9 @@ package opennlp.tools.tokenize;
import java.io.IOException;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import java.util.regex.Pattern;
import opennlp.tools.dictionary.Dictionary;
@@ -31,7 +29,6 @@ import opennlp.tools.ml.EventTrainer;
import opennlp.tools.ml.TrainerFactory;
import opennlp.tools.ml.model.Event;
import opennlp.tools.ml.model.MaxentModel;
-import opennlp.tools.tokenize.lang.Factory;
import opennlp.tools.util.DownloadUtil;
import opennlp.tools.util.ObjectStream;
import opennlp.tools.util.Span;
@@ -143,33 +140,6 @@ public class TokenizerME extends AbstractTokenizer {
tokProbs = new ArrayList<>(50);
}
- /**
- * @deprecated use {@link TokenizerFactory} to extend the Tokenizer
- * functionality
- */
- @Deprecated
- public TokenizerME(TokenizerModel model, Factory factory) {
- String languageCode = model.getLanguage();
-
- this.alphanumeric = factory.getAlphanumeric(languageCode);
- this.cg = factory.createTokenContextGenerator(languageCode,
- getAbbreviations(model.getAbbreviations()));
-
- this.model = model.getMaxentModel();
- useAlphaNumericOptimization = model.useAlphaNumericOptimization();
-
- abbDict = model.getAbbreviations();
- newTokens = new ArrayList<>();
- tokProbs = new ArrayList<>(50);
- }
-
- private static Set<String> getAbbreviations(Dictionary abbreviations) {
- if (abbreviations == null) {
- return Collections.emptySet();
- }
- return abbreviations.asStringSet();
- }
-
/**
* @return the probabilities associated with the most recent calls to
* {@link TokenizerME#tokenize(String)} or {@link
TokenizerME#tokenizePos(String)}.
diff --git a/opennlp-tools/src/main/java/opennlp/tools/util/TokenTag.java
b/opennlp-tools/src/main/java/opennlp/tools/util/TokenTag.java
index 575efe2f..9bd22a64 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/util/TokenTag.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/util/TokenTag.java
@@ -32,21 +32,6 @@ public record TokenTag(String token, String tag, String[]
additionalData) {
}
}
- @Deprecated(forRemoval = true)
- public String getToken() {
- return token;
- }
-
- @Deprecated(forRemoval = true)
- public String getTag() {
- return tag;
- }
-
- @Deprecated(forRemoval = true)
- public String[] getAdditionalData() {
- return additionalData;
- }
-
public static String[] extractTokens(TokenTag[] tuples) {
String[] tokens = new String[tuples.length];
for (int i = 0; i < tuples.length; i++) {
diff --git
a/opennlp-tools/src/test/java/opennlp/tools/ml/model/TwoPassDataIndexerTest.java
b/opennlp-tools/src/test/java/opennlp/tools/ml/model/TwoPassDataIndexerTest.java
index cde7fd65..4877f346 100644
---
a/opennlp-tools/src/test/java/opennlp/tools/ml/model/TwoPassDataIndexerTest.java
+++
b/opennlp-tools/src/test/java/opennlp/tools/ml/model/TwoPassDataIndexerTest.java
@@ -23,15 +23,14 @@ import java.util.Collections;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
-import opennlp.tools.namefind.DefaultNameContextGenerator;
import opennlp.tools.namefind.NameContextGenerator;
import opennlp.tools.namefind.NameFinderEventStream;
import opennlp.tools.namefind.NameSample;
+import opennlp.tools.namefind.TokenNameFinderFactory;
import opennlp.tools.util.ObjectStream;
import opennlp.tools.util.ObjectStreamUtils;
import opennlp.tools.util.Span;
import opennlp.tools.util.TrainingParameters;
-import opennlp.tools.util.featuregen.AdaptiveFeatureGenerator;
public class TwoPassDataIndexerTest {
@@ -74,8 +73,7 @@ public class TwoPassDataIndexerTest {
String[] sentence = "He belongs to Apache \n Software Foundation
.".split(" ");
- NameContextGenerator CG = new DefaultNameContextGenerator(
- (AdaptiveFeatureGenerator[]) null);
+ NameContextGenerator CG = new
TokenNameFinderFactory().createContextGenerator();
NameSample nameSample = new NameSample(sentence,
new Span[] {new Span(3, 7)}, false);
diff --git
a/opennlp-tools/src/test/java/opennlp/tools/namefind/NameFinderEventStreamTest.java
b/opennlp-tools/src/test/java/opennlp/tools/namefind/NameFinderEventStreamTest.java
index 175531a3..2863968a 100644
---
a/opennlp-tools/src/test/java/opennlp/tools/namefind/NameFinderEventStreamTest.java
+++
b/opennlp-tools/src/test/java/opennlp/tools/namefind/NameFinderEventStreamTest.java
@@ -26,7 +26,6 @@ import opennlp.tools.ml.model.Event;
import opennlp.tools.util.ObjectStream;
import opennlp.tools.util.ObjectStreamUtils;
import opennlp.tools.util.Span;
-import opennlp.tools.util.featuregen.AdaptiveFeatureGenerator;
/**
* This is the test class for {@link NameFinderEventStream}.
@@ -37,8 +36,7 @@ public class NameFinderEventStreamTest {
"the", "hint", "and", "enjoyed", "a", "delicious", "traditional", "meal",
"."};
- private static final NameContextGenerator CG = new
DefaultNameContextGenerator(
- (AdaptiveFeatureGenerator[]) null);
+ private static final NameContextGenerator CG = new
TokenNameFinderFactory().createContextGenerator();
/**
* Tests the correctly generated outcomes for a test sentence.
@@ -46,9 +44,6 @@ public class NameFinderEventStreamTest {
@Test
void testOutcomesForSingleTypeSentence() throws IOException {
- NameContextGenerator CG = new DefaultNameContextGenerator(
- (AdaptiveFeatureGenerator[]) null);
-
NameSample nameSample = new NameSample(SENTENCE,
new Span[] {new Span(0, 2, "person")}, false);