SentiWord-Methode nimmt String-Argumente und verwendet Tagger-Methode, um ein Wort als Verb oder Nomen zu markieren .... etc Wenn ich diesen Code ausführen I get "java.lang.StringIndexOutOfBoundsException: String-Index außerhalb des Bereichs: -3". Ich weiß, dass es ähnliche Fragen wie diese gibt, aber ich kann sie nicht anwenden, um die Ausnahme loszuwerden.Ich bekomme "java.lang.StringIndexOutOfBoundsException: String-Index außerhalb des Bereichs: -3"
public static String SentiWord(String stri) {
MaxentTagger tagger = new MaxentTagger("taggers/english-left3words-distsim.tagger");
String sample=stri;
sample = sample.replaceAll("([^a-zA-Z\\s])", "");
String[] words = sample.split("\\s+");
String taggedSample = tagger.tagString(sample);
String[] taggedWords = taggedSample.split("\\s+");
double totalScore = 0;
SWN3 test = new SWN3();
for (int i=0; i<taggedWords.length;i++) {
String tail = taggedWords[i].substring(words[i].length() + 1);
....
...
}
Was ich versuche:
if (words[i].length()>0) // This line
tail = taggedWords[i].substring(words[i].length() + 1);
Aber Ausnahme scheint nicht zu helfen go.Please.
'getaggedWords' und' words' sind unterschiedliche Array mit unterschiedlicher Länge –
ändern Sie Ihre Bedingung in - 'if (taggedWords [i] .length()> = words [i] .length)' –
Beim Buchen von Ausnahmen, bitte immer Fügen Sie den StackTrace hinzu, da dies hilfreich ist. –