private void trainCounters() { for (SentencePair sentencePair : trainingSentencePairs) { List<String> frenchWords = sentencePair.getFrenchWords(); List<String> englishWords = sentencePair.getEnglishWords(); Set<String> frenchSet = new HashSet<String>(frenchWords); Set<String> englishSet = new HashSet<String>(englishWords); fCountSentences.incrementAll(frenchSet, 1.0); eCountSentences.incrementAll(englishSet, 1.0); for (String f: frenchSet) { for (String e: englishSet) collocationCountSentences.incrementCount(f, e, 1.0); } } System.out.println("Trained!"); }
/** * Subtraction of two counters. * * @param x * @param y * @return subtraction */ public static <E> Counter<E> subtract(Counter<E> x, Counter<E> y) { Counter<E> copy = new Counter<E>(); copy.incrementAll(x); for (Map.Entry<E, Double> e : y.entrySet()) { copy.decrementCount(e.getKey(), e.getValue()); } return copy; }
private void trainCounters() { for (SentencePair sentencePair : trainingSentencePairs) { List<String> frenchWords = sentencePair.getFrenchWords(); List<String> englishWords = sentencePair.getEnglishWords(); //fCounts.incrementAll(frenchWords, 1.0); // won't affect the argMax eCounts.incrementAll(englishWords, 1.0); for (String f: frenchWords) { for (String e: englishWords) collocationCounts.incrementCount(f, e, 1.0); } } System.out.println("Trained!"); }