[
https://issues.apache.org/jira/browse/OPENNLP-1161?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16278237#comment-16278237
]
ASF GitHub Bot commented on OPENNLP-1161:
-----------------------------------------
kottmann commented on issue #292: OPENNLP-1161: avoid using concrete tag names
of XML config in Generat…
URL: https://github.com/apache/opennlp/pull/292#issuecomment-349240638
One more thing on this, this mechanism should also work for
non-AdaptiveFeatureGenerators, as far as I understand that can be achieved if
we move it into the factories.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> avoid using concrete tag names of XML config in
> GeneratorFactory.extractArtifactSerializerMappings()
> ----------------------------------------------------------------------------------------------------
>
> Key: OPENNLP-1161
> URL: https://issues.apache.org/jira/browse/OPENNLP-1161
> Project: OpenNLP
> Issue Type: Improvement
> Components: Formats, Name Finder
> Affects Versions: 1.8.3
> Reporter: Koji Sekiguchi
> Assignee: Koji Sekiguchi
> Priority: Blocker
>
> When working on OPENNLP-1154, I noticed this.
> In GeneratorFactory.extractArtifactSerializerMappings(), it specifies
> concrete XML tag names:
> {code:java}
> for (int i = 0; i < allElements.getLength(); i++) {
> if (allElements.item(i) instanceof Element) {
> Element xmlElement = (Element) allElements.item(i);
> String dictName = xmlElement.getAttribute("dict");
> if (dictName != null) {
> switch (xmlElement.getTagName()) {
> case "wordcluster":
> mapping.put(dictName, new
> WordClusterDictionary.WordClusterDictionarySerializer());
> break;
> case "brownclustertoken":
> mapping.put(dictName, new
> BrownCluster.BrownClusterSerializer());
> break;
> case "brownclustertokenclass"://, ;
> mapping.put(dictName, new
> BrownCluster.BrownClusterSerializer());
> break;
> case "brownclusterbigram": //, ;
> mapping.put(dictName, new
> BrownCluster.BrownClusterSerializer());
> break;
> case "dictionary":
> mapping.put(dictName, new DictionarySerializer());
> break;
> }
> }
> String modelName = xmlElement.getAttribute("model");
> if (modelName != null) {
> switch (xmlElement.getTagName()) {
> case "tokenpos":
> mapping.put(modelName, new POSModelSerializer());
> break;
> }
> }
> }
> }
> {code}
> Instead, we'd better let FeatureGeneratorFactories implement a method that
> returns mapping (Map<String, ArtifactSerializer<?>>) and in
> GeneratorFactory.extractArtifactSerializerMappings(), the framework just
> calls the method of FeatureGeneratorFactories, which are found in XML config.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)