natural library language file model opennlp

file - library - cite opennlp



Entrenamiento propio modelo en opennlp. (4)

Copie los datos en datos y ejecute debajo del código para obtener su propio mymodel.bin.

Puede referirse a data = dataset

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(); } } }

Me resulta difícil crear mi propio modelo openNLP. ¿Alguien puede decirme, cómo poseer el modelo. Cómo se realiza el entrenamiento.

¿Cuál debería ser la entrada y dónde se almacenará el archivo del modelo de salida?


Primero necesita entrenar los datos con la Entidad requerida.

Las oraciones se deben separar con un nuevo carácter de línea (/ n). Los valores deben estar separados de y las etiquetas con un carácter de espacio.
Digamos que desea crear un modelo de entidad de medicina, por lo que los datos deberían ser algo como esto:

<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.

Puede referir un dataset de dataset de ejemplo, por ejemplo. Los datos de entrenamiento deben tener al menos 15000 oraciones para obtener mejores resultados.

Además, puede utilizar Opennlp TokenNameFinderTrainer. El archivo de salida estará en el formato .bin.

Aquí está el ejemplo: Escribir un modelo personalizado de NameFinder en OpenNLP

Para más detalles, consulte la documentación de Opennlp.



https://opennlp.apache.org/docs/1.5.3/manual/opennlp.html

Este sitio web es muy útil, se muestra tanto en código como en el uso de la aplicación OpenNLP para entrenar modelos para todos los tipos diferentes, como extracción de entidades y parte del discurso, etc.

Podría darte algunos ejemplos de código aquí, pero la página es muy clara de usar.

En teoría:

Esencialmente creas un archivo que enumera las cosas que quieres entrenar

p.ej.

Deporte [espacios en blanco] esta es una página sobre fútbol, ​​rugby y esas cosas.

Política [espacios en blanco] esta es una página en la que Tony Blair es el primer ministro.

El formato se describe en la página anterior (cada modelo espera un formato diferente). Una vez que haya creado este archivo, ejecútelo a través de la API o la aplicación opennlp (a través de la línea de comandos), y se genera un archivo .bin. Una vez que tenga este archivo .bin, puede cargarlo en un modelo y comenzar a usarlo (según la api en el sitio web anterior).