Neuroner-это программа, которая выполняет распознавание с именем-энтитом (NER). Веб -сайт: Neuroner.com.
Эта страница дает пошаговые инструкции для установки и использования нейронера.
Neuroner полагается на Python 3, Tensorflow 1.0+, и, необязательно, на Brat:
Для поддержки GPU требования графического процессора для TensorFlow должны быть удовлетворены. Если ваша система не соответствует этим требованиям, вы должны использовать версию процессора. Чтобы установить нейророн:
# For CPU support (no GPU support):
pip3 install pyneuroner[cpu]
# For GPU support:
pip3 install pyneuroner[gpu]
Вам также нужно будет скачать несколько пакетов поддержки.
# 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() из интерпретатора Python или с аргументом --fetch_data в командной строке. # 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() из интерпретатора Python или с аргументом --fetch_trained_models в командной строке. # 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-это инструмент, который можно использовать для создания, изменения или просмотра аннотаций в стиле Brat. Инструкции по установке и использованию см. В сайте Brat.
Перл требуется, потому что на этом языке написан официальный сценарий оценки Conll-2003: http://strawberryperl.com. Для систем Unix и Mac OSX уже следует установить. Для систем Windows вам может потребоваться его установить.
Neuroner можно запустить либо из командной строки, либо от интерпретатора Python.
Чтобы использовать нейророн из командной строки, создайте экземпляр нейромодели с желаемыми аргументами, а затем вызовите соответствующие методы. Дополнительные параметры могут быть установлены из файла parameters.ini в рабочем каталоге. Например:
from neuroner import neuromodel
nn = neuromodel.NeuroNER(train_model=False, use_pretrained_model=True)
Более подробно следовать.
По умолчанию Neuroner настроен для обучения и тестирования набора данных CONLL-2003. Запуск Neuroner с настройками по умолчанию начинает обучение на наборе данных CONLL-2003 (показатель F1 в тестовом наборе должен составлять около 0,90, т.е. наравне с современными системами). Чтобы начать обучение:
# 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
Если вы хотите изменить какой -либо из параметров нейронера, вы можете изменить файл конфигурации parameters.ini .
Например, чтобы уменьшить количество тренировочных эпох и не использовать какие-либо предварительно обученные токеновые встраивания:
neuroner --maximum_number_of_epochs=2 --token_pretrained_embedding_filepath=""
Чтобы выполнить NER в некоторых простых текстах, используя предварительно обученную модель:
neuroner --train_model=False --use_pretrained_model=True --dataset_text_folder=./data/example_unannotated_texts --pretrained_model_folder=./trained_models/conll_2003_en
Если параметр указан как в файле конфигурации parameters.ini , так и в качестве аргумента, то аргумент имеет приоритет (то есть параметр в parameters.ini игнорируется). Вы можете указать другой файл конфигурации с аргументом командной строки --parameters_filepath . Аргументы командной строки не имеют значения по умолчанию, за исключением --parameters_filepath , что указывает на parameters.ini .
Нейророн имеет 3 режима работы:
Набор данных может быть предоставлен в формате Conll-2003 или Brat. Файлы и папки набора данных должны быть организованы и названы следующим образом:
train.txt (формат Conll-2003) или папка train (формат Brat). Он должен содержать этикетки.valid.txt (формат Conll-2003) или valid папка (формат Brat). Он должен содержать этикетки.test.txt (формат Conll-2003) или test папка (формат Brat). Он должен содержать этикетки.deploy.txt (формат conll-2003) или папка deploy (формат Brat). Он не должен содержать никакой метки (если это так, этикетки игнорируются).Мы предоставляем несколько примеров наборов данных:
data/conll2003/en : Аннотированный набор данных с форматом CONLL-2003, содержащий 3 файла ( train.txt , valid.txt и test.txt ).data/example_unannotated_texts : unannoted dataet с форматом Brat, содержащий 1 папку ( deploy/ ). Обратите внимание, что формат Brat без аннотации такой же, как простые тексты. Чтобы использовать предварительную модель, параметр pretrained_model_folder в файле конфигурации parameters.ini должен быть установлен в папку, содержащую предварительную модель. Следующие параметры pretrained_model_folder файле конфигурации parameters.ini .
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
Вам очень рекомендуется поделиться моделью, обученной на своих собственных наборах данных, чтобы другие пользователи могли использовать предварительную модель на других наборах данных. Мы предоставляем сценарий neuroner/prepare_pretrained_model.py чтобы облегчить подготовку модели предварительного обмена. Чтобы использовать сценарий, нужно только указать параметры output_folder_name , epoch_number и model_name в скрипте.
По умолчанию единственная информация о наборе данных, содержащемся в предварительно предварительному модели, - это список токенов, который появляется в наборе данных, используемом для обучения, и соответствующих встроенных встроений, изученных из набора данных.
Если вы хотите поделиться предварительной моделью, не предоставляя никакой информации о наборе данных (включая список токенов, появляющихся в наборе данных), вы можете сделать это, настройка
delete_token_mappings = True
При запуске сценария. В этом случае настоятельно рекомендуется использовать некоторые внешние предварительно обученные токеновые встроения и заморозить их при обучении модели для получения высокой производительности. Это может быть сделано путем указания token_pretrained_embedding_filepath и настройки
freeze_token_embeddings = True
В файле конфигурации parameters.ini во время обучения.
Чтобы поделиться предварительной моделью, отправьте новую проблему в репозитории GitHub.
Вы можете запустить Tensorboard во время или после фазы обучения. Для этого запустите в терминале из папки Neuroner:
tensorboard --logdir=output
Это запускает веб -сервер, который доступен по адресу http://127.0.0.1:6006 из вашего веб -браузера.
Если вы используете Neuroner в своих публикациях, пожалуйста, укажите эту статью:
@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}
}
Архитектура нейронной сети, используемая в нейроноре, описана в этой статье:
@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}
}