You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@opennlp.apache.org by "Jeff Zemerick (JIRA)" <ji...@apache.org> on 2017/11/30 18:24:00 UTC
[jira] [Commented] (OPENNLP-1161) avoid using concrete tag names of
XML config in GeneratorFactory.extractArtifactSerializerMappings()
[ https://issues.apache.org/jira/browse/OPENNLP-1161?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16273113#comment-16273113 ]
Jeff Zemerick commented on OPENNLP-1161:
----------------------------------------
I think that's a good change. What makes the task a blocker?
> 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)