Neuroner는 NER (Named-Entity Recognition)을 수행하는 프로그램입니다. 웹 사이트 : Neuroner.com.
이 페이지에서는 Neuroner를 설치하고 사용하기위한 단계별 지침을 제공합니다.
Neuroner는 Python 3, Tensorflow 1.0+ 및 선택적으로 Brat에 의존합니다.
GPU 지원의 경우 텐서 플로우에 대한 GPU 요구 사항이 충족되어야합니다. 시스템이 이러한 요구 사항을 충족하지 않으면 CPU 버전을 사용해야합니다. Neuroner를 설치하려면 :
# 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/
--fetch_data 인수와 함께 neuromodel.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')
--fetch_trained_models 인수와 함께 neuromodel.fetch_model() 함수를 호출하여 모델을로드 할 수 있습니다. # 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 평가 스크립트 가이 언어로 작성되기 때문에 Perl이 필요합니다 : http://strawberryperl.com. UNIX 및 MAC OSX 시스템의 경우 Perl이 이미 설치되어야합니다. Windows 시스템의 경우 설치해야 할 수도 있습니다.
Neuroner는 명령 줄이나 Python 통역사에서 실행할 수 있습니다.
명령 줄에서 Neuroner를 사용하려면 원하는 인수와 함께 Neuromodel의 인스턴스를 작성한 다음 관련 메소드를 호출하십시오. 작업 디렉토리의 매개 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
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 를 가리 킵니다.
Neuroner에는 3 가지 작동 모드가 있습니다.
데이터 세트는 Conll-2003 또는 Brat 형식으로 제공 될 수 있습니다. 데이터 세트 파일 및 폴더는 다음과 같이 구성하고 이름을 지정해야합니다.
train.txt 파일 (Conll-2003 형식) 또는 train Folder (Brat Format). 레이블이 포함되어야합니다.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 : 1 폴더 ( deploy/ )를 포함하는 BRAT 형식의 미확인 데이터 세트. 주석이없는 Brat 형식은 일반 텍스트와 동일합니다. 사전에 사전 된 모델을 사용하려면 parameters.ini 의 pretrained_model_folder 매개 변수를 전기 모델을 포함하는 폴더로 설정해야합니다. parameters.ini 구성 파일의 다음 매개 변수는 지정된 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
자체 데이터 세트에서 교육을받은 모델을 공유하여 다른 사용자가 다른 데이터 세트에서 사전 배치 된 모델을 사용할 수 있도록하는 것이 좋습니다. 우리는 공유를 위해 사전에 사전 된 모델을 쉽게 준비 할 수 있도록 neuroner/prepare_pretrained_model.py 스크립트를 제공합니다. 스크립트를 사용하려면 스크립트에서 output_folder_name , epoch_number 및 model_name 매개 변수 만 지정하면됩니다.
기본적으로, 사전 배치 된 모델에 포함 된 데이터 세트에 대한 유일한 정보는 훈련에 사용되는 데이터 세트에 나타나는 토큰 목록과 데이터 세트에서 배운 해당 임베드 목록입니다.
데이터 세트에 대한 정보를 제공하지 않고 사전에 사전 된 모델을 공유하려면 (데이터 세트에 나타나는 토큰 목록 포함) 설정을 통해 그렇게 할 수 있습니다.
delete_token_mappings = True
스크립트를 실행할 때. 이 경우, 외부 미리 훈련 된 토큰 임베딩을 사용하고 고성능을 얻기 위해 모델을 훈련시키는 동안 동결하는 것이 좋습니다. 이것은 token_pretrained_embedding_filepath 지정하고 설정하여 수행 할 수 있습니다.
freeze_token_embeddings = True
The parameters.ini 구성 파일에서.
사전 준비된 모델을 공유하려면 Github 저장소에 새로운 문제를 제출하십시오.
훈련 단계 또는 후에 텐서 보드를 시작할 수 있습니다. 그렇게하려면 신경 폴더에서 터미널에서 실행하십시오.
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}
}
Neuroner에 사용 된 신경망 아키텍처는이 기사에 설명되어 있습니다.
@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}
}