You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by rw...@apache.org on 2013/03/18 12:55:21 UTC
svn commit: r1457721 - in /stanbol/trunk/commons/opennlp: pom.xml
src/test/java/org/apache/commons/opennlp/OpenNLPTest.java
src/test/java/org/apache/commons/opennlp/TextAnalyzerTest.java
Author: rwesten
Date: Mon Mar 18 11:55:20 2013
New Revision: 1457721
URL: http://svn.apache.org/r1457721
Log:
STANBOL-984: added unit test for OpenNLP service
Added:
stanbol/trunk/commons/opennlp/src/test/java/org/apache/commons/opennlp/OpenNLPTest.java (with props)
Modified:
stanbol/trunk/commons/opennlp/pom.xml
stanbol/trunk/commons/opennlp/src/test/java/org/apache/commons/opennlp/TextAnalyzerTest.java
Modified: stanbol/trunk/commons/opennlp/pom.xml
URL: http://svn.apache.org/viewvc/stanbol/trunk/commons/opennlp/pom.xml?rev=1457721&r1=1457720&r2=1457721&view=diff
==============================================================================
--- stanbol/trunk/commons/opennlp/pom.xml (original)
+++ stanbol/trunk/commons/opennlp/pom.xml Mon Mar 18 11:55:20 2013
@@ -127,6 +127,13 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.apache.stanbol</groupId>
+ <artifactId>org.apache.stanbol.data.opennlp.ner.en</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
Added: stanbol/trunk/commons/opennlp/src/test/java/org/apache/commons/opennlp/OpenNLPTest.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/commons/opennlp/src/test/java/org/apache/commons/opennlp/OpenNLPTest.java?rev=1457721&view=auto
==============================================================================
--- stanbol/trunk/commons/opennlp/src/test/java/org/apache/commons/opennlp/OpenNLPTest.java (added)
+++ stanbol/trunk/commons/opennlp/src/test/java/org/apache/commons/opennlp/OpenNLPTest.java Mon Mar 18 11:55:20 2013
@@ -0,0 +1,149 @@
+package org.apache.commons.opennlp;
+
+import java.io.IOException;
+import java.util.Arrays;
+
+
+import opennlp.tools.chunker.Chunker;
+import opennlp.tools.chunker.ChunkerModel;
+import opennlp.tools.namefind.TokenNameFinder;
+import opennlp.tools.namefind.TokenNameFinderModel;
+import opennlp.tools.postag.POSModel;
+import opennlp.tools.postag.POSTagger;
+import opennlp.tools.sentdetect.SentenceDetector;
+import opennlp.tools.sentdetect.SentenceModel;
+import opennlp.tools.tokenize.SimpleTokenizer;
+import opennlp.tools.tokenize.Tokenizer;
+import opennlp.tools.tokenize.TokenizerModel;
+
+import org.apache.stanbol.commons.opennlp.OpenNLP;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * Test loading of OpenNLP models. This was previously implicitly tested by the
+ * in the meantime removed TextAnalyzer test.
+ * @author Rupert Westenthaler
+ *
+ */
+public class OpenNLPTest {
+
+
+ private static OpenNLP openNLP;
+ @BeforeClass
+ public static void init(){
+ openNLP = new OpenNLP(new ClasspathDataFileProvider("DUMMY"));
+ }
+
+ @Test
+ public void testLoadEnTokenizer() throws IOException{
+ TokenizerModel model = openNLP.getTokenizerModel("en");
+ Assert.assertNotNull(model);
+ Tokenizer tokenizer = openNLP.getTokenizer("en");
+ Assert.assertNotNull(tokenizer);
+ }
+
+ @Test
+ public void testLoadMissingTokenizerModel() throws IOException{
+ TokenizerModel model = openNLP.getTokenizerModel("ru");
+ //there is not Russian model ...
+ //so it is expected that the model is NULL
+ Assert.assertNull(model);
+ }
+ @Test
+ public void testFallbackToSimpleTokenizer() throws IOException{
+ //however for the tokenizer it is expected that a fallback to the
+ //SimpleTokenizer is made
+ Tokenizer tokenizer = openNLP.getTokenizer("ru");
+ Assert.assertNotNull(tokenizer);
+ Assert.assertEquals(SimpleTokenizer.INSTANCE, tokenizer);
+ }
+
+ @Test
+ public void testLoadEnSentence() throws IOException{
+ SentenceModel model = openNLP.getSentenceModel("en");
+ Assert.assertNotNull(model);
+ SentenceDetector sentDetector = openNLP.getSentenceDetector("en");
+ Assert.assertNotNull(sentDetector);
+ }
+ @Test
+ public void testLoadMissingSentence() throws IOException{
+ SentenceModel model = openNLP.getSentenceModel("ru");
+ Assert.assertNull(model);
+ SentenceDetector sentDetector = openNLP.getSentenceDetector("ru");
+ Assert.assertNull(sentDetector);
+ }
+ @Test
+ public void testLoadEnPOS() throws IOException{
+ POSModel model = openNLP.getPartOfSpeachModel("en");
+ Assert.assertNotNull(model);
+ POSTagger posTagger = openNLP.getPartOfSpeechTagger("en");
+ Assert.assertNotNull(posTagger);
+ }
+ @Test
+ public void testLoadMissingPOS() throws IOException{
+ POSModel model = openNLP.getPartOfSpeachModel("ru");
+ Assert.assertNull(model);
+ POSTagger posTagger = openNLP.getPartOfSpeechTagger("ru");
+ Assert.assertNull(posTagger);
+ }
+ @Test
+ public void testLoadEnChunker() throws IOException{
+ ChunkerModel model = openNLP.getChunkerModel("en");
+ Assert.assertNotNull(model);
+ Chunker chunker = openNLP.getChunker("en");
+ Assert.assertNotNull(chunker);
+ }
+ @Test
+ public void testLoadMissingChunker() throws IOException{
+ ChunkerModel model = openNLP.getChunkerModel("ru");
+ Assert.assertNull(model);
+ Chunker chunker = openNLP.getChunker("ru");
+ Assert.assertNull(chunker);
+ }
+ @Test
+ public void testLoadEnNER() throws IOException{
+ for(String type : Arrays.asList("person","organization","location")){
+ TokenNameFinderModel model = openNLP.getNameModel(type, "en");
+ Assert.assertNotNull(model);
+ TokenNameFinder ner = openNLP.getNameFinder(type, "en");
+ Assert.assertNotNull(ner);
+ }
+ }
+ @Test
+ public void testLoadMissingNER() throws IOException{
+ //first unknown type
+ TokenNameFinderModel model = openNLP.getNameModel("person2", "en");
+ Assert.assertNull(model);
+ TokenNameFinder ner = openNLP.getNameFinder("person2", "en");
+ Assert.assertNull(ner);
+ //unknown language
+ model = openNLP.getNameModel("person", "ru");
+ Assert.assertNull(model);
+ ner = openNLP.getNameFinder("person", "ru");
+ Assert.assertNull(ner);
+ }
+ @Test
+ public void testLoadModelByName() throws IOException{
+ TokenizerModel tokenModel = openNLP.getModel(TokenizerModel.class, "en-token.bin", null);
+ Assert.assertNotNull(tokenModel);
+ SentenceModel sentModel = openNLP.getModel(SentenceModel.class, "en-sent.bin", null);
+ Assert.assertNotNull(sentModel);
+ POSModel posModel = openNLP.getModel(POSModel.class, "en-pos-maxent.bin", null);
+ Assert.assertNotNull(posModel);
+ ChunkerModel chunkModel = openNLP.getModel(ChunkerModel.class, "en-chunker.bin", null);
+ Assert.assertNotNull(chunkModel);
+ TokenNameFinderModel nerModel = openNLP.getModel(TokenNameFinderModel.class, "en-ner-person.bin", null);
+ Assert.assertNotNull(nerModel);
+ //unavailable model
+ tokenModel = openNLP.getModel(TokenizerModel.class, "ru-token.bin", null);
+ Assert.assertNull(tokenModel);
+ }
+ @Test(expected=IllegalStateException.class)
+ public void testLoadIncompatibleModelByName() throws IOException{
+ SentenceModel sentModel = openNLP.getModel(SentenceModel.class, "en-token.bin", null);
+ Assert.assertNotNull(sentModel);
+ }
+
+}
Propchange: stanbol/trunk/commons/opennlp/src/test/java/org/apache/commons/opennlp/OpenNLPTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: stanbol/trunk/commons/opennlp/src/test/java/org/apache/commons/opennlp/TextAnalyzerTest.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/commons/opennlp/src/test/java/org/apache/commons/opennlp/TextAnalyzerTest.java?rev=1457721&r1=1457720&r2=1457721&view=diff
==============================================================================
--- stanbol/trunk/commons/opennlp/src/test/java/org/apache/commons/opennlp/TextAnalyzerTest.java (original)
+++ stanbol/trunk/commons/opennlp/src/test/java/org/apache/commons/opennlp/TextAnalyzerTest.java Mon Mar 18 11:55:20 2013
@@ -16,7 +16,7 @@
*/
package org.apache.commons.opennlp;
-import static junit.framework.Assert.*;
+import static org.junit.Assert.*;
import java.util.Iterator;
import java.util.List;
@@ -30,6 +30,7 @@ import org.apache.stanbol.commons.opennl
import org.junit.BeforeClass;
import org.junit.Test;
+@SuppressWarnings("deprecation") //test for a deprecated component
public class TextAnalyzerTest {
public static final String SINGLE_SENTENCE = "Dr Patrick Marshall (1869 - November 1950) was a"