From 4278aa7bacae96150a17529365c3d4e1179aae80 Mon Sep 17 00:00:00 2001 From: Alanscut Date: Thu, 12 Nov 2020 15:27:00 +0800 Subject: [PATCH] use for each loop --- .../tools/cmdline/EvaluationErrorPrinter.java | 10 +-- .../entitylinker/EntityLinkerTool.java | 4 +- .../tools/formats/ad/ADChunkSampleStream.java | 8 +- .../ConstitDocumentHandler.java | 5 +- .../DefaultLemmatizerContextGenerator.java | 8 +- .../tools/lemmatizer/LemmatizerME.java | 4 +- .../tools/ml/model/AbstractModelReader.java | 14 +-- .../tools/ml/naivebayes/NaiveBayesModel.java | 7 +- .../opennlp/tools/namefind/BilouCodec.java | 11 ++- .../java/opennlp/tools/namefind/BioCodec.java | 7 +- .../tools/parser/AbstractBottomUpParser.java | 27 +++--- .../parser/AbstractContextGenerator.java | 89 +++++++++---------- .../parser/AbstractParserEventStream.java | 29 +++--- .../tools/parser/ChunkSampleStream.java | 20 ++--- .../main/java/opennlp/tools/parser/Parse.java | 20 ++--- .../ParserChunkerSequenceValidator.java | 7 +- .../chunking/CheckContextGenerator.java | 4 +- .../tools/parser/lang/en/HeadRules.java | 6 +- .../lang/es/AncoraSpanishHeadRules.java | 6 +- .../tools/parser/treeinsert/Parser.java | 55 ++++++------ .../postag/DefaultPOSContextGenerator.java | 8 +- .../BrownTokenClassFeatureGenerator.java | 4 +- .../BrownTokenFeatureGenerator.java | 4 +- 23 files changed, 159 insertions(+), 198 deletions(-) diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/EvaluationErrorPrinter.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/EvaluationErrorPrinter.java index 4dbbf301b..beb9efd45 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/EvaluationErrorPrinter.java +++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/EvaluationErrorPrinter.java @@ -219,15 +219,13 @@ private void findErrors(Span[] references, Span[] predictions, falseNegatives.addAll(Arrays.asList(references)); falsePositives.addAll(Arrays.asList(predictions)); - for (int referenceIndex = 0; referenceIndex < references.length; referenceIndex++) { + for (Span referenceName : references) { - Span referenceName = references[referenceIndex]; - - for (int predictedIndex = 0; predictedIndex < predictions.length; predictedIndex++) { - if (referenceName.equals(predictions[predictedIndex])) { + for (Span prediction : predictions) { + if (referenceName.equals(prediction)) { // got it, remove from fn and fp falseNegatives.remove(referenceName); - falsePositives.remove(predictions[predictedIndex]); + falsePositives.remove(prediction); } } } diff --git a/opennlp-tools/src/main/java/opennlp/tools/cmdline/entitylinker/EntityLinkerTool.java b/opennlp-tools/src/main/java/opennlp/tools/cmdline/entitylinker/EntityLinkerTool.java index 985e37eba..8791642f3 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/cmdline/entitylinker/EntityLinkerTool.java +++ b/opennlp-tools/src/main/java/opennlp/tools/cmdline/entitylinker/EntityLinkerTool.java @@ -122,8 +122,8 @@ public void run(String[] args) { List linkedSpans = entityLinker.find(text.toString(), sentences, tokensBySentence, namesBySentence); - for (int i = 0; i < linkedSpans.size(); i++) { - System.out.println(linkedSpans.get(i)); + for (Span linkedSpan : linkedSpans) { + System.out.println(linkedSpan); } perfMon.incrementCounter(document.size()); diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADChunkSampleStream.java b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADChunkSampleStream.java index e692b11c2..c3f78121b 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADChunkSampleStream.java +++ b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADChunkSampleStream.java @@ -126,11 +126,11 @@ protected void processRoot(Node root, List sentence, List tags, List target) { if (root != null) { TreeElement[] elements = root.getElements(); - for (int i = 0; i < elements.length; i++) { - if (elements[i].isLeaf()) { - processLeaf((Leaf) elements[i], false, OTHER, sentence, tags, target); + for (TreeElement element : elements) { + if (element.isLeaf()) { + processLeaf((Leaf) element, false, OTHER, sentence, tags, target); } else { - processNode((Node) elements[i], sentence, tags, target, null); + processNode((Node) element, sentence, tags, target, null); } } } diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/frenchtreebank/ConstitDocumentHandler.java b/opennlp-tools/src/main/java/opennlp/tools/formats/frenchtreebank/ConstitDocumentHandler.java index 3f544e966..a724d77bf 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/formats/frenchtreebank/ConstitDocumentHandler.java +++ b/opennlp-tools/src/main/java/opennlp/tools/formats/frenchtreebank/ConstitDocumentHandler.java @@ -167,14 +167,13 @@ public void endElement(String uri, String localName, String qName) String txt = text.toString(); int tokenIndex = -1; Parse p = new Parse(txt, new Span(0, txt.length()), AbstractBottomUpParser.TOP_NODE, 1,0); - for (int ci = 0; ci < cons.size(); ci++) { - Constituent con = cons.get(ci); + for (Constituent con : cons) { String type = con.getLabel(); if (!type.equals(AbstractBottomUpParser.TOP_NODE)) { if (AbstractBottomUpParser.TOK_NODE.equals(type)) { tokenIndex++; } - Parse c = new Parse(txt, con.getSpan(), type, 1,tokenIndex); + Parse c = new Parse(txt, con.getSpan(), type, 1, tokenIndex); p.insert(c); } } diff --git a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/DefaultLemmatizerContextGenerator.java b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/DefaultLemmatizerContextGenerator.java index e663f782e..7da7107bb 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/DefaultLemmatizerContextGenerator.java +++ b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/DefaultLemmatizerContextGenerator.java @@ -89,13 +89,13 @@ public String[] getContext(int index, String[] toks, String[] tags, String[] pre // do some basic suffix analysis String[] suffs = getSuffixes(lex); - for (int i = 0; i < suffs.length; i++) { - features.add("suf=" + suffs[i]); + for (String suff : suffs) { + features.add("suf=" + suff); } String[] prefs = getPrefixes(lex); - for (int i = 0; i < prefs.length; i++) { - features.add("pre=" + prefs[i]); + for (String pref : prefs) { + features.add("pre=" + pref); } // see if the word has any special characters if (lex.indexOf('-') != -1) { diff --git a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmatizerME.java b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmatizerME.java index 83db79a99..1d332ac0f 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmatizerME.java +++ b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmatizerME.java @@ -99,8 +99,8 @@ public String[] lemmatize(String[] toks, String[] tags) { String[] posTags = tags.toArray(new String[tags.size()]); String[][] allLemmas = predictLemmas(LEMMA_NUMBER, tokens, posTags); List> predictedLemmas = new ArrayList<>(); - for (int i = 0; i < allLemmas.length; i++) { - predictedLemmas.add(Arrays.asList(allLemmas[i])); + for (String[] allLemma : allLemmas) { + predictedLemmas.add(Arrays.asList(allLemma)); } return predictedLemmas; } diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/model/AbstractModelReader.java b/opennlp-tools/src/main/java/opennlp/tools/ml/model/AbstractModelReader.java index c8e3a1699..085b85608 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/ml/model/AbstractModelReader.java +++ b/opennlp-tools/src/main/java/opennlp/tools/ml/model/AbstractModelReader.java @@ -130,18 +130,18 @@ protected String[] getPredicates() throws java.io.IOException { protected Context[] getParameters(int[][] outcomePatterns) throws java.io.IOException { Context[] params = new Context[NUM_PREDS]; int pid = 0; - for (int i = 0; i < outcomePatterns.length; i++) { + for (int[] pattern : outcomePatterns) { //construct outcome pattern - int[] outcomePattern = new int[outcomePatterns[i].length - 1]; - System.arraycopy(outcomePatterns[i], 1, outcomePattern, 0, outcomePatterns[i].length - 1); + int[] outcomePattern = new int[pattern.length - 1]; + System.arraycopy(pattern, 1, outcomePattern, 0, pattern.length - 1); //populate parameters for each context which uses this outcome pattern. - for (int j = 0; j < outcomePatterns[i][0]; j++) { - double[] contextParameters = new double[outcomePatterns[i].length - 1]; - for (int k = 1; k < outcomePatterns[i].length; k++) { + for (int j = 0; j < pattern[0]; j++) { + double[] contextParameters = new double[pattern.length - 1]; + for (int k = 1; k < pattern.length; k++) { contextParameters[k - 1] = readDouble(); } - params[pid] = new Context(outcomePattern,contextParameters); + params[pid] = new Context(outcomePattern, contextParameters); pid++; } } diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/NaiveBayesModel.java b/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/NaiveBayesModel.java index 77dfc79c4..b84e6f4d4 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/NaiveBayesModel.java +++ b/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/NaiveBayesModel.java @@ -50,8 +50,7 @@ public NaiveBayesModel(Context[] params, String[] predLabels, String[] outcomeNa protected double[] initOutcomeTotals(String[] outcomeNames, Context[] params) { double[] outcomeTotals = new double[outcomeNames.length]; - for (int i = 0; i < params.length; ++i) { - Context context = params[i]; + for (Context context : params) { for (int j = 0; j < context.getOutcomes().length; ++j) { int outcome = context.getOutcomes()[j]; double count = context.getParameters()[j]; @@ -114,8 +113,8 @@ static double[] eval(Context[] context, float[] values, double[] prior, } } double total = 0; - for (int i = 0; i < outcomeTotals.length; ++i) { - total += outcomeTotals[i]; + for (double outcomeTotal : outcomeTotals) { + total += outcomeTotal; } for (int i = 0; i < outcomeTotals.length; ++i) { double numerator = outcomeTotals[i]; diff --git a/opennlp-tools/src/main/java/opennlp/tools/namefind/BilouCodec.java b/opennlp-tools/src/main/java/opennlp/tools/namefind/BilouCodec.java index 5d24cd274..43c0e343f 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/namefind/BilouCodec.java +++ b/opennlp-tools/src/main/java/opennlp/tools/namefind/BilouCodec.java @@ -131,20 +131,19 @@ public boolean areOutcomesCompatible(String[] outcomes) { Set last = new HashSet<>(); Set unit = new HashSet<>(); - for (int i = 0; i < outcomes.length; i++) { - String outcome = outcomes[i]; + for (String outcome : outcomes) { if (outcome.endsWith(BilouCodec.START)) { start.add(outcome.substring(0, outcome.length() - - BilouCodec.START.length())); + - BilouCodec.START.length())); } else if (outcome.endsWith(BilouCodec.CONTINUE)) { cont.add(outcome.substring(0, outcome.length() - - BilouCodec.CONTINUE.length())); + - BilouCodec.CONTINUE.length())); } else if (outcome.endsWith(BilouCodec.LAST)) { last.add(outcome.substring(0, outcome.length() - - BilouCodec.LAST.length())); + - BilouCodec.LAST.length())); } else if (outcome.endsWith(BilouCodec.UNIT)) { unit.add(outcome.substring(0, outcome.length() - - BilouCodec.UNIT.length())); + - BilouCodec.UNIT.length())); } else if (!outcome.equals(BilouCodec.OTHER)) { return false; } diff --git a/opennlp-tools/src/main/java/opennlp/tools/namefind/BioCodec.java b/opennlp-tools/src/main/java/opennlp/tools/namefind/BioCodec.java index c0570a532..9b6a49369 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/namefind/BioCodec.java +++ b/opennlp-tools/src/main/java/opennlp/tools/namefind/BioCodec.java @@ -116,14 +116,13 @@ public boolean areOutcomesCompatible(String[] outcomes) { List start = new ArrayList<>(); List cont = new ArrayList<>(); - for (int i = 0; i < outcomes.length; i++) { - String outcome = outcomes[i]; + for (String outcome : outcomes) { if (outcome.endsWith(BioCodec.START)) { start.add(outcome.substring(0, outcome.length() - - BioCodec.START.length())); + - BioCodec.START.length())); } else if (outcome.endsWith(BioCodec.CONTINUE)) { cont.add(outcome.substring(0, outcome.length() - - BioCodec.CONTINUE.length())); + - BioCodec.CONTINUE.length())); } else if (!outcome.equals(BioCodec.OTHER)) { // got unexpected outcome return false; diff --git a/opennlp-tools/src/main/java/opennlp/tools/parser/AbstractBottomUpParser.java b/opennlp-tools/src/main/java/opennlp/tools/parser/AbstractBottomUpParser.java index 6575e2135..fcec97315 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/parser/AbstractBottomUpParser.java +++ b/opennlp-tools/src/main/java/opennlp/tools/parser/AbstractBottomUpParser.java @@ -203,9 +203,9 @@ public void setErrorReporting(boolean errorReporting) { */ public static void setParents(Parse p) { Parse[] children = p.getChildren(); - for (int ci = 0; ci < children.length; ci++) { - children[ci].setParent(p); - setParents(children[ci]); + for (Parse child : children) { + child.setParent(p); + setParents(child); } } @@ -318,19 +318,18 @@ else if (1 == derivationStage) { nd = advanceParses(tp, Q); } if (nd != null) { - for (int k = 0, kl = nd.length; k < kl; k++) { - if (nd[k].complete()) { - advanceTop(nd[k]); - if (nd[k].getProb() > bestComplete) { - bestComplete = nd[k].getProb(); + for (Parse parse : nd) { + if (parse.complete()) { + advanceTop(parse); + if (parse.getProb() > bestComplete) { + bestComplete = parse.getProb(); } - if (nd[k].getProb() < minComplete) { - minComplete = nd[k].getProb(); + if (parse.getProb() < minComplete) { + minComplete = parse.getProb(); } - completeParses.add(nd[k]); - } - else { - ndh.add(nd[k]); + completeParses.add(parse); + } else { + ndh.add(parse); } } } diff --git a/opennlp-tools/src/main/java/opennlp/tools/parser/AbstractContextGenerator.java b/opennlp-tools/src/main/java/opennlp/tools/parser/AbstractContextGenerator.java index a1fa576ec..0948a07bc 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/parser/AbstractContextGenerator.java +++ b/opennlp-tools/src/main/java/opennlp/tools/parser/AbstractContextGenerator.java @@ -19,7 +19,6 @@ package opennlp.tools.parser; import java.util.Collection; -import java.util.Iterator; import java.util.List; import java.util.Set; @@ -106,8 +105,7 @@ protected String production(Parse p, boolean includePunctuation) { Collection nextPunct = children[ci].getNextPunctuationSet(); if (includePunctuation && nextPunct != null) { //TODO: make sure multiple punctuation comes out the same - for (Iterator pit = nextPunct.iterator(); pit.hasNext();) { - Parse punct = pit.next(); + for (Parse punct : nextPunct) { production.append(punct.getType()).append(","); } } @@ -118,9 +116,8 @@ protected String production(Parse p, boolean includePunctuation) { protected void cons2(List features, Cons c0, Cons c1, Collection punct1s, boolean bigram) { if (punct1s != null) { - for (Iterator pi = punct1s.iterator();pi.hasNext();) { - Parse p = pi.next(); - String punctbo = punctbo(p,c1.index <= 0 ? c1.index - 1 : c1.index); + for (Parse p : punct1s) { + String punctbo = punctbo(p, c1.index <= 0 ? c1.index - 1 : c1.index); //punctbo(1); features.add(punctbo); @@ -137,8 +134,8 @@ protected void cons2(List features, Cons c0, Cons c1, Collection //cons(0)punctbo(1)cons(1) if (bigram) features.add(c0.cons + "," + punctbo + "," + c1.cons); - if (c1.unigram) features.add(c0.consbo + "," + punctbo + "," + c1.cons); - if (c0.unigram) features.add(c0.cons + "," + punctbo + "," + c1.consbo); + if (c1.unigram) features.add(c0.consbo + "," + punctbo + "," + c1.cons); + if (c0.unigram) features.add(c0.cons + "," + punctbo + "," + c1.consbo); features.add(c0.consbo + "," + punctbo + "," + c1.consbo); } } @@ -170,10 +167,9 @@ protected void cons3(List features, Cons c0, Cons c1, Cons c2, Collectio // features.add("stage=cons(0),cons(1),cons(2)"); if (punct1s != null) { if (c0.index == -2) { - for (Iterator pi = punct1s.iterator(); pi.hasNext();) { - Parse p = pi.next(); + for (Parse p : punct1s) { // String punct = punct(p,c1.index); - String punctbo = punctbo(p,c1.index <= 0 ? c1.index - 1 : c1.index); + String punctbo = punctbo(p, c1.index <= 0 ? c1.index - 1 : c1.index); //punct(-2) //TODO consider changing //features.add(punct); @@ -185,8 +181,7 @@ protected void cons3(List features, Cons c0, Cons c1, Cons c2, Collectio } if (punct2s != null) { if (c2.index == 2) { - for (Iterator pi = punct2s.iterator(); pi.hasNext();) { - Parse p = pi.next(); + for (Parse p : punct2s) { // String punct = punct(p,c2.index); String punctbo = punctbo(p, c2.index); //punct(2) @@ -199,33 +194,33 @@ protected void cons3(List features, Cons c0, Cons c1, Cons c2, Collectio } if (punct1s != null) { //cons(0),punctbo(1),cons(1),punctbo(2),cons(2) - for (Iterator pi2 = punct2s.iterator(); pi2.hasNext();) { - String punctbo2 = punctbo(pi2.next(),c2.index <= 0 ? c2.index - 1 : c2.index); - for (Iterator pi1 = punct1s.iterator(); pi1.hasNext();) { - String punctbo1 = punctbo(pi1.next(),c1.index <= 0 ? c1.index - 1 : c1.index); + for (Parse punct2 : punct2s) { + String punctbo2 = punctbo(punct2, c2.index <= 0 ? c2.index - 1 : c2.index); + for (Parse punct1 : punct1s) { + String punctbo1 = punctbo(punct1, c1.index <= 0 ? c1.index - 1 : c1.index); if (trigram) features.add(c0.cons + "," + punctbo1 + "," + c1.cons + "," + punctbo2 + "," + c2.cons); if (bigram2) - features.add(c0.consbo + "," + punctbo1 + "," + c1.cons + "," + punctbo2 + "," + c2.cons); + features.add(c0.consbo + "," + punctbo1 + "," + c1.cons + "," + punctbo2 + "," + c2.cons); if (c0.unigram && c2.unigram) features.add(c0.cons + "," + punctbo1 + "," + c1.consbo + "," + punctbo2 + "," + c2.cons); if (bigram1) - features.add(c0.cons + "," + punctbo1 + "," + c1.cons + "," + punctbo2 + "," + c2.consbo); + features.add(c0.cons + "," + punctbo1 + "," + c1.cons + "," + punctbo2 + "," + c2.consbo); if (c2.unigram) features.add(c0.consbo + "," + punctbo1 + "," + c1.consbo + "," + punctbo2 + "," + c2.cons); if (c1.unigram) - features.add(c0.consbo + "," + punctbo1 + "," + c1.cons + "," + punctbo2 + "," + c2.consbo); + features.add(c0.consbo + "," + punctbo1 + "," + c1.cons + "," + punctbo2 + "," + c2.consbo); if (c0.unigram) - features.add(c0.cons + "," + punctbo1 + "," + c1.consbo + "," + punctbo2 + "," + c2.consbo); + features.add(c0.cons + "," + punctbo1 + "," + c1.consbo + "," + punctbo2 + "," + c2.consbo); features.add(c0.consbo + "," + punctbo1 + "," + c1.consbo + "," + punctbo2 + "," + c2.consbo); if (zeroBackOff) { - if (bigram1) features.add(c0.cons + "," + punctbo1 + "," + c1.cons + "," + punctbo2); - if (c1.unigram) features.add(c0.consbo + "," + punctbo1 + "," + c1.cons + "," + punctbo2); - if (c0.unigram) features.add(c0.cons + "," + punctbo1 + "," + c1.consbo + "," + punctbo2); + if (bigram1) features.add(c0.cons + "," + punctbo1 + "," + c1.cons + "," + punctbo2); + if (c1.unigram) features.add(c0.consbo + "," + punctbo1 + "," + c1.cons + "," + punctbo2); + if (c0.unigram) features.add(c0.cons + "," + punctbo1 + "," + c1.consbo + "," + punctbo2); features.add(c0.consbo + "," + punctbo1 + "," + c1.consbo + "," + punctbo2); } } @@ -233,26 +228,26 @@ protected void cons3(List features, Cons c0, Cons c1, Cons c2, Collectio } else { //punct1s == null //cons(0),cons(1),punctbo(2),cons(2) - for (Iterator pi2 = punct2s.iterator(); pi2.hasNext();) { - String punctbo2 = punctbo(pi2.next(),c2.index <= 0 ? c2.index - 1 : c2.index); - if (trigram) features.add(c0.cons + "," + c1.cons + "," + punctbo2 + "," + c2.cons); + for (Parse punct2 : punct2s) { + String punctbo2 = punctbo(punct2, c2.index <= 0 ? c2.index - 1 : c2.index); + if (trigram) features.add(c0.cons + "," + c1.cons + "," + punctbo2 + "," + c2.cons); if (bigram2) - features.add(c0.consbo + "," + c1.cons + "," + punctbo2 + "," + c2.cons); + features.add(c0.consbo + "," + c1.cons + "," + punctbo2 + "," + c2.cons); if (c0.unigram && c2.unigram) - features.add(c0.cons + "," + c1.consbo + "," + punctbo2 + "," + c2.cons); - if (bigram1) features.add(c0.cons + "," + c1.cons + "," + punctbo2 + "," + c2.consbo); + features.add(c0.cons + "," + c1.consbo + "," + punctbo2 + "," + c2.cons); + if (bigram1) features.add(c0.cons + "," + c1.cons + "," + punctbo2 + "," + c2.consbo); if (c2.unigram) features.add(c0.consbo + "," + c1.consbo + "," + punctbo2 + "," + c2.cons); - if (c1.unigram) features.add(c0.consbo + "," + c1.cons + "," + punctbo2 + "," + c2.consbo); - if (c0.unigram) features.add(c0.cons + "," + c1.consbo + "," + punctbo2 + "," + c2.consbo); + if (c1.unigram) features.add(c0.consbo + "," + c1.cons + "," + punctbo2 + "," + c2.consbo); + if (c0.unigram) features.add(c0.cons + "," + c1.consbo + "," + punctbo2 + "," + c2.consbo); features.add(c0.consbo + "," + c1.consbo + "," + punctbo2 + "," + c2.consbo); if (zeroBackOff) { - if (bigram1) features.add(c0.cons + "," + c1.cons + "," + punctbo2); - if (c1.unigram) features.add(c0.consbo + "," + c1.cons + "," + punctbo2); - if (c0.unigram) features.add(c0.cons + "," + c1.consbo + "," + punctbo2); + if (bigram1) features.add(c0.cons + "," + c1.cons + "," + punctbo2); + if (c1.unigram) features.add(c0.consbo + "," + c1.cons + "," + punctbo2); + if (c0.unigram) features.add(c0.cons + "," + c1.consbo + "," + punctbo2); features.add(c0.consbo + "," + c1.consbo + "," + punctbo2); } } @@ -261,8 +256,8 @@ protected void cons3(List features, Cons c0, Cons c1, Cons c2, Collectio else { if (punct1s != null) { //cons(0),punctbo(1),cons(1),cons(2) - for (Iterator pi1 = punct1s.iterator(); pi1.hasNext();) { - String punctbo1 = punctbo(pi1.next(), c1.index <= 0 ? c1.index - 1 : c1.index); + for (Parse punct1 : punct1s) { + String punctbo1 = punctbo(punct1, c1.index <= 0 ? c1.index - 1 : c1.index); if (trigram) features.add(c0.cons + "," + punctbo1 + "," + c1.cons + "," + c2.cons); @@ -271,16 +266,16 @@ protected void cons3(List features, Cons c0, Cons c1, Cons c2, Collectio if (c0.unigram && c2.unigram) features.add(c0.cons + "," + punctbo1 + "," + c1.consbo + "," + c2.cons); if (bigram1) - features.add(c0.cons + "," + punctbo1 + "," + c1.cons + "," + c2.consbo); + features.add(c0.cons + "," + punctbo1 + "," + c1.cons + "," + c2.consbo); if (c2.unigram) features.add(c0.consbo + "," + punctbo1 + "," + c1.consbo + "," + c2.cons); if (c1.unigram) - features.add(c0.consbo + "," + punctbo1 + "," + c1.cons + "," + c2.consbo); + features.add(c0.consbo + "," + punctbo1 + "," + c1.cons + "," + c2.consbo); if (c0.unigram) features.add(c0.cons + "," + punctbo1 + "," + c1.consbo + "," + c2.consbo); - features.add(c0.consbo + "," + punctbo1 + "," + c1.consbo + "," + c2.consbo); + features.add(c0.consbo + "," + punctbo1 + "," + c1.consbo + "," + c2.consbo); //zero backoff case covered by cons(0)cons(1) } @@ -315,13 +310,11 @@ protected void surround(Parse node, int i, String type, Collection punctu StringBuilder feat = new StringBuilder(20); feat.append("s").append(i).append("="); if (punctuation != null) { - for (Iterator pi = punctuation.iterator(); pi.hasNext();) { - Parse punct = pi.next(); + for (Parse punct : punctuation) { if (node != null) { feat.append(node.getHead().getCoveredText()).append("|").append(type) - .append("|").append(node.getType()).append("|").append(punct.getType()); - } - else { + .append("|").append(node.getType()).append("|").append(punct.getType()); + } else { feat.append(type).append("|").append(EOS).append("|").append(punct.getType()); } features.add(feat.toString()); @@ -330,8 +323,7 @@ protected void surround(Parse node, int i, String type, Collection punctu feat.append("s").append(i).append("*="); if (node != null) { feat.append(type).append("|").append(node.getType()).append("|").append(punct.getType()); - } - else { + } else { feat.append(type).append("|").append(EOS).append("|").append(punct.getType()); } features.add(feat.toString()); @@ -413,8 +405,7 @@ protected void getFrontierNodes(List rf, Parse[] nodes) { int leftIndex = 0; int prevHeadIndex = -1; - for (int fi = 0; fi < rf.size(); fi++) { - Parse fn = rf.get(fi); + for (Parse fn : rf) { int headIndex = fn.getHeadIndex(); if (headIndex != prevHeadIndex) { nodes[leftIndex] = fn; diff --git a/opennlp-tools/src/main/java/opennlp/tools/parser/AbstractParserEventStream.java b/opennlp-tools/src/main/java/opennlp/tools/parser/AbstractParserEventStream.java index 7e0323d8f..4716fd5ec 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/parser/AbstractParserEventStream.java +++ b/opennlp-tools/src/main/java/opennlp/tools/parser/AbstractParserEventStream.java @@ -109,8 +109,8 @@ private static void getInitialChunks(Parse p, List ichunks) { else { Parse[] kids = p.getChildren(); boolean allKidsAreTags = true; - for (int ci = 0, cl = kids.length; ci < cl; ci++) { - if (!kids[ci].isPosTag()) { + for (Parse kid : kids) { + if (!kid.isPosTag()) { allKidsAreTags = false; break; } @@ -119,8 +119,8 @@ private static void getInitialChunks(Parse p, List ichunks) { ichunks.add(p); } else { - for (int ci = 0, cl = kids.length; ci < cl; ci++) { - getInitialChunks(kids[ci], ichunks); + for (Parse kid : kids) { + getInitialChunks(kid, ichunks); } } } @@ -138,26 +138,22 @@ private void addChunkEvents(List chunkEvents, Parse[] chunks) { List toks = new ArrayList<>(); List tags = new ArrayList<>(); List preds = new ArrayList<>(); - for (int ci = 0, cl = chunks.length; ci < cl; ci++) { - Parse c = chunks[ci]; + for (Parse c : chunks) { if (c.isPosTag()) { toks.add(c.getCoveredText()); tags.add(c.getType()); preds.add(Parser.OTHER); - } - else { + } else { boolean start = true; String ctype = c.getType(); Parse[] kids = c.getChildren(); - for (int ti = 0, tl = kids.length; ti < tl; ti++) { - Parse tok = kids[ti]; + for (Parse tok : kids) { toks.add(tok.getCoveredText()); tags.add(tok.getType()); if (start) { preds.add(Parser.START + ctype); start = false; - } - else { + } else { preds.add(Parser.CONT + ctype); } } @@ -173,16 +169,13 @@ private void addChunkEvents(List chunkEvents, Parse[] chunks) { private void addTagEvents(List tagEvents, Parse[] chunks) { List toks = new ArrayList<>(); List preds = new ArrayList<>(); - for (int ci = 0, cl = chunks.length; ci < cl; ci++) { - Parse c = chunks[ci]; + for (Parse c : chunks) { if (c.isPosTag()) { toks.add(c.getCoveredText()); preds.add(c.getType()); - } - else { + } else { Parse[] kids = c.getChildren(); - for (int ti = 0, tl = kids.length; ti < tl; ti++) { - Parse tok = kids[ti]; + for (Parse tok : kids) { toks.add(tok.getCoveredText()); preds.add(tok.getType()); } diff --git a/opennlp-tools/src/main/java/opennlp/tools/parser/ChunkSampleStream.java b/opennlp-tools/src/main/java/opennlp/tools/parser/ChunkSampleStream.java index bc940097e..675ac2332 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/parser/ChunkSampleStream.java +++ b/opennlp-tools/src/main/java/opennlp/tools/parser/ChunkSampleStream.java @@ -39,8 +39,8 @@ private static void getInitialChunks(Parse p, List ichunks) { else { Parse[] kids = p.getChildren(); boolean allKidsAreTags = true; - for (int ci = 0, cl = kids.length; ci < cl; ci++) { - if (!kids[ci].isPosTag()) { + for (Parse kid : kids) { + if (!kid.isPosTag()) { allKidsAreTags = false; break; } @@ -49,8 +49,8 @@ private static void getInitialChunks(Parse p, List ichunks) { ichunks.add(p); } else { - for (int ci = 0, cl = kids.length; ci < cl; ci++) { - getInitialChunks(kids[ci], ichunks); + for (Parse kid : kids) { + getInitialChunks(kid, ichunks); } } } @@ -71,26 +71,22 @@ public ChunkSample read() throws IOException { List toks = new ArrayList<>(); List tags = new ArrayList<>(); List preds = new ArrayList<>(); - for (int ci = 0, cl = chunks.length; ci < cl; ci++) { - Parse c = chunks[ci]; + for (Parse c : chunks) { if (c.isPosTag()) { toks.add(c.getCoveredText()); tags.add(c.getType()); preds.add(Parser.OTHER); - } - else { + } else { boolean start = true; String ctype = c.getType(); Parse[] kids = c.getChildren(); - for (int ti = 0, tl = kids.length; ti < tl; ti++) { - Parse tok = kids[ti]; + for (Parse tok : kids) { toks.add(tok.getCoveredText()); tags.add(tok.getType()); if (start) { preds.add(Parser.START + ctype); start = false; - } - else { + } else { preds.add(Parser.CONT + ctype); } } diff --git a/opennlp-tools/src/main/java/opennlp/tools/parser/Parse.java b/opennlp-tools/src/main/java/opennlp/tools/parser/Parse.java index b747baf45..776b58649 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/parser/Parse.java +++ b/opennlp-tools/src/main/java/opennlp/tools/parser/Parse.java @@ -21,7 +21,6 @@ import java.util.Arrays; import java.util.Collection; import java.util.HashSet; -import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Objects; @@ -371,8 +370,7 @@ public void show(StringBuffer sb) { //System.out.print(head+" "); //System.out.print(df.format(prob)+" "); } - for (Iterator i = parts.iterator(); i.hasNext();) { - Parse c = i.next(); + for (Parse c : parts) { Span s = c.span; if (start < s.getStart()) { //System.out.println("pre "+start+" "+s.getStart()); @@ -416,8 +414,8 @@ else if (parts.size() == 0) { } else { double sum = 0.0; - for (Iterator pi = parts.iterator(); pi.hasNext();) { - sum += pi.next().getTagSequenceProb(); + for (Parse part : parts) { + sum += part.getTagSequenceProb(); } return sum; } @@ -757,8 +755,7 @@ private static String getToken(String rest) { */ public void updateHeads(HeadRules rules) { if (parts != null && parts.size() != 0) { - for (int pi = 0, pn = parts.size(); pi < pn; pi++) { - Parse c = parts.get(pi); + for (Parse c : parts) { c.updateHeads(rules); } this.head = rules.getHead(parts.toArray(new Parse[parts.size()]), type); @@ -883,14 +880,13 @@ else if (c == ')') { String txt = text.toString(); int tokenIndex = -1; Parse p = new Parse(txt, new Span(0, txt.length()), AbstractBottomUpParser.TOP_NODE, 1,0); - for (int ci = 0; ci < cons.size(); ci++) { - Constituent con = cons.get(ci); + for (Constituent con : cons) { String type = con.getLabel(); if (!type.equals(AbstractBottomUpParser.TOP_NODE)) { if (AbstractBottomUpParser.TOK_NODE.equals(type)) { tokenIndex++; } - Parse c = new Parse(txt, con.getSpan(), type, 1,tokenIndex); + Parse c = new Parse(txt, con.getSpan(), type, 1, tokenIndex); //System.err.println("insert["+ci+"] "+type+" "+c.toString()+" "+c.hashCode()); p.insert(c); //codeTree(p); @@ -934,8 +930,8 @@ public boolean isPosTag() { */ public boolean isFlat() { boolean flat = true; - for (int ci = 0; ci < parts.size(); ci++) { - flat &= (parts.get(ci)).isPosTag(); + for (Parse part : parts) { + flat &= part.isPosTag(); } return flat; } diff --git a/opennlp-tools/src/main/java/opennlp/tools/parser/ParserChunkerSequenceValidator.java b/opennlp-tools/src/main/java/opennlp/tools/parser/ParserChunkerSequenceValidator.java index 3536841a4..340aead22 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/parser/ParserChunkerSequenceValidator.java +++ b/opennlp-tools/src/main/java/opennlp/tools/parser/ParserChunkerSequenceValidator.java @@ -31,11 +31,10 @@ public class ParserChunkerSequenceValidator implements SequenceValidator(outcomes.length); - for (int oi = 0, on = outcomes.length; oi < on; oi++) { - String outcome = outcomes[oi]; + for (String outcome : outcomes) { if (outcome.startsWith(Parser.CONT)) { - continueStartMap.put(outcome,Parser.START + outcome.substring( - Parser.CONT.length())); + continueStartMap.put(outcome, Parser.START + outcome.substring( + Parser.CONT.length())); } } } diff --git a/opennlp-tools/src/main/java/opennlp/tools/parser/chunking/CheckContextGenerator.java b/opennlp-tools/src/main/java/opennlp/tools/parser/chunking/CheckContextGenerator.java index 776ba744c..1e0b730e7 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/parser/chunking/CheckContextGenerator.java +++ b/opennlp-tools/src/main/java/opennlp/tools/parser/chunking/CheckContextGenerator.java @@ -19,7 +19,6 @@ import java.util.ArrayList; import java.util.Collection; -import java.util.Iterator; import java.util.List; import opennlp.tools.parser.AbstractContextGenerator; @@ -76,8 +75,7 @@ public String[] getContext(Parse[] constituents, String type, int start, int end punctProduction.append(p.getType()).append(","); Collection nextPunct = p.getNextPunctuationSet(); if (nextPunct != null) { - for (Iterator pit = nextPunct.iterator(); pit.hasNext();) { - Parse punct = pit.next(); + for (Parse punct : nextPunct) { punctProduction.append(punct.getType()).append(","); } } diff --git a/opennlp-tools/src/main/java/opennlp/tools/parser/lang/en/HeadRules.java b/opennlp-tools/src/main/java/opennlp/tools/parser/lang/en/HeadRules.java index 5e1ff4b78..6784204e3 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/parser/lang/en/HeadRules.java +++ b/opennlp-tools/src/main/java/opennlp/tools/parser/lang/en/HeadRules.java @@ -149,9 +149,9 @@ public Parse getHead(Parse[] constituents, String type) { } } } - for (int ci = 0; ci < constituents.length; ci++) { - if (constituents[ci].getType().equals("NP")) { - return constituents[ci].getHead(); + for (Parse constituent : constituents) { + if (constituent.getType().equals("NP")) { + return constituent.getHead(); } } String[] tags2 = { "$", "ADJP", "PRN" }; diff --git a/opennlp-tools/src/main/java/opennlp/tools/parser/lang/es/AncoraSpanishHeadRules.java b/opennlp-tools/src/main/java/opennlp/tools/parser/lang/es/AncoraSpanishHeadRules.java index 6dc15d122..6083f3517 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/parser/lang/es/AncoraSpanishHeadRules.java +++ b/opennlp-tools/src/main/java/opennlp/tools/parser/lang/es/AncoraSpanishHeadRules.java @@ -147,10 +147,10 @@ public Parse getHead(Parse[] constituents, String type) { if (type.equals("SN") || type.equals("GRUP.NOM")) { String[] tags1 = {"AQA.*","AQC.*","GRUP\\.A","S\\.A","NC.*S.*", "NP.*","NC.*P.*", "GRUP\\.NOM"}; - for (int i = 0; i < constituents.length; i++) { + for (Parse constituent : constituents) { for (int t = tags1.length - 1; t >= 0; t--) { - if (constituents[i].getType().matches(tags1[t])) { - return constituents[i]; + if (constituent.getType().matches(tags1[t])) { + return constituent; } } } diff --git a/opennlp-tools/src/main/java/opennlp/tools/parser/treeinsert/Parser.java b/opennlp-tools/src/main/java/opennlp/tools/parser/treeinsert/Parser.java index c38be27de..781d6029d 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/parser/treeinsert/Parser.java +++ b/opennlp-tools/src/main/java/opennlp/tools/parser/treeinsert/Parser.java @@ -206,8 +206,8 @@ protected Parse[] advanceChunks(Parse p, double minChunkScore) { Parse[] parses = super.advanceChunks(p, minChunkScore); for (Parse parse : parses) { Parse[] chunks = parse.getChildren(); - for (int ci = 0; ci < chunks.length; ci++) { - setComplete(chunks[ci]); + for (Parse chunk : chunks) { + setComplete(chunk); } } return parses; @@ -344,40 +344,38 @@ else if (1 - cprobs[completeIndex] > probMass) { //just incomplete advances + " " + fn + " <- " + advanceNode.getType() + " " + advanceNode + " d=" + aprobs[daughterAttachIndex] + " s=" + aprobs[sisterAttachIndex] + " "); } - for (int ai = 0; ai < attachments.length; ai++) { - double prob = aprobs[attachments[ai]]; + for (int attachment : attachments) { + double prob = aprobs[attachment]; //should we try an attach if p > threshold and // if !checkComplete then prevent daughter attaching to chunk // if checkComplete then prevent daughter attacing to complete node or // sister attaching to an incomplete node if (prob > q && ( - (!checkComplete && (attachments[ai] != daughterAttachIndex || !isComplete(fn))) - || - (checkComplete && ((attachments[ai] == daughterAttachIndex && !isComplete(fn)) - || (attachments[ai] == sisterAttachIndex && isComplete(fn)))))) { - Parse newParse2 = newParse1.cloneRoot(fn,originalZeroIndex); - Parse[] newKids = Parser.collapsePunctuation(newParse2.getChildren(),punctSet); + (!checkComplete && (attachment != daughterAttachIndex || !isComplete(fn))) + || + (checkComplete && ((attachment == daughterAttachIndex && !isComplete(fn)) + || (attachment == sisterAttachIndex && isComplete(fn)))))) { + Parse newParse2 = newParse1.cloneRoot(fn, originalZeroIndex); + Parse[] newKids = Parser.collapsePunctuation(newParse2.getChildren(), punctSet); //remove node from top level since were going to attach it (including punct) for (int ri = originalZeroIndex + 1; ri <= originalAdvanceIndex; ri++) { //System.out.println(at"-removing "+(originalZeroIndex+1)+" " // +newParse2.getChildren()[originalZeroIndex+1]); newParse2.remove(originalZeroIndex + 1); } - List crf = getRightFrontier(newParse2,punctSet); + List crf = getRightFrontier(newParse2, punctSet); Parse updatedNode; - if (attachments[ai] == daughterAttachIndex) { //attach daughter + if (attachment == daughterAttachIndex) { //attach daughter updatedNode = crf.get(fi); - updatedNode.add(advanceNode,headRules); - } - else { //attach sister + updatedNode.add(advanceNode, headRules); + } else { //attach sister Parse psite; if (fi + 1 < crf.size()) { psite = crf.get(fi + 1); - updatedNode = psite.adjoin(advanceNode,headRules); - } - else { + updatedNode = psite.adjoin(advanceNode, headRules); + } else { psite = newParse2; - updatedNode = psite.adjoinRoot(advanceNode,headRules,originalZeroIndex); + updatedNode = psite.adjoinRoot(advanceNode, headRules, originalZeroIndex); newKids[0] = updatedNode; } } @@ -391,35 +389,32 @@ else if (1 - cprobs[completeIndex] > probMass) { //just incomplete advances newParsesList.add(newParse2); if (checkComplete) { cprobs = checkModel.eval( - checkContextGenerator.getContext(updatedNode,newKids,advanceNodeIndex,true)); + checkContextGenerator.getContext(updatedNode, newKids, advanceNodeIndex, true)); if (cprobs[completeIndex] > probMass) { setComplete(updatedNode); newParse2.addProb(StrictMath.log(cprobs[completeIndex])); if (debugOn) System.out.println("Only advancing complete node"); - } - else if (1 - cprobs[completeIndex] > probMass) { + } else if (1 - cprobs[completeIndex] > probMass) { setIncomplete(updatedNode); newParse2.addProb(StrictMath.log(1 - cprobs[completeIndex])); if (debugOn) System.out.println("Only advancing incomplete node"); - } - else { + } else { setComplete(updatedNode); - Parse newParse3 = newParse2.cloneRoot(updatedNode,originalZeroIndex); + Parse newParse3 = newParse2.cloneRoot(updatedNode, originalZeroIndex); newParse3.addProb(StrictMath.log(cprobs[completeIndex])); newParsesList.add(newParse3); setIncomplete(updatedNode); newParse2.addProb(StrictMath.log(1 - cprobs[completeIndex])); if (debugOn) System.out.println("Advancing both complete and incomplete nodes; c=" - + cprobs[completeIndex]); + + cprobs[completeIndex]); } } - } - else { + } else { if (debugOn) System.out.println("Skipping " + fn.getType() + "." + fn.getLabel() + " " - + fn + " daughter=" + (attachments[ai] == daughterAttachIndex) - + " complete=" + isComplete(fn) + " prob=" + prob); + + fn + " daughter=" + (attachment == daughterAttachIndex) + + " complete=" + isComplete(fn) + " prob=" + prob); } } if (checkComplete && !isComplete(fn)) { diff --git a/opennlp-tools/src/main/java/opennlp/tools/postag/DefaultPOSContextGenerator.java b/opennlp-tools/src/main/java/opennlp/tools/postag/DefaultPOSContextGenerator.java index 6def79810..d98819782 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/postag/DefaultPOSContextGenerator.java +++ b/opennlp-tools/src/main/java/opennlp/tools/postag/DefaultPOSContextGenerator.java @@ -151,13 +151,13 @@ public String[] getContext(int index, Object[] tokens, String[] tags) { if (dict == null || !dict.contains(new StringList(lex))) { // do some basic suffix analysis String[] suffs = getSuffixes(lex); - for (int i = 0; i < suffs.length; i++) { - e.add("suf=" + suffs[i]); + for (String suff : suffs) { + e.add("suf=" + suff); } String[] prefs = getPrefixes(lex); - for (int i = 0; i < prefs.length; i++) { - e.add("pre=" + prefs[i]); + for (String pref : prefs) { + e.add("pre=" + pref); } // see if the word has any special characters if (lex.indexOf('-') != -1) { diff --git a/opennlp-tools/src/main/java/opennlp/tools/util/featuregen/BrownTokenClassFeatureGenerator.java b/opennlp-tools/src/main/java/opennlp/tools/util/featuregen/BrownTokenClassFeatureGenerator.java index b1aaf2eed..f4c36d28e 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/util/featuregen/BrownTokenClassFeatureGenerator.java +++ b/opennlp-tools/src/main/java/opennlp/tools/util/featuregen/BrownTokenClassFeatureGenerator.java @@ -36,8 +36,8 @@ public void createFeatures(List features, String[] tokens, int index, String wordShape = FeatureGeneratorUtil.tokenFeature(tokens[index]); List wordClasses = BrownTokenClasses.getWordClasses(tokens[index], brownLexicon); - for (int i = 0; i < wordClasses.size(); i++) { - features.add("c," + "browncluster" + "=" + wordShape + "," + wordClasses.get(i)); + for (String wordClass : wordClasses) { + features.add("c," + "browncluster" + "=" + wordShape + "," + wordClass); } } diff --git a/opennlp-tools/src/main/java/opennlp/tools/util/featuregen/BrownTokenFeatureGenerator.java b/opennlp-tools/src/main/java/opennlp/tools/util/featuregen/BrownTokenFeatureGenerator.java index d29e77aa2..ab3514124 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/util/featuregen/BrownTokenFeatureGenerator.java +++ b/opennlp-tools/src/main/java/opennlp/tools/util/featuregen/BrownTokenFeatureGenerator.java @@ -35,8 +35,8 @@ public void createFeatures(List features, String[] tokens, int index, List wordClasses = BrownTokenClasses.getWordClasses(tokens[index], brownLexicon); - for (int i = 0; i < wordClasses.size(); i++) { - features.add("browncluster" + "=" + wordClasses.get(i)); + for (String wordClass : wordClasses) { + features.add("browncluster" + "=" + wordClass); } }