回答
也許這篇文章會幫助你。它描述瞭如何做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