Shouldn't we change UIMA sentence detector trainer to pass an abbreviation dictionary? It would solve the issue for UIMA.
It won't help other people that is using the API and passing null. I will think how to solve it. On Thu, Jul 21, 2011 at 6:01 AM, Jörn Kottmann <[email protected]> wrote: > Hi, > > the recent changes to SenenceDetectorME.train methods break backward > compatibility. > > In the opennlp-uima package we have some code which calls the train method: > SentenceModel sentenceModel = SentenceDetectorME.train(**language, > ObjectStreamUtils.**createObjectStream(**sentenceSamples), true, > null); > > Since it is passing in null for the dictionary the compiler now doesn't > know > which of the two train methods should be called, and therefore produces > this error: > /home/hudson/hudson-slave/**workspace/OpenNLP/trunk/** > opennlp-uima/src/main/java/**opennlp/uima/sentdetect/** > SentenceDetectorTrainer.java:[**137,52] reference to train is ambiguous, > both method train(java.lang.String,**opennlp.tools.util.** > ObjectStream<opennlp.tools.**sentdetect.SentenceSample>,** > boolean,opennlp.tools.**dictionary.Dictionary) in > opennlp.tools.sentdetect.**SentenceDetectorME and method > train(java.lang.String,**opennlp.tools.util.**ObjectStream<opennlp.tools.* > *sentdetect.SentenceSample>,**boolean,opennlp.tools.**dictionary.**AbbreviationDictionary) > in opennlp.tools.sentdetect.**SentenceDetectorME match > > Since passing null is allowed, we cannot add such a method here. > > I also noticed that you added the following method: > train(String languageCode, > ObjectStream<SentenceSample> samples, boolean useTokenEnd, > AbbreviationDictionary abbreviations, int cutoff, int iterations) > > This should be removed again, because passing of cutoff and iterations is > replaced > by this new TrainingParameters object. We still have to go through the code > and deprecate > all these methods. > > Jörn > > >
