我只是将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
忽略缩写词典,它会有所不同。
答案 0 :(得分:2)
您的训练数据有多大?
如文档中所述:
The training data should contain at least 15000 sentences to create a model which performs well.
可能是问题,应该提供一些大的训练数据来制作模型!