OpenNLP - 即使使用缩写词典,缩写仍然需要培训吗?

时间:2016-05-09 04:36:39

标签: nlp opennlp

我只是将OpenNLP用于一个小程序,我应该把一个段落分成句子。

虽然我在阅读完一些文档并完成测试用例后能够完成任务,但我无法提醒我仍需要训练所有缩写(例如Yahoo!),即使我创建了一个自定义缩写词典,将其传递给SentenceDetectorFactory并用它来训练SentenceDetectorME

我使用的是test case中使用的类似方法。

我无法在他们的文档中找到这种行为,也无法找到任何解释。有什么我想念的吗?

编辑:我的问题说明

虽然我仍在努力使训练集适合我正在使用的域,但我的测试数据来自网络中的非结构化数据。有时它包含我的团队成员都没有预料到的缩写。例如。

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

在这种情况下,我们从未假设单词acquired出现acq.,而acq.明显用作缩写。

现在我们可以添加NLTK作为缩写,让模型继续工作,如广告所示,或为其训练模型。但是,即使在缩写词典中添加它之后,它也没有被视为缩写,我们最终训练了这个缩写的模型。这似乎偏离了缩写词典的概念。

我在PunktSentenceTokenizer OpenNLP like this one尝试了一个小例子,效果很好。

我不确定我是否有一个甚至25,000个句子的训练集,如果Keys.OemQuote.ToString忽略缩写词典,它会有所不同。

1 个答案:

答案 0 :(得分:2)

您的训练数据有多大?

如文档中所述:

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

可能是问题,应该提供一些大的训练数据来制作模型!