Neuroner ist ein Programm, das die benannte Entzeiterkennung (NER) durchführt. Website: Neuroner.com.
Diese Seite enthält schrittweise Anweisungen zur Installation und Verwendung von Neuroner.
Der Neuroner stützt sich auf Python 3, TensorFlow 1.0+ und optional auf GROT:
Für die GPU -Unterstützung muss die GPU -Anforderungen an TensorFlow erfüllt werden. Wenn Ihr System diese Anforderungen nicht erfüllt, sollten Sie die CPU -Version verwenden. Neuroner installieren:
# For CPU support (no GPU support):
pip3 install pyneuroner[cpu]
# For GPU support:
pip3 install pyneuroner[gpu]
Sie müssen auch einige Support -Pakete herunterladen.
# 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() von einem Python -Interpreter oder mit dem Argument --fetch_data in der Befehlszeile aufrufen. # 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() von einem Python -Interpreter oder mit dem Argument --fetch_trained_models an der Befehlszeile -fecken_trainier_models aufgerufen wird. # 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 ist ein Tool, mit dem die Anmerkungen im Brat-Stil erstellt, geändert oder angezeigt werden können. Für Installations- und Nutzungsanweisungen finden Sie auf der Brat -Website.
Perl ist erforderlich, da das offizielle CONLL-2003-Bewertungsskript in dieser Sprache geschrieben ist: http://strawberryperl.com. Für Unix- und Mac OSX -Systeme sollte Perl bereits installiert werden. Für Windows -Systeme müssen Sie es möglicherweise installieren.
Der Neuroner kann entweder aus der Befehlszeile oder aus einem Python -Interpreter ausgeführt werden.
Um Neuroner aus der Befehlszeile zu verwenden, erstellen Sie eine Instanz des Neuromodells mit Ihren gewünschten Argumenten und rufen Sie dann die relevanten Methoden auf. Zusätzliche Parameter können aus einer parameters.ini -Datei im Arbeitsverzeichnis festgelegt werden. Zum Beispiel:
from neuroner import neuromodel
nn = neuromodel.NeuroNER(train_model=False, use_pretrained_model=True)
Weitere Details folgen.
Standardmäßig ist der Neuroner so konfiguriert, dass er auf dem CONLL-2003-Datensatz trainiert und testet. Das Ausführen von Neuroner mit den Standardeinstellungen beginnt mit dem Training auf dem CONLL-2003-Datensatz (der F1-Score im Testsatz sollte bei etwa 0,90 liegen, dh auf Niveau mit modernsten Systemen). Mit dem Training beginnen:
# 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
Wenn Sie einen der Neuroner -Parameter ändern möchten, können Sie die parameters.ini in Ihrem Arbeitsverzeichnis ändern oder als Argument angeben.
Zum Beispiel, um die Anzahl der Trainings-Epochen zu verringern und keine vorgebreiteten Token-Einbettungen zu verwenden:
neuroner --maximum_number_of_epochs=2 --token_pretrained_embedding_filepath=""
Um NER in einigen einfachen Texten mit einem vorgebildeten Modell durchzuführen:
neuroner --train_model=False --use_pretrained_model=True --dataset_text_folder=./data/example_unannotated_texts --pretrained_model_folder=./trained_models/conll_2003_en
Wenn ein Parameter in beiden parameters.ini -Konfigurationsdateien und als Argument angegeben ist, hat das Argument Vorrang (dh der Parameter in parameters.ini wird ignoriert). Sie können eine andere Konfigurationsdatei mit dem Befehlszeilenargument --parameters_filepath angeben. Die Befehlszeilenargumente haben keinen Standardwert außer für --parameters_filepath , die auf parameters.ini verweist.
Der Neuroner hat 3 Betriebsmodi:
Ein Datensatz kann entweder im CONLL-2003- oder im Brat-Format bereitgestellt werden. Die Datensatzdateien und Ordner sollten wie folgt organisiert und benannt werden:
train.txt Datei (CONLL-2003-Format) oder train (Brat-Format). Es muss Etiketten enthalten.valid.txt Datei (CONLL-2003-Format) oder valid Ordner (Brat-Format). Es muss Etiketten enthalten.test.txt Datei (CONLL-2003-Format) oder test (Brat-Format). Es muss Etiketten enthalten.deploy.txt Datei (Conll-2003-Format) oder Ordner deploy (Brat-Format). Es sollte kein Etikett enthalten (falls dies der Fall ist, werden Beschriftungen ignoriert).Wir geben mehrere Beispiele für Datensätze an:
data/conll2003/en : Annotierter Datensatz mit dem Conll-2003-Format mit 3 Dateien ( train.txt , valid.txt und test.txt ).data/example_unannotated_texts : UnanTated Dataset mit dem Brat -Format mit 1 Ordner ( deploy/ ). Beachten Sie, dass das Brat -Format ohne Annotation mit einfachen Texten das gleiche entspricht. Um ein vorgezogenes Modell zu verwenden, muss der Parameter pretrained_model_folder in den parameters.ini -Konfigurationsdatei auf den Ordner festgelegt werden, der das vorbereitete Modell enthält. Die folgenden Parameter in den parameters.ini -Konfigurationsdatei müssen ebenfalls auf die gleichen Werte wie in der Konfigurationsdatei eingestellt werden, die sich in der angegebenen pretrained_model_folder befindet:
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
Sie werden sehr ermutigt, ein Modell zu teilen, das auf ihren eigenen Datensätzen geschult ist, damit andere Benutzer das vorgezogene Modell für andere Datensätze verwenden können. Wir stellen das Skript neuroner/prepare_pretrained_model.py zur Verfügung, damit es einfach ist, ein vorgezogenes Modell für die Freigabe vorzubereiten. Um das Skript zu verwenden, muss man nur die Parameter output_folder_name , epoch_number und model_name im Skript angeben.
Standardmäßig sind die einzigen Informationen über den im vorgezogenen Modell enthaltenen Datensatz die Liste der Token, die im Datensatz für das Training und die entsprechenden Einbettungsdings aus dem Datensatz angezeigt werden.
Wenn Sie ein vorgezogenes Modell freigeben möchten, ohne Informationen über den Datensatz bereitzustellen (einschließlich der Liste der im Datensatz angezeigten Token), können Sie dies durch Einstellen tun
delete_token_mappings = True
beim Ausführen des Skripts. In diesem Fall wird dringend empfohlen, einige externe Voraussetzungen für Token-Einbettungen zu verwenden und sie während des Trainings des Modells einzufrieren, um eine hohe Leistung zu erzielen. Dies kann durch Angeben des token_pretrained_embedding_filepath und der Einstellung erfolgen
freeze_token_embeddings = True
in der parameters.ini -Konfigurationsdatei während des Trainings.
Um ein vorgezogenes Modell zu teilen, senden Sie bitte eine neue Ausgabe im Github -Repository.
Sie können das Tensorboard während oder nach der Trainingsphase starten. Laufen Sie dazu im Terminal aus dem Neuroner -Ordner:
tensorboard --logdir=output
Dies startet einen Webserver, auf den Sie unter http://127.0.0.1:6006 von Ihrem Webbrowser zugänglich sind.
Wenn Sie Neuroner in Ihren Veröffentlichungen verwenden, zitieren Sie bitte dieses Papier:
@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}
}
Die im Neuroner verwendete neuronale Netzwerkarchitektur wird in diesem Artikel beschrieben:
@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}
}