public void calculateWordPairs() { numCodes = wordCodeMap.keySet().size() + 1; pairs = new int[numCodes][numCodes]; Iterator hypIterator = hypotheses.iterator(); while (hypIterator.hasNext()) { Hypothesis hyp = (Hypothesis) hypIterator.next(); int[] codes = hyp.getCodeList(wordCodeMap); for (int i = 0; i < (codes.length - 1); i++) { int firstWordCode = codes[i]; int secondWordCode = codes[i + 1]; pairs[firstWordCode][secondWordCode]++; } } calculateWordDoublesUI.setPairs(pairs); }
public void calculateWordTriples() { numCodes = wordCodeMap.keySet().size() + 1; triples = new SparseDoubleMatrix3D(numCodes, numCodes, numCodes); Iterator hypIterator = hypotheses.iterator(); while (hypIterator.hasNext()) { Hypothesis hyp = (Hypothesis) hypIterator.next(); int[] codes = hyp.getCodeList(wordCodeMap); for (int i = 0; i < (codes.length - 2); i++) { int firstWordCode = codes[i]; int secondWordCode = codes[i + 1]; int thirdWordCode = codes[i + 2]; double oldVal = triples.getQuick(firstWordCode, secondWordCode, thirdWordCode); triples.setQuick(firstWordCode, secondWordCode, thirdWordCode, (oldVal + 1)); } } calculateWordTriplesUI.setTriples(triples, numCodes); }