I had to do it this way otherwise it raises an exception saying that the stream can not be marked. I think it is required by cross-validation.
It is working here. Do you think it is something related to the OS? I only tried it in Linux. On Wed, Mar 14, 2012 at 1:42 AM, James Kosin <[email protected]> wrote: > Hi, > > Sadly, yes.... > > All the other modules get the resource like this: > > InputStream in = POSTaggerFactoryTest.class.getClassLoader() > > > > .getResourceAsStream("opennlp/tools/postag/AnnotatedSentences.txt"); > I'm not sure that getResource() is going to work. > > I end up with errors like this: > > Tests in error: > > > > > testWithNameEvaluationErrorListener(opennlp.tools.namefind.TokenNameFinderCrossValidatorTest): > > > C:\Users\James%20Kosin\Documents\NetBeansProjects\thesis\apache\opennlp\opennlp-tools\target\test-classes\opennlp\tools\namefind\AnnotatedSentences.txt > > (The system cannot find the path specified) > > > > > testWithNullResources(opennlp.tools.namefind.TokenNameFinderCrossValidatorTest): > > > C:\Users\James%20Kosin\Documents\NetBeansProjects\thesis\apache\opennlp\opennlp-tools\target\test-classes\opennlp\tools\namefind\AnnotatedSentences.txt > > (The system cannot find the path specified) > I'll give it another try on the command line with mvn to build. > > BRB, > James > > On 3/14/2012 12:11 AM, [email protected] wrote: > > Hi James, > > > > The file "AnnotatedSentences.txt" was already in SVN. It is used by > another > > unit test. > > > > Is the test failing? > > > > Thank you, > > William > > > > On Wed, Mar 14, 2012 at 1:03 AM, James Kosin <[email protected]> > wrote: > > > >> > >> -------- Original Message -------- > >> Subject: Re: svn commit: r1300236 - > >> > >> > /opennlp/trunk/opennlp-tools/src/test/java/opennlp/tools/namefind/TokenNameFinderCrossValidatorTest.java > >> > >> Date: Wed, 14 Mar 2012 00:02:18 -0400 > >> From: James Kosin <[email protected]> > >> To: [email protected] > >> > >> > >> > >> William, > >> > >> On this, don't forget to add the "AnnotatedSentences.txt" file. > >> > >> James > >> > >> On 3/13/2012 12:48 PM, [email protected] wrote: > >>> Author: colen > >>> Date: Tue Mar 13 16:48:55 2012 > >>> New Revision: 1300236 > >>> > >>> URL: http://svn.apache.org/viewvc?rev=1300236&view=rev > >>> Log: > >>> OPENNLP-466: Added JUnit that tries to reproduce the issue, but could > >> not reproduce the error. > >>> Modified: > >>> > >> > opennlp/trunk/opennlp-tools/src/test/java/opennlp/tools/namefind/TokenNameFinderCrossValidatorTest.java > >>> Modified: > >> > opennlp/trunk/opennlp-tools/src/test/java/opennlp/tools/namefind/TokenNameFinderCrossValidatorTest.java > >>> URL: > >> > http://svn.apache.org/viewvc/opennlp/trunk/opennlp-tools/src/test/java/opennlp/tools/namefind/TokenNameFinderCrossValidatorTest.java?rev=1300236&r1=1300235&r2=1300236&view=diff > >> > ============================================================================== > >>> --- > >> > opennlp/trunk/opennlp-tools/src/test/java/opennlp/tools/namefind/TokenNameFinderCrossValidatorTest.java > >> (original) > >>> +++ > >> > opennlp/trunk/opennlp-tools/src/test/java/opennlp/tools/namefind/TokenNameFinderCrossValidatorTest.java > >> Tue Mar 13 16:48:55 2012 > >>> @@ -17,10 +17,14 @@ > >>> > >>> package opennlp.tools.namefind; > >>> > >>> -import static org.junit.Assert.assertNotNull; > >>> +import static org.junit.Assert.*; > >>> > >>> +import java.io.ByteArrayOutputStream; > >>> import java.io.FileInputStream; > >>> +import java.util.Collections; > >>> +import java.util.Map; > >>> > >>> +import opennlp.tools.cmdline.namefind.NameEvaluationErrorListener; > >>> import opennlp.tools.util.ObjectStream; > >>> import opennlp.tools.util.PlainTextByLineStream; > >>> import opennlp.tools.util.TrainingParameters; > >>> @@ -34,6 +38,9 @@ public class TokenNameFinderCrossValidat > >>> private final String TYPE = "default"; > >>> > >>> @Test > >>> + /** > >>> + * Test that reproduces jira OPENNLP-463 > >>> + */ > >>> public void testWithNullResources() throws Exception { > >>> > >>> FileInputStream sampleDataIn = new FileInputStream(getClass() > >>> @@ -49,8 +56,37 @@ public class TokenNameFinderCrossValidat > >>> TokenNameFinderCrossValidator cv = new > >> TokenNameFinderCrossValidator("en", > >>> TYPE, mlParams, null, null); > >>> > >>> - cv.evaluate(sampleStream, 1); > >>> + cv.evaluate(sampleStream, 2); > >>> > >>> assertNotNull(cv.getFMeasure()); > >>> } > >>> + > >>> + @Test > >>> + /** > >>> + * Test that tries to reproduce jira OPENNLP-466 > >>> + */ > >>> + public void testWithNameEvaluationErrorListener() throws Exception { > >>> + > >>> + FileInputStream sampleDataIn = new FileInputStream(getClass() > >>> + .getClassLoader() > >>> + > >> > .getResource("opennlp/tools/namefind/AnnotatedSentences.txt").getFile()); > >>> + ObjectStream<NameSample> sampleStream = new NameSampleDataStream( > >>> + new PlainTextByLineStream(sampleDataIn.getChannel(), > >> "ISO-8859-1")); > >>> + > >>> + TrainingParameters mlParams = > >> ModelUtil.createTrainingParameters(70, 1); > >>> + mlParams.put(TrainingParameters.ALGORITHM_PARAM, > >>> + ModelType.MAXENT.toString()); > >>> + > >>> + ByteArrayOutputStream out = new ByteArrayOutputStream(); > >>> + NameEvaluationErrorListener listener = new > >> NameEvaluationErrorListener(out); > >>> + > >>> + Map<String, Object> resources = Collections.emptyMap(); > >>> + TokenNameFinderCrossValidator cv = new > >> TokenNameFinderCrossValidator("en", > >>> + TYPE, mlParams, null, resources, listener); > >>> + > >>> + cv.evaluate(sampleStream, 2); > >>> + > >>> + assertTrue(out.size() > 0); > >>> + assertNotNull(cv.getFMeasure()); > >>> + } > >>> } > >>> > >>> > >> > >
