This is an automated email from the ASF dual-hosted git repository. rzo1 pushed a commit to branch fix-eval-tests-after-pos-tagging-conversion in repository https://gitbox.apache.org/repos/asf/opennlp.git
commit ba0e604273d3ecf5ddcdf2b3f80b1959f831f1c2 Author: Richard Zowalla <[email protected]> AuthorDate: Wed May 29 21:00:28 2024 +0200 OPENNLP-1564 - In case we are loading a POSModel from a POSTaggerNameFeatureGenerator (e.g. defined in XML), we need to actually guess the format out of a given POSModel to initalize the POSTagger correctly. --- .../main/java/opennlp/tools/postag/POSTagFormatMapper.java | 12 ++++++++++++ .../tools/util/featuregen/POSTaggerNameFeatureGenerator.java | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/opennlp-tools/src/main/java/opennlp/tools/postag/POSTagFormatMapper.java b/opennlp-tools/src/main/java/opennlp/tools/postag/POSTagFormatMapper.java index e02cb520..b01a36ac 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/postag/POSTagFormatMapper.java +++ b/opennlp-tools/src/main/java/opennlp/tools/postag/POSTagFormatMapper.java @@ -206,4 +206,16 @@ public class POSTagFormatMapper { return POSTagFormat.UNKNOWN; } } + + /** + * Guesses the {@link POSTagFormat} of a given {@link POSModel} + * @param posModel must not be {@code null}. + * @return the guessed {@link POSTagFormat}. + */ + public static POSTagFormat guessFormat(POSModel posModel) { + Objects.requireNonNull(posModel, "POSModel must not be NULL."); + Objects.requireNonNull(posModel.getPosSequenceModel(), "POSSequenceModel must not be NULL."); + final POSTagFormatMapper mapper = new POSTagFormatMapper(posModel.getPosSequenceModel().getOutcomes()); + return mapper.getGuessedFormat(); + } } diff --git a/opennlp-tools/src/main/java/opennlp/tools/util/featuregen/POSTaggerNameFeatureGenerator.java b/opennlp-tools/src/main/java/opennlp/tools/util/featuregen/POSTaggerNameFeatureGenerator.java index cc30ad68..9b67f684 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/util/featuregen/POSTaggerNameFeatureGenerator.java +++ b/opennlp-tools/src/main/java/opennlp/tools/util/featuregen/POSTaggerNameFeatureGenerator.java @@ -22,6 +22,7 @@ import java.util.Arrays; import java.util.List; import opennlp.tools.postag.POSModel; +import opennlp.tools.postag.POSTagFormatMapper; import opennlp.tools.postag.POSTagger; import opennlp.tools.postag.POSTaggerME; @@ -50,8 +51,7 @@ public class POSTaggerNameFeatureGenerator implements AdaptiveFeatureGenerator { * @param aPosModel a POSTagger model. */ public POSTaggerNameFeatureGenerator(POSModel aPosModel) { - - this.posTagger = new POSTaggerME(aPosModel); + this.posTagger = new POSTaggerME(aPosModel, POSTagFormatMapper.guessFormat(aPosModel)); }
