gpt4 book ai didi

java - Gate ANNIE 语法

转载 作者:行者123 更新时间:2023-11-29 06:10:33 25 4
gpt4 key购买 nike

您好,我一直在努力从事信息检索方面的工作,但遇到了一些困难。最近我从以下链接下载了 StandAloneAnnie.java

http://gate.ac.uk/wiki/code-repository/src/sheffield/examples/StandAloneAnnie.java虽然我已经能够执行它并看到输出,但我有一个或两个查询。

  1. 这个程序对人和地点进行标注,用于标注这些实体的语法存储在哪里。

  2. 我如何编写自己的简单语法来提取一些数据并在我的 StandAloneAnnie.java 副本中使用它?

以前的帖子 Hundreds of RegEx on one string New to NLP, Question about annotation

最佳答案

下面是一个简单的标注人高度的语法

Phase: Meaurements
Input: Token Number
Options: control=appelt debug=true



Rule: Height
(
({Number})
( {Token.string=~"[Ff]t"} | {Token.string=~"[Ii]n"} | {Token.string=~"[Cc]m"})
):height
-->
:height.Height= {value= :height.Number.value, unit= :height.Token.string}

这是执行的主要代码,

    public static void main(String arg[]) {

Gate.init();
gate.Corpus corpus= (Corpus) Factory.createResource("gate.corpora.CorpusImpl");

//You need to register the plugin before you load it.

Gate.getCreoleRegister().registerDirectories(new File(Gate.getPluginsHome(), ANNIEConstants.PLUGIN_DIR).toURI().toURL());
Gate.getCreoleRegister().registerDirectories(new URL("file:///GATE_HOME/plugins/Tagger_Numbers"));//change this path


Document doc = new DocumentImpl();
//The string to be annotated.

String str = "Height is 60 in. Weight is 150 lbs pulse rate 90 Pulse rate 90";
DocumentContentImpl impl = new DocumentContentImpl(str);
doc.setContent(impl);

//Loading processing resources. refer http://gate.ac.uk/gate/doc/plugins.html for what class the plugin belongs to

ProcessingResource token = (ProcessingResource) Factory.createResource("gate.creole.tokeniser.DefaultTokeniser", Factory.newFeatureMap());
ProcessingResource sspliter = (ProcessingResource) Factory.createResource("gate.creole.splitter.SentenceSplitter", Factory.newFeatureMap());
ProcessingResource number = (ProcessingResource) Factory.createResource("gate.creole.numbers.NumbersTagger", Factory.newFeatureMap());


/*pipeline is an application that needs to be created to use resources loaded above.
Reasources must be added in a particular order eg. below the 'number' resource requires the document to be tokenised. */

corpus.add(doc);
SerialAnalyserController pipeline = (SerialAnalyserController) Factory.createResource("gate.creole.SerialAnalyserController", Factory.newFeatureMap(), Factory.newFeatureMap(), "ANNIE");
pipeline.setCorpus(corpus);
pipeline.add(token);
pipeline.add(sspliter);
pipeline.add(number);
pipeline.execute();

//Extract info from an annotated document.

AnnotationSetImpl ann=(AnnotationSetImpl)doc.getAnnotations();
Iterator<Annotation>i = ann.get(vital).iterator();
Annotation annotation = i.next();
long start = annotation.getStartNode().getOffset();
long end = annotation.getEndNode().getOffset();
System.out.println(doc.toString().substring((int)start, (int)end));

}

注意:-在上面的代码中,Height 的语法将被写在一个.jape 文件中。您需要使用 JAPE(JAPE Plus) 转换器运行此语法。我们只需要在我们的主代码中执行应用程序('pipeline')。您可以在 gate.ac.uk/sale/tao 找到编写 jape 的教程

关于java - Gate ANNIE 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7038283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com