Repository: opennlp Updated Branches: refs/heads/master 5a0f9cafc -> 0201285c0
OPENNLP-1096: Swap for loops in ngram generation to be cache friendly Project: http://git-wip-us.apache.org/repos/asf/opennlp/repo Commit: http://git-wip-us.apache.org/repos/asf/opennlp/commit/0201285c Tree: http://git-wip-us.apache.org/repos/asf/opennlp/tree/0201285c Diff: http://git-wip-us.apache.org/repos/asf/opennlp/diff/0201285c Branch: refs/heads/master Commit: 0201285c0e7f3c263de80f3b992079dc57418e13 Parents: 5a0f9ca Author: Jörn Kottmann <[email protected]> Authored: Thu Jun 22 14:41:56 2017 +0200 Committer: Jörn Kottmann <[email protected]> Committed: Mon Jun 26 14:22:53 2017 +0200 ---------------------------------------------------------------------- .../src/main/java/opennlp/tools/ngram/NGramModel.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/opennlp/blob/0201285c/opennlp-tools/src/main/java/opennlp/tools/ngram/NGramModel.java ---------------------------------------------------------------------- diff --git a/opennlp-tools/src/main/java/opennlp/tools/ngram/NGramModel.java b/opennlp-tools/src/main/java/opennlp/tools/ngram/NGramModel.java index a17578b..8c03024 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/ngram/NGramModel.java +++ b/opennlp-tools/src/main/java/opennlp/tools/ngram/NGramModel.java @@ -146,9 +146,9 @@ public class NGramModel implements Iterable<StringList> { throw new IllegalArgumentException("minLength param must not be larger than " + "maxLength param. minLength=" + minLength + ", maxLength= " + maxLength); - for (int lengthIndex = minLength; lengthIndex < maxLength + 1; lengthIndex++) { - for (int textIndex = 0; - textIndex + lengthIndex - 1 < ngram.size(); textIndex++) { + for (int textIndex = 0; textIndex < ngram.size(); textIndex++) { + for (int lengthIndex = minLength; textIndex + lengthIndex - 1 < ngram.size() + && lengthIndex < maxLength + 1; lengthIndex++) { String[] grams = new String[lengthIndex]; @@ -170,9 +170,9 @@ public class NGramModel implements Iterable<StringList> { */ public void add(CharSequence chars, int minLength, int maxLength) { - for (int lengthIndex = minLength; lengthIndex < maxLength + 1; lengthIndex++) { - for (int textIndex = 0; - textIndex + lengthIndex - 1 < chars.length(); textIndex++) { + for (int textIndex = 0; textIndex < chars.length(); textIndex++) { + for (int lengthIndex = minLength; textIndex + lengthIndex - 1 < chars.length() + && lengthIndex < maxLength + 1; lengthIndex++) { String gram = StringUtil.toLowerCase( chars.subSequence(textIndex, textIndex + lengthIndex));
