@Test public void nonEmptyConfidence() throws Exception { String languageCode = "aLanguage"; double confidence = 0.05; Language lang = new Language(languageCode, confidence); Assert.assertEquals(languageCode, lang.getLang()); Assert.assertEquals(confidence, lang.getConfidence(), 0); }
@Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj instanceof LanguageSample) { LanguageSample a = (LanguageSample) obj; return getLanguage().equals(a.getLanguage()) && getContext().equals(a.getContext()); } return false; } }
@Test public void testHash() { int hashA = new Language("aLang").hashCode(); int hashAA = new Language("aLang").hashCode(); int hashB = new Language("BLang").hashCode(); int hashA5 = new Language("aLang", 5.0).hashCode(); int hashA6 = new Language("BLang", 6.0).hashCode(); Assert.assertEquals(hashA, hashAA); Assert.assertNotEquals(hashA, hashB); Assert.assertNotEquals(hashA, hashA5); Assert.assertNotEquals(hashB, hashA5); Assert.assertNotEquals(hashA5, hashA6); }
@Override public int hashCode() { return Objects.hash(getLang(), getConfidence()); }
@Override public Language[] predictLanguages(CharSequence content) { double[] eval = model.getMaxentModel().eval(mContextGenerator.getContext(content.toString())); Language[] arr = new Language[eval.length]; for (int i = 0; i < eval.length; i++) { arr[i] = new Language(model.getMaxentModel().getOutcome(i), eval[i]); } Arrays.sort(arr, (o1, o2) -> Double.compare(o2.getConfidence(), o1.getConfidence())); return arr; }
@Override public String toString() { return language.getLang() + '\t' + context; }
public LanguageSample read() throws IOException { String sampleString; while ((sampleString = samples.read()) != null) { int tabIndex = sampleString.indexOf("\t"); if (tabIndex > 0) { String lang = sampleString.substring(0, tabIndex); String context = sampleString.substring(tabIndex + 1); return new LanguageSample(new Language(lang), context); } } return null; } }
@Override public String toString() { return getLang() + " (" + this.confidence + ")"; }
@Override public LanguageSample read() throws IOException { StringBuilder sampleString = new StringBuilder(); int count = 0; while (count < sentencesPerSample && lineIterator.hasNext()) { String line = lineIterator.next(); int textStart = line.indexOf('\t') + 1; sampleString.append(line.substring(textStart) + " "); count++; } if (sampleString.length() > 0) { return new LanguageSample(new Language(lang), sampleString); } return null; } }
@Override public int hashCode() { return Objects.hash(getLang(), getConfidence()); }
@Override public Language[] predictLanguages(CharSequence content) { double[] eval = model.getMaxentModel().eval(mContextGenerator.getContext(content.toString())); Language[] arr = new Language[eval.length]; for (int i = 0; i < eval.length; i++) { arr[i] = new Language(model.getMaxentModel().getOutcome(i), eval[i]); } Arrays.sort(arr, (o1, o2) -> Double.compare(o2.getConfidence(), o1.getConfidence())); return arr; }
@Test public void emptyConfidence() throws Exception { String languageCode = "aLanguage"; Language lang = new Language(languageCode); Assert.assertEquals(languageCode, lang.getLang()); Assert.assertEquals(0, lang.getConfidence(), 0); }
@Test(expected = NullPointerException.class) public void emptyLanguage() throws Exception { new Language(null); }
@Override public int hashCode() { return Objects.hash(getLang(), getConfidence()); }
@Override public Language[] predictLanguages(CharSequence content) { double[] eval = model.getMaxentModel().eval(mContextGenerator.getContext(content.toString())); Language[] arr = new Language[eval.length]; for (int i = 0; i < eval.length; i++) { arr[i] = new Language(model.getMaxentModel().getOutcome(i), eval[i]); } Arrays.sort(arr, (o1, o2) -> Double.compare(o2.getConfidence(), o1.getConfidence())); return arr; }
@Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj instanceof LanguageSample) { LanguageSample a = (LanguageSample) obj; return getLanguage().equals(a.getLanguage()) && getContext().equals(a.getContext()); } return false; } }