Bonjour,

j'utilise GATE (General Architecture for Text Engineering). Je veux créer un pipeline qui contient les 5 premiers composants de ANNIE puis Le Morphological Analyser puis d'autre composants.

J'ai télécharger le plugin ANNIE

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 // Load ANNIE plugin
 
File gateHome = Gate.getGateHome();
File pluginsHome = new File(gateHome, "plugins");
Gate.getCreoleRegister().registerDirectories(new File(pluginsHome, "ANNIE").toURL());
J'ai créé mon pipeline
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
SerialAnalyserController pipeline = (SerialAnalyserController) Factory
		.createResource("gate.creole.SerialAnalyserController", Factory.newFeatureMap(),
		        Factory.newFeatureMap());
Puis je lui ai ajouté les 5 composants de ANNIE
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
for(int i = 0; i < ANNIEConstants.PR_NAMES.length-2; i++) {
	FeatureMap params = Factory.newFeatureMap(); // use default parameters
	ProcessingResource pr = (ProcessingResource)
	        Factory.createResource(ANNIEConstants.PR_NAMES[i], params);
	//Out.prln("processing ressource:"+i+"was created");
 
	// add the PR to the pipeline controller
	pipeline.add(pr);
	// Out.prln("processing ressource:"+i+"was added");
} // for each ANNIE PR
J'ai créé mon corpus et lui ai ajouté mes documents:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
// create a GATE corpus and add a document for each command-line
// argument
Corpus corpus = (Corpus) Factory.createResource("gate.corpora.CorpusImpl");
for(int i = 0; i < args.length; i++) {
	System.out.print("\t " + (i + 1) + ") " + args[i]);
 
	File docFile = new File(args[i]);
	System.out.print("Processing document " + docFile + "...");
 
	Document doc = Factory.newDocument(docFile.toURL(), encoding);
 
	corpus.add(doc);      
} // for each of args
enfin
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
// tell the pipeline about the corpus and run it
corpus_pipeline.setCorpus(corpus);
corpus_pipeline.execute();


Mais une erreur qui, je pense, provient de l’instanciation du pipeline survient:
"Initialising GATE...
Initialising Pipeline...
1) Business.txtProcessing document Business.txt...Exception in thread "main" java.lang.NullPointerException
at pipeline.PretreatmentStep.setCorpus(PretreatmentStep.java:54)
at pipeline.PretreatmentStep.main(PretreatmentStep.java:110)
sachant que si j'utilise
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
pipeline =
	(SerialAnalyserController) Factory.createResource(
		"gate.creole.SerialAnalyserController", Factory.newFeatureMap(),
		Factory.newFeatureMap(), "ANNIE_" + Gate.genSym());
au lieu de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
SerialAnalyserController pipeline = (SerialAnalyserController) Factory
		.createResource("gate.creole.SerialAnalyserController", Factory.newFeatureMap(),
		        Factory.newFeatureMap());
l'erreur n'apparait pas.
Mais dans mon cas je veux créer un corpus_pipeline qui contient les composants de ANNIE et d'autre composants provenant d'autre plug-ins.

Pouvez vous m'aidez à régler le problème?
Merci d'avance