Skip to content

Commit

Permalink
OPENNLP-1125: Change misclassified report layout for LanguageDetector
Browse files Browse the repository at this point in the history
  • Loading branch information
wcolen committed Aug 31, 2017
1 parent c2c14e9 commit f82b5b5
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,18 @@ public LanguageDetectorEvaluationErrorListener() {
*/
public LanguageDetectorEvaluationErrorListener(OutputStream outputStream) {
super(outputStream);
printStream.println("Expected\tPredicted\tContext");
}

@Override
public void missclassified(LanguageSample reference, LanguageSample prediction) {
printError(reference, prediction);
}

@Override
protected void printError(LanguageSample referenceSample, LanguageSample predictedSample) {
printStream.println(String.join("\t", referenceSample.getLanguage().getLang(),
predictedSample.getLanguage().getLang(),
referenceSample.getContext()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,15 @@

package opennlp.tools.langdetect;

import java.io.ByteArrayOutputStream;
import java.nio.charset.StandardCharsets;
import java.util.concurrent.atomic.AtomicInteger;

import org.junit.Assert;
import org.junit.Test;

import opennlp.tools.cmdline.langdetect.LanguageDetectorEvaluationErrorListener;


public class LanguageDetectorEvaluatorTest {

Expand All @@ -33,6 +37,8 @@ public void processSample() throws Exception {
final AtomicInteger correctCount = new AtomicInteger();
final AtomicInteger incorrectCount = new AtomicInteger();

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

LanguageDetectorEvaluator evaluator = new LanguageDetectorEvaluator(langdetector,
new LanguageDetectorEvaluationMonitor() {
@Override
Expand All @@ -46,7 +52,7 @@ public void missclassified(LanguageSample reference,
LanguageSample prediction) {
incorrectCount.incrementAndGet();
}
});
}, new LanguageDetectorEvaluationErrorListener(outputStream));

evaluator.evaluateSample(new LanguageSample(new Language("pob"),
"escreve e faz palestras pelo mundo inteiro sobre anjos"));
Expand All @@ -63,6 +69,12 @@ public void missclassified(LanguageSample reference,

Assert.assertEquals(3, evaluator.getDocumentCount());
Assert.assertEquals(0.33, evaluator.getAccuracy(), 0.01);

String report = outputStream.toString(StandardCharsets.UTF_8.name());

Assert.assertEquals("Expected\tPredicted\tContext\n" +
"fra\tpob\tescreve e faz palestras pelo mundo inteiro sobre anjos\n" +
"fra\tpob\tescreve e faz palestras pelo mundo inteiro sobre anjos\n", report);
}

}

0 comments on commit f82b5b5

Please sign in to comment.