Neuroner est un programme qui effectue la reconnaissance de l'entité nommée (NER). Site Web: Neuroner.com.
Cette page donne des instructions étape par étape pour installer et utiliser le neurone.
Neuroner s'appuie sur Python 3, TensorFlow 1.0+ et éventuellement sur le gamin:
Pour le support GPU, les exigences GPU pour Tensorflow doivent être satisfaites. Si votre système ne répond pas à ces exigences, vous devez utiliser la version CPU. Pour installer Neuroner:
# For CPU support (no GPU support):
pip3 install pyneuroner[cpu]
# For GPU support:
pip3 install pyneuroner[gpu]
Vous devrez également télécharger certains packages d'assistance.
# 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() à partir d'un interprète Python ou avec l'argument --fetch_data sur la ligne de commande. # 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() à partir d'un interprète python ou avec l'argument --fetch_trained_models sur la ligne de commande. # 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 est un outil qui peut être utilisé pour créer, modifier ou afficher les annotations de style gamin. Pour les instructions d'installation et d'utilisation, consultez le site Web de gamin.
Perl est requis car le script officiel de l'évaluation CONLL-2003 est écrit dans cette langue: http://strawberryperl.com. Pour les systèmes UNIX et Mac OSX, Perl doit déjà être installé. Pour les systèmes Windows, vous devrez peut-être l'installer.
Le neurone peut être exécuté à partir de la ligne de commande ou à partir d'un interprète Python.
Pour utiliser Neuroner à partir de la ligne de commande, créez une instance du neuromodèle avec vos arguments souhaités, puis appelez les méthodes pertinentes. Les paramètres supplémentaires peuvent être définis à partir d'un fichier parameters.ini dans le répertoire de travail. Par exemple:
from neuroner import neuromodel
nn = neuromodel.NeuroNER(train_model=False, use_pretrained_model=True)
Plus de détails à suivre.
Par défaut, Neuroner est configuré pour s'entraîner et tester sur l'ensemble de données CONLL-2003. Le neuroner en cours d'exécution avec les paramètres par défaut commence à s'entraîner sur l'ensemble de données CONLL-2003 (le score F1 sur l'ensemble de tests devrait être d'environ 0,90, c'est-à-dire à égalité avec les systèmes de pointe). Pour commencer la formation:
# 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 vous souhaitez modifier l'un des paramètres des neuroner, vous pouvez modifier le fichier de configuration parameters.ini dans votre répertoire de travail ou le spécifier comme argument.
Par exemple, pour réduire le nombre d'époches d'entraînement et ne pas utiliser de jetons pré-formés:
neuroner --maximum_number_of_epochs=2 --token_pretrained_embedding_filepath=""
Pour effectuer NER sur certains textes brus à l'aide d'un modèle pré-formé:
neuroner --train_model=False --use_pretrained_model=True --dataset_text_folder=./data/example_unannotated_texts --pretrained_model_folder=./trained_models/conll_2003_en
Si un paramètre est spécifié dans le fichier de configuration parameters.ini et en tant qu'argument, alors l'argument a la priorité (c'est-à-dire que le paramètre dans parameters.ini est ignoré). Vous pouvez spécifier un fichier de configuration différent avec l'argument de la ligne de commande --parameters_filepath . Les arguments de ligne de commande n'ont aucune valeur par défaut, sauf pour --parameters_filepath , qui pointe vers parameters.ini .
Le neurone a 3 modes de fonctionnement:
Un ensemble de données peut être fourni au format CONLL-2003 ou Brat. Les fichiers et dossiers de l'ensemble de données doivent être organisés et nommés comme suit:
train.txt Fichier (Format CONLL-2003) ou dossier train (format Brat). Il doit contenir des étiquettes.valid.txt (format CONLL-2003) ou dossier valid (format Brat). Il doit contenir des étiquettes.test.txt Fichier (Format CONLL-2003) ou dossier test (format Brat). Il doit contenir des étiquettes.deploy.txt (format CONLL-2003) ou dossier deploy (format Brat). Il ne devrait contenir aucune étiquette (si c'est le cas, les étiquettes sont ignorées).Nous fournissons plusieurs exemples d'ensembles de données:
data/conll2003/en : DataSet annoté avec le format CONLL-2003, contenant 3 fichiers ( train.txt , valid.txt et test.txt ).data/example_unannotated_texts : ensemble de données non anannolé avec le format Brat, contenant 1 dossier ( deploy/ ). Notez que le format de gamin sans annotation est le même que les textes brus. Afin d'utiliser un modèle pré-entraîné, le paramètre pretrained_model_folder dans le fichier de configuration parameters.ini doit être défini sur le dossier contenant le modèle pré-entraîné. Les paramètres suivants dans le fichier de configuration parameters.ini doivent également être définis sur les mêmes valeurs que dans le fichier de configuration situé dans le pretrained_model_folder spécifié_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
Vous êtes fortement encouragé à partager un modèle formé sur leurs propres ensembles de données, afin que les autres utilisateurs puissent utiliser le modèle pré-entraîné sur d'autres ensembles de données. Nous fournissons le script neuroner/prepare_pretrained_model.py pour faciliter la préparation d'un modèle pré-entraîné pour le partage. Afin d'utiliser le script, il suffit de spécifier les paramètres de output_folder_name , epoch_number et model_name dans le script.
Par défaut, les seules informations sur l'ensemble de données contenues dans le modèle pré-entraîné sont la liste des jetons qui apparaissent dans l'ensemble de données utilisé pour la formation et les intérêts correspondants appris de l'ensemble de données.
Si vous souhaitez partager un modèle pré-entraîné sans fournir d'informations sur l'ensemble de données (y compris la liste des jetons apparaissant dans l'ensemble de données), vous pouvez le faire en définissant
delete_token_mappings = True
Lors de l'exécution du script. Dans ce cas, il est fortement recommandé d'utiliser des intégres de jetons pré-formés externes et de les congeler tout en entraînant le modèle pour obtenir des performances élevées. Cela peut être fait en spécifiant le token_pretrained_embedding_filepath et le réglage
freeze_token_embeddings = True
Dans le fichier de configuration parameters.ini pendant la formation.
Afin de partager un modèle pré-entraîné, veuillez soumettre un nouveau problème sur le référentiel GitHub.
Vous pouvez lancer Tensorboard pendant ou après la phase de formation. Pour ce faire, exécutez dans le terminal du dossier Neuroner:
tensorboard --logdir=output
Cela démarre un serveur Web accessible à http://127.0.0.1:6006 depuis votre navigateur Web.
Si vous utilisez Neuroner dans vos publications, veuillez citer cet article:
@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}
}
L'architecture du réseau neuronal utilisé dans les neuroners est décrite dans cet article:
@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}
}