Neuroner es un programa que realiza el reconocimiento de entidad nombrada (NER). Sitio web: neuroner.com.
Esta página proporciona instrucciones paso a paso para instalar y usar neuroner.
Neuroner depende de Python 3, TensorFlow 1.0+ y opcionalmente en Brat:
Para el soporte de GPU, se deben cumplir los requisitos de GPU para TensorFlow. Si su sistema no cumple con estos requisitos, debe usar la versión de la CPU. Para instalar neuroner:
# For CPU support (no GPU support):
pip3 install pyneuroner[cpu]
# For GPU support:
pip3 install pyneuroner[gpu]
También deberá descargar algunos paquetes de soporte.
# Download the SpaCy English module
python -m spacy download en
./data/word_vectors # Get word embeddings
wget -P data/word_vectors http://neuroner.com/data/word_vectors/glove.6B.100d.zip
unzip data/word_vectors/glove.6B.100d.zip -d data/word_vectors/
neuromodel.fetch_data() desde un intérprete de Python o con el argumento --fetch_data en la línea de comando. # Load a dataset from the command line
neuroner --fetch_data=conll2003
neuroner --fetch_data=example_unannotated_texts
neuroner --fetch_data=i2b2_2014_deid
# Load a dataset from a Python interpreter
from neuroner import neuromodel
neuromodel.fetch_data('conll2003')
neuromodel.fetch_data('example_unannotated_texts')
neuromodel.fetch_data('i2b2_2014_deid')
neuromodel.fetch_model() desde un intérprete de Python o con el argumento --fetch_trained_models en la línea de comandos. # Load a pre-trained model from the command line
neuroner --fetch_trained_model=conll_2003_en
neuroner --fetch_trained_model=i2b2_2014_glove_spacy_bioes
neuroner --fetch_trained_model=i2b2_2014_glove_stanford_bioes
neuroner --fetch_trained_model=mimic_glove_spacy_bioes
neuroner --fetch_trained_model=mimic_glove_stanford_bioes
# Load a pre-trained model from a Python interpreter
from neuroner import neuromodel
neuromodel.fetch_model('conll_2003_en')
neuromodel.fetch_model('i2b2_2014_glove_spacy_bioes')
neuromodel.fetch_model('i2b2_2014_glove_stanford_bioes')
neuromodel.fetch_model('mimic_glove_spacy_bioes')
neuromodel.fetch_model('mimic_glove_stanford_bioes')
Brat es una herramienta que se puede usar para crear, cambiar o ver las anotaciones de estilo Brat. Para obtener instrucciones de instalación y uso, consulte el sitio web de Brat.
Se requiere Perl porque el script de evaluación oficial de Conll-2003 está escrito en este idioma: http://strawberryperl.com. Para los sistemas UNIX y Mac OSX, Perl ya debe instalarse. Para los sistemas de Windows, es posible que deba instalarlo.
El neuroner se puede ejecutar desde la línea de comando o desde un intérprete de Python.
Para usar el neuroner desde la línea de comando, cree una instancia del neuromodelo con los argumentos deseados y luego llame a los métodos relevantes. Se pueden establecer parámetros adicionales desde un archivo de parameters.ini en el directorio de trabajo. Por ejemplo:
from neuroner import neuromodel
nn = neuromodel.NeuroNER(train_model=False, use_pretrained_model=True)
Más detalles para seguir.
Por defecto, el neuroner está configurado para entrenar y probar en el conjunto de datos Conll-2003. Ejecutar el neuroner con la configuración predeterminada comienza a entrenar en el conjunto de datos Conll-2003 (el puntaje F1 en el conjunto de pruebas debe ser de alrededor de 0.90, es decir, a la par con los sistemas de última generación). Para comenzar el entrenamiento:
# To use the CPU if you have installed tensorflow, or use the GPU if you have installed tensorflow-gpu:
neuroner
# To use the CPU only if you have installed tensorflow-gpu:
CUDA_VISIBLE_DEVICES="" neuroner
# To use the GPU 1 only if you have installed tensorflow-gpu:
CUDA_VISIBLE_DEVICES=1 neuroner
Si desea cambiar cualquiera de los parámetros de neuroner, puede modificar el archivo de configuración de parameters.ini en su directorio de trabajo o especificarlo como un argumento.
Por ejemplo, para reducir el número de épocas de entrenamiento y no utilizar ninguna incrustación de token previamente capacitada:
neuroner --maximum_number_of_epochs=2 --token_pretrained_embedding_filepath=""
Para realizar NER en algunos textos sin formato utilizando un modelo previamente capacitado:
neuroner --train_model=False --use_pretrained_model=True --dataset_text_folder=./data/example_unannotated_texts --pretrained_model_folder=./trained_models/conll_2003_en
Si se especifica un parámetro en el archivo de configuración de parameters.ini y como argumento, entonces el argumento tiene prioridad (es decir, el parámetro en parameters.ini se ignora). Puede especificar un archivo de configuración diferente con el argumento de la línea de comandos --parameters_filepath . Los argumentos de la línea de comando no tienen valor predeterminado, excepto --parameters_filepath , que apunta a parameters.ini .
Neuroner tiene 3 modos de operación:
Se puede proporcionar un conjunto de datos en formato Conll-2003 o mocoso. Los archivos y carpetas del conjunto de datos deben organizarse y nombrarse de la siguiente manera:
train.txt File (formato Conll-2003) o carpeta train (formato de mocoso). Debe contener etiquetas.valid.txt (formato Conll-2003) o carpeta valid (formato de mocoso). Debe contener etiquetas.test.txt File (Conll-2003 Format) o carpeta test (formato de mocoso). Debe contener etiquetas.deploy.txt (formato CONLL-2003) o carpeta deploy (formato de mocoso). No debe contener ninguna etiqueta (si lo hace, se ignoran las etiquetas).Proporcionamos varios ejemplos de conjuntos de datos:
data/conll2003/en : conjunto de datos anotado con el formato Conll-2003, que contiene 3 archivos ( train.txt , valid.txt y test.txt ).data/example_unannotated_texts : conjunto de datos no anotado con el formato de mocoso, que contiene 1 carpeta ( deploy/ ). Tenga en cuenta que el formato de mocoso sin anotación es el mismo que los textos sin formato. Para utilizar un modelo previamente, el parámetro pretrained_model_folder en el archivo de configuración de parameters.ini se debe establecer en la carpeta que contiene el modelo previamente prenado. Los siguientes parámetros en el archivo de configuración parameters.ini también deben establecerse en los mismos valores que en el archivo de configuración ubicado en el pretenerado pretrained_model_folder :
use_character_lstm
character_embedding_dimension
character_lstm_hidden_state_dimension
token_pretrained_embedding_filepath
token_embedding_dimension
token_lstm_hidden_state_dimension
use_crf
tagging_format
tokenizer
Se le recomienda encarecidamente que comparta un modelo capacitado en sus propios conjuntos de datos, para que otros usuarios puedan usar el modelo de petróleo en otros conjuntos de datos. Proporcionamos el script neuroner/prepare_pretrained_model.py para facilitar la preparación de un modelo previo a la aparición para compartir. Para usar el script, solo necesita especificar los parámetros de output_folder_name , epoch_number y model_name en el script.
De forma predeterminada, la única información sobre el conjunto de datos contenido en el modelo de petróleo es la lista de tokens que aparece en el conjunto de datos utilizado para la capacitación y las incrustaciones correspondientes aprendidas del conjunto de datos.
Si desea compartir un modelo previo al estado previo sin proporcionar ninguna información sobre el conjunto de datos (incluida la lista de tokens que aparece en el conjunto de datos), puede hacerlo configurando
delete_token_mappings = True
Al ejecutar el script. En este caso, se recomienda utilizar algunos incrustaciones de token pre-entrenadas externas y congelarlos mientras capacita al modelo para obtener un alto rendimiento. Esto se puede hacer especificando el token_pretrained_embedding_filepath y configurando
freeze_token_embeddings = True
En el archivo de configuración parameters.ini durante la capacitación.
Para compartir un modelo previo al estado previo, envíe un nuevo problema en el repositorio de GitHub.
Puede lanzar TensorBoard durante o después de la fase de entrenamiento. Para hacerlo, ejecute en el terminal desde la carpeta de neuroner:
tensorboard --logdir=output
Esto inicia un servidor web al que se puede acceder en http://127.0.0.1:6006 desde su navegador web.
Si usa neuroner en sus publicaciones, cite este documento:
@article{2017neuroner,
title={{NeuroNER}: an easy-to-use program for named-entity recognition based on neural networks},
author={Dernoncourt, Franck and Lee, Ji Young and Szolovits, Peter},
journal={Conference on Empirical Methods on Natural Language Processing (EMNLP)},
year={2017}
}
La arquitectura de la red neuronal utilizada en el neuroner se describe en este artículo:
@article{2016deidentification,
title={De-identification of Patient Notes with Recurrent Neural Networks},
author={Dernoncourt, Franck and Lee, Ji Young and Uzuner, Ozlem and Szolovits, Peter},
journal={Journal of the American Medical Informatics Association (JAMIA)},
year={2016}
}