/** * Evaluates the given reference {@link LanguageSample} object. * * This is done by categorizing the document from the provided * {@link LanguageSample}. The detected language is then used * to calculate and update the score. * * @param sample the reference {@link LanguageSample}. */ public LanguageSample processSample(LanguageSample sample) { CharSequence document = sample.getContext(); Language predicted = languageDetector.predictLanguage(document); if (sample.getLanguage().getLang().equals(predicted.getLang())) { accuracy.add(1); } else { accuracy.add(0); } return new LanguageSample(predicted, sample.getContext()); }
@Test public void testHash() { int hashA = new LanguageSample(new Language("aLang"), "aContext").hashCode(); int hashB = new LanguageSample(new Language("bLang"), "aContext").hashCode(); int hashC = new LanguageSample(new Language("aLang"), "bContext").hashCode(); Assert.assertNotEquals(hashA, hashB); Assert.assertNotEquals(hashA, hashC); Assert.assertNotEquals(hashB, hashC); }
@Override public int hashCode() { return Objects.hash(getContext(), getLanguage()); }
@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; } }
LanguageSample sample = new LanguageSample(lang, document); System.out.println(sample.toString());
@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; } }
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; } }
LanguageSample sample = new LanguageSample(lang, document); System.out.println(sample.toString());
@Override protected void printError(LanguageSample referenceSample, LanguageSample predictedSample) { printStream.println(String.join("\t", referenceSample.getLanguage().getLang(), predictedSample.getLanguage().getLang(), referenceSample.getContext())); } }
@Test public void testConstructor() { Language lang = new Language("aLang"); CharSequence context = "aContext"; LanguageSample sample = new LanguageSample(lang, context); Assert.assertEquals(lang, sample.getLanguage()); Assert.assertEquals(context, sample.getContext()); }
@Test(expected = NullPointerException.class) public void testNullLang() throws Exception { CharSequence context = "aContext"; new LanguageSample(null, context); }
LanguageSample sample = new LanguageSample(lang, document); System.out.println(sample.toString());
public Event next() { isVirgin = false; return new Event(sample.getLanguage().getLang(), mContextGenerator.getContext(sample.getContext().toString())); }
@Test public void testLanguageSampleSerDe() throws IOException { Language lang = new Language("aLang"); CharSequence context = "aContext"; LanguageSample languageSample = new LanguageSample(lang, context); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); ObjectOutput out = new ObjectOutputStream(byteArrayOutputStream); out.writeObject(languageSample); out.flush(); byte[] bytes = byteArrayOutputStream.toByteArray(); ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes); ObjectInput objectInput = new ObjectInputStream(byteArrayInputStream); LanguageSample deSerializedLanguageSample = null; try { deSerializedLanguageSample = (LanguageSample) objectInput.readObject(); } catch (ClassNotFoundException e) { // do nothing } Assert.assertNotNull(deSerializedLanguageSample); Assert.assertEquals(languageSample.getContext(), deSerializedLanguageSample.getContext()); Assert.assertEquals(languageSample.getLanguage(), deSerializedLanguageSample.getLanguage()); Assert.assertEquals(languageSample, deSerializedLanguageSample); }
@Test(expected = NullPointerException.class) public void testNullContext() { Language lang = new Language("aLang"); new LanguageSample(lang, null); }
private void statsAdd(LanguageSample reference, LanguageSample prediction) { getStats().add(reference.getContext(), reference.getLanguage().getLang(), prediction.getLanguage().getLang()); }
/** * Evaluates the given reference {@link LanguageSample} object. * * This is done by categorizing the document from the provided * {@link LanguageSample}. The detected language is then used * to calculate and update the score. * * @param sample the reference {@link LanguageSample}. */ public LanguageSample processSample(LanguageSample sample) { CharSequence document = sample.getContext(); Language predicted = languageDetector.predictLanguage(document); if (sample.getLanguage().getLang().equals(predicted.getLang())) { accuracy.add(1); } else { accuracy.add(0); } return new LanguageSample(predicted, sample.getContext()); }
@Test public void testToString() { Language lang = new Language("aLang"); CharSequence context = "aContext"; LanguageSample sample = new LanguageSample(lang, context); Assert.assertEquals(lang.getLang() + "\t" + context, sample.toString()); }
@Override public int hashCode() { return Objects.hash(getContext(), getLanguage()); }
/** * Evaluates the given reference {@link LanguageSample} object. * * This is done by categorizing the document from the provided * {@link LanguageSample}. The detected language is then used * to calculate and update the score. * * @param sample the reference {@link LanguageSample}. */ public LanguageSample processSample(LanguageSample sample) { CharSequence document = sample.getContext(); Language predicted = languageDetector.predictLanguage(document); if (sample.getLanguage().getLang().equals(predicted.getLang())) { accuracy.add(1); } else { accuracy.add(0); } return new LanguageSample(predicted, sample.getContext()); }