回答
也许这篇文章会帮助你。它描述了如何做TokenNameFinder从维基百科中提取数据训练......
该链接不再工作。 – Ruthwik
@Ruthwik感谢您的评论。链接已更新。 –
https://opennlp.apache.org/docs/1.5.3/manual/opennlp.html
这个网站是非常有用的,同时显示代码,并使用OpenNLP应用于训练所有不同类型的模型,如实体提取和词类等。
我可以给你索姆e代码示例在这里,但该页面使用非常清晰。
理论明智:
基本上你创建列出你想训练
例如东西的文件。
体育[空格]这是一个关于足球,橄榄球和东西
政治[空格]这是一个关于布莱尔当首相,一页一页。
该格式在上面的页面中进行了描述(每个模型需要不同的格式)。一旦你创建了这个文件,你就可以通过API或opennlp应用程序(通过命令行)运行它,并生成一个.bin文件。一旦你有这个.bin文件,你可以将它加载到模型中,并开始使用它(按照上面的网站中的api)。
或者可以说RTFM为自己节省一些打字。 – demongolem
让我告诉你最新的文档http://opennlp.apache.org/docs/1.8.1/manual/opennlp.html –
首先您需要使用所需的实体来训练数据。
句子应该用换行符分隔(\ n)。值应该与空格字符分隔。
比方说,你要创建医药实体模型,这样的数据应该是这样的:
<START:medicine> Augmentin-Duo <END> is a penicillin antibiotic that contains two medicines - <START:medicine> amoxicillin trihydrate <END> and
<START:medicine> potassium clavulanate <END>. They work together to kill certain types of bacteria and are used to treat certain types of bacterial infections.
你可以参考的样本dataset例如。训练数据应至少有15000个句子才能获得更好的结果。
此外,您可以使用Opennlp TokenNameFinderTrainer。 输出文件将采用.bin格式。
这里是例子:Writing a custom NameFinder model in OpenNLP
欲了解更多详情,请参照Opennlp documentation
将数据复制数据并运行下面的代码,以获得自己的mymodel.bin。
public class Training {
static String onlpModelPath = "mymodel.bin";
// training data set
static String trainingDataFilePath = "data.txt";
public static void main(String[] args) throws IOException {
Charset charset = Charset.forName("UTF-8");
ObjectStream<String> lineStream = new PlainTextByLineStream(
new FileInputStream(trainingDataFilePath), charset);
ObjectStream<NameSample> sampleStream = new NameSampleDataStream(
lineStream);
TokenNameFinderModel model = null;
HashMap<String, Object> mp = new HashMap<String, Object>();
try {
// model = NameFinderME.train("en","drugs", sampleStream, Collections.<String,Object>emptyMap(),100,4) ;
model= NameFinderME.train("en", "drugs", sampleStream, Collections. emptyMap());
} finally {
sampleStream.close();
}
BufferedOutputStream modelOut = null;
try {
modelOut = new BufferedOutputStream(new FileOutputStream(onlpModelPath));
model.serialize(modelOut);
} finally {
if (modelOut != null)
modelOut.close();
}
}
}
欢迎来到Stack Overflow!虽然这段代码可能有助于解决这个问题,但它并没有解释_why_和/或_how_它是如何回答这个问题的。提供这种附加背景将显着提高其长期教育价值。请[编辑]您的答案以添加解释,包括适用的限制和假设。 –
- 1. 训练分类模型Opennlp
- 2. 如何在OpenNLP中训练名称模型?
- 3. 使用OpenNLP训练大型数据集
- 4. 为什么自我训练的NER模型与OpenNLP版本不兼容?
- 5. NLP模型训练
- 6. 扩展OpenNLP组织模型的培训
- 7. 如何使用我自己的训练模型和在tensorflow中实现的facenet?
- 8. opennlp疾病样本训练数据
- 9. 无法训练location.bin使用opennlp用java
- 10. 如何训练自定义模型opeennlp?
- 11. SegNet - 训练我自己的数据集
- 12. 训练我们自己的分类器
- 13. 用tensorflow训练您自己的图像?
- 14. 在Word2Vec中合并预训练模型?
- 15. Tensorflow:在C++中训练模型
- 16. 重新训练tensorflow模型
- 17. 如何训练ML模型?
- 18. 错误训练im2txt模型
- 19. LightGBM:继续训练模型
- 20. Keras训练稀疏模型
- 21. 自定义模型的创建和培训openNLP
- 22. 加载训练有素的Keras模型并继续训练
- 23. AzureML中每个人的训练模型
- 24. 还原训练的模型在Tensorflow 1.2
- 25. 训练自己的模型和添加新的实体与空间
- 26. 如何针对自定义NameFinder模型进行OpenNLP培训?
- 27. 如何使用我自己的POS数据来训练syntaxnet模型?
- 28. OpenCV - 在OpenCV中训练LatentSVMDetector模型(算法来自Pedro Felzenszwalb)
- 29. 如何在caffe中训练/测试我自己的数据集?
- 30. 在训练模型Tensorflow MNIST分类
对于哪种工具是你创建一个模型? – wcolen