2016-05-09 25 views
1

我刚刚使用OpenNLP作为一个小程序,我应该把段落分成几个句子。OpenNLP - 即使用缩写字典,训练仍然需要缩写吗?

尽管在阅读完一些文档并完成测试用例之后我能完成任务,但我仍然不得不注意到,即使创建了所有缩写(例如Yahoo!)一个自定义的缩写字典,将它传递给SentenceDetectorFactory并用它来训练SentenceDetectorME

我正在使用与此test case中使用的类似方法。

我在他们的文档中找不到这种行为,也找不到任何解释。有什么我失踪?

编辑:我的问题

虽然我仍然在做一个培训,我的工作在域设置为合适的工作,我的测试数据从非结构化数据来从网页的说明。有时它包含一个我的团队成员都没有预料到的缩写。例如。

Company (acq. by another company) is a good company. 

在这种情况下,我们从来没有认为这个词acquired发生像acq.这显然是作为一个缩写。

现在我们可以添加acq.作为缩写,并让模型继续工作,如广告所示,或者训练模型。但是,即使在缩写字典中添加之后,它也不会被当作缩写来处理,而我们最终为这个缩写形成了训练模型。这看起来像是一个偏离字典缩写的概念。

我在NLTKPunktSentenceTokenizerlike this one尝试了一个小例子,它完美的工作。

我不确定我是否有一套甚至有25,000个句子的训练集,如果OpenNLP忽略缩写词典,它将有所作为。

回答

2

您的培训数据有多大?

,如文档中说:

The training data should contain at least 15000 sentences to create a model which performs well. 

,可能是这个问题,应该给一些大的训练数据进行模型!

+0

是的,Opennlp是不可预知的!我现在不知道该怎么做! -.- 你是否通过[this](http://atigeo.com/blog/2016/article-title-2)? –

+0

是的,我已经有了。我会在创建至少15,000个培训样本时回复。 –