【问题标题】:How to change default value of ANNIE resources in GATE from java code?如何从 Java 代码更改 GATE 中 ANNIE 资源的默认值?
【发布时间】:2017-02-23 13:59:05
【问题描述】:

在 GATE 中,ANNIE 的默认值是在初始化期间设置的,但有时需要根据需要进行更改。

我的要求:我想提取英文句子,而不考虑“下一行字符”,而是给出正确句子的“句号”。为此,我需要在 ANNIE 的 SentenceSplitter 中更改 transducerURL 的默认值。 这可以通过两种方式完成:

  1. 使用 ANNIE_with_defaults.gapp - 在 Sentencesplitter 中更改 initparams 值并从 java 访问

        Gate.setGateHome(new File(Configuration.GATE_HOME));                        
        Gate.init();
        // Load ANNIE with defaults from the plug-ins folder
        File pluginsHome = Gate.getPluginsHome();
        File anniePlugin = new File(pluginsHome, ANNIEConstants.PLUGIN_DIR);
        File annieGapp = new File(anniePlugin, ANNIEConstants.DEFAULT_FILE);
        annieController = (CorpusController) PersistenceManager.loadObjectFromFile(annieGapp);
    

我无法在 gapp 文件中找到更改其值的位置。

  1. 初始化GATE后,使用CreoleRegister访问ResourceData,修改参数transducerURL的默认值,如下图

    String resourceClassName = "gate.creole.splitter.SentenceSplitter";
            ResourceData resData = Gate.getCreoleRegister().get(resourceClassName);
            //System.out.println(resData.getParameterList());
            ParameterList params = resData.getParameterList();
            List<List<Parameter>> param =  params.getInitimeParameters();
            System.out.println(param);
            //System.out.println(param.get(0));
            for(List<Parameter> plist : param)
            {
                for(Parameter pm : plist)
                {
                    System.out.println("Name : "+pm.getName()+", "+pm.getDefaultValue());
                }
            }
    

但Parameter没有setDefaultvalue方法。

如何解决这个问题?

欢迎任何形式的帮助。

【问题讨论】:

    标签: java nlp gate


    【解决方案1】:

    我通过使用 creole.xml 解决了这个问题。我曾尝试使用 SentenceSplitter,但它给了我不正确的句子。所以,我改用 RegexSentenceSplitter。 在 creole.xml 中添加了几行-

    <RESOURCE>
        <CLASS>gate.creole.splitter.RegexSentenceSplitter</CLASS>
        <PARAMETER NAME="externalSplitListURL" DEFAULT="file:/C:/Program%20Files/GATE_Developer_8.1/plugins/ANNIE/resources/regex-splitter/external-split-patterns.txt" COMMENT="The URL to the custom external-split-patterns.txt" SUFFIXES="txt;text">java.net.URL</PARAMETER>
        <PARAMETER NAME="internalSplitListURL" DEFAULT="file:/C:/Program%20Files/GATE_Developer_8.1/plugins/ANNIE/resources/regex-splitter/internal-split-patterns.txt" COMMENT="The URL to the custom internal-split-patterns.txt" SUFFIXES="txt;text">java.net.URL</PARAMETER>
        <PARAMETER NAME="nonSplitListURL" DEFAULT="file:/C:/Program%20Files/GATE_Developer_8.1/plugins/ANNIE/resources/regex-splitter/non-split-patterns.txt" COMMENT="The URL to the custom non-split-patterns.txt" SUFFIXES="txt;text">java.net.URL</PARAMETER>
    </RESOURCE>
    

    然后从后端代码加载 ANNIE_with_defaults.gapp,如问题所示。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多