SentiWord方法接受String参数并使用tagger方法将单词标记为动词或名词等。当我运行此代码时,我得到“java.lang.StringIndexOutOfBoundsException:String index out of range:-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);
....
...
}
我在尝试什么:
if (words[i].length()>0) // This line
tail = taggedWords[i].substring(words[i].length() + 1);
但似乎没有例外。请帮助。
答案 0 :(得分:1)
显然words[i]
长于taggedWords[i]
尝试将它们打印出来用于调试目的,我敢打赌这就是你所看到的。