cs_ghadouch
Messages postés10Date d'inscriptionlundi 6 décembre 2010StatutMembreDernière intervention11 février 2013
-
11 févr. 2013 à 01:43
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020
-
11 févr. 2013 à 08:29
Bonjour à tous,
quand j'ai executé mon programme java j'ai obtenu l'erreur suivante :
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at nlg.ReadAndGenerate.main(ReadAndGenerate.java:143)
Java Result: 1
j'ai essayé à résoudre le problème mais j'ai pas réussi, donc s'il vous plais si quelqu'un peut me données meme une idée je serais très reconnaissante.
File lex = new File("./res/default-lexicon.xml");
lexicon = new XMLLexicon(lex.getAbsolutePath());
this.phraseFactory = new NLGFactory(this.lexicon);
this.realiser = new Realiser(this.lexicon);
this.realiser.setFormatter(null);
}
NPPhraseSpec treatSubject(String input) throws Exception{
Map<String,String> features =getAttributes(input);
NPPhraseSpec element = this.phraseFactory.createNounPhrase(features.get("lex"));
applyFeatures(element,features,nounFeatures);
return element;
}
VPPhraseSpec treatVerb(String input)throws Exception{
Map<String,String> features =getAttributes(input);
VPPhraseSpec element = this.phraseFactory.createVerbPhrase(features.get("lex"));
applyFeatures(element,features,verbFeatures);
return element;
}
for (String key : features.keySet()){
if (key.compareTo("lex")!=0){
if (key.compareTo("set")==0){
element.setFeature((String) simpleNLGFeatures.get(features.get(key)), true);
}
else{
element.setFeature((String) simpleNLGFeatures.get(key),(Object) simpleNLGFeatures.get(features.get(key)));
}
}
}
}
NPPhraseSpec treatObject(String input)throws Exception{
Map<String,String> features =getAttributes(input);
NPPhraseSpec element = this.phraseFactory.createNounPhrase(features.get("lex"));
applyFeatures(element,features,nounFeatures);
return element;
}
private Map<String,String> getAttributes(String chaine) throws Exception{
Map<String,String> features = new HashMap<>();
for (String pairs: chaine.split(",")){
String[] atrVal= pairs.split("=");
if (atrVal.length!=2){
throw new Exception("badly formatted attribute=value pair in " + chaine);
}
features.put(atrVal[0].trim(), atrVal[1].trim());
}
return features;
}
static public void main(String args[]) throws Exception{
ReadAndGenerate engine = new ReadAndGenerate();
Scanner scan = new Scanner(new File(args[0])).useDelimiter("\\)\\),");
List text = new ArrayList<>();
engine.phraseFactory.setLexicon(engine.lexicon);
engine.realiser.setLexicon(engine.lexicon);
while(scan.hasNext()){
String line = scan.next();
String[] els= line.split("\\)");
int i = 0;
NPPhraseSpec subject = engine.treatSubject(els[i].substring(els[i].lastIndexOf("(")+1));
i++;
SPhraseSpec clause;
VPPhraseSpec verb = engine.treatVerb(els[i].substring(els[i].lastIndexOf("(")+1));
i++;
NPPhraseSpec object = engine.treatObject(els[i].substring(els[i].lastIndexOf("(")+1));