【发布时间】:2016-05-25 17:54:30
【问题描述】:
我刚刚在一个小程序中使用了OpenNLP,我应该在其中将段落分割成句子。
虽然我在阅读了一些文档并完成了他们的测试用例后能够完成任务,但我不禁注意到我仍然需要针对所有缩写进行训练(例如 Yahoo!),即使我创建了一个自定义缩写字典,将其传递给SentenceDetectorFactory 并用它来训练SentenceDetectorME。
我正在使用与 test case 中使用的类似方法。
我在他们的文档中找不到这种行为,也找不到任何解释。有什么我遗漏的吗?
编辑:我的问题的解释
虽然我仍在努力制作适合我工作领域的训练集,但我的测试数据来自网络的非结构化数据。有时它包含一个我的团队成员都没有预料到的缩写。例如。
Company (acq. by another company) is a good company.
在这种情况下,我们从未假设 acquired 一词会像 acq. 那样出现,而 acq. 显然被用作缩写。
现在我们可以添加 acq. 作为缩写并让模型继续工作,如广告所示,或者为它训练模型。但是,即使将它添加到缩写字典中,它也不会被视为缩写,我们最终为这个缩写训练模型。这似乎偏离了缩写字典的概念。
我在NLTK 和PunktSentenceTokenizer like this one 中尝试了一个小例子,效果很好。
我不确定我是否有一个包含 25,000 个句子的训练集,如果 OpenNLP 忽略缩写字典,那会有所不同。
【问题讨论】: