1

こんにちは私はかなり前から情報検索に取り組んでいて、いくつかの困難に直面しています。最近、次のリンクからStandAloneAnnie.javaをダウンロードしました

http://gate.ac.uk/wiki/code-repository/src/sheffield/examples/StandAloneAnnie.java 実行して出力を確認することはできましたが、クエリが1つか2つあります。

  1. このプログラムは、人と場所に注釈を付けます。このようなエンティティに注釈を付けるために保存されている文法はどこにありますか。

  2. 独自の簡単な文法を記述してデータを抽出し、それをStandAloneAnnie.javaのコピーで使用するにはどうすればよいですか?

以前の投稿 1つの​​文字列に数百の正規表現 NLPの新機能、注釈に関する質問

4

2 に答える 2

3

以下は、人の身長をタグ付けするための簡単な文法です。

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)トランスデューサーを使用して実行する必要があります。メインコードでapplication('pipeline')を実行する必要があります。あなたはgate.ac.uk/sale/taoでjapeを書くためのチュートリアルを見つけることができます

于 2011-08-23T04:31:14.903 に答える
0

文法がどのように保存されるかを説明するアニーパワーポイントの紹介があります。それらはJapeファイルにあります。

于 2011-08-12T12:55:04.877 に答える