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));
   }
 
 

Reply via email to