Neuroner adalah program yang melakukan pengenalan namid-entity (NER). Situs web: Neuroner.com.
Halaman ini memberikan instruksi langkah demi langkah untuk menginstal dan menggunakan neuroner.
Neuroner bergantung pada Python 3, TensorFlow 1.0+, dan opsional pada brat:
Untuk dukungan GPU, persyaratan GPU untuk TensorFlow harus dipenuhi. Jika sistem Anda tidak memenuhi persyaratan ini, Anda harus menggunakan versi CPU. Untuk menginstal neuroner:
# For CPU support (no GPU support):
pip3 install pyneuroner[cpu]
# For GPU support:
pip3 install pyneuroner[gpu]
Anda juga perlu mengunduh beberapa paket dukungan.
# 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() dari interpreter Python atau dengan argumen --fetch_data di baris perintah. # 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() dari interpreter Python atau dengan argumen --fetch_trained_models di baris perintah. # 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 adalah alat yang dapat digunakan untuk membuat, mengubah, atau melihat anotasi bergaya bocah. Untuk instruksi pemasangan dan penggunaan, lihat situs web Brat.
Perl diperlukan karena skrip evaluasi CONLL-2003 resmi ditulis dalam bahasa ini: http://strawberryperl.com. Untuk sistem UNIX dan Mac OSX, Perl seharusnya sudah diinstal. Untuk sistem Windows, Anda mungkin perlu menginstalnya.
Neuroner dapat dijalankan dari baris perintah atau dari juru bahasa Python.
Untuk menggunakan neuroner dari baris perintah, buat contoh neuromodel dengan argumen yang Anda inginkan, dan kemudian panggil metode yang relevan. Parameter tambahan dapat diatur dari file parameters.ini di direktori kerja. Misalnya:
from neuroner import neuromodel
nn = neuromodel.NeuroNER(train_model=False, use_pretrained_model=True)
Lebih detail untuk diikuti.
Secara default Neuroner dikonfigurasi untuk melatih dan menguji pada dataset CONLL-2003. Menjalankan neuroner dengan pengaturan default mulai berlatih pada dataset CONLL-2003 (skor F1 pada set tes harus sekitar 0,90, yaitu setara dengan sistem canggih). Untuk memulai pelatihan:
# 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
Jika Anda ingin mengubah salah satu parameter neuroner, Anda dapat memodifikasi file konfigurasi parameters.ini di direktori kerja Anda atau menentukannya sebagai argumen.
Misalnya, untuk mengurangi jumlah zaman pelatihan dan tidak menggunakan embeddings token yang sudah terlatih:
neuroner --maximum_number_of_epochs=2 --token_pretrained_embedding_filepath=""
Untuk melakukan NER pada beberapa teks biasa menggunakan model pra-terlatih:
neuroner --train_model=False --use_pretrained_model=True --dataset_text_folder=./data/example_unannotated_texts --pretrained_model_folder=./trained_models/conll_2003_en
Jika parameter ditentukan dalam file konfigurasi parameters.ini dan sebagai argumen, maka argumen lebih diutamakan (yaitu, parameter dalam parameters.ini diabaikan). Anda dapat menentukan file konfigurasi yang berbeda dengan argumen baris perintah --parameters_filepath . Argumen baris perintah tidak memiliki nilai default kecuali untuk --parameters_filepath , yang menunjuk ke parameters.ini .
Neuroner memiliki 3 mode operasi:
Dataset dapat disediakan dalam format CONLL-2003 atau BRAT. File dan folder dataset harus diatur dan dinamai sebagai berikut:
train.txt (format CONLL-2003) atau folder train (format Brat). Itu harus berisi label.valid.txt (format conll-2003) atau folder valid (format brat). Itu harus berisi label.test.txt (format CONLL-2003) atau folder test (format Brat). Itu harus berisi label.deploy.txt (Format CONLL-2003) atau deploy Folder (Format Brat). Seharusnya tidak mengandung label apa pun (jika terjadi, label diabaikan).Kami memberikan beberapa contoh dataset:
data/conll2003/en : Dataset beranotasi dengan format CONLL-2003, berisi 3 file ( train.txt , valid.txt dan test.txt ).data/example_unannotated_texts : Dataset tidak ternotasi dengan format Brat, berisi 1 folder ( deploy/ ). Perhatikan bahwa format Brat tanpa anotasi sama dengan teks biasa. Untuk menggunakan model pretrained, parameter pretrained_model_folder dalam file konfigurasi parameters.ini harus diatur ke folder yang berisi model pretrained. Parameter berikut dalam file konfigurasi parameters.ini juga harus diatur ke nilai yang sama seperti pada file konfigurasi yang terletak di pretrained_model_folder yang ditentukan:
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
Anda sangat dianjurkan untuk berbagi model yang dilatih pada dataset mereka sendiri, sehingga pengguna lain dapat menggunakan model pretrained pada dataset lain. Kami menyediakan neuroner/prepare_pretrained_model.py Script untuk memudahkan menyiapkan model pretrained untuk berbagi. Untuk menggunakan skrip, orang hanya perlu menentukan parameter output_folder_name , epoch_number , dan model_name dalam skrip.
Secara default, satu -satunya informasi tentang dataset yang terkandung dalam model pretrained adalah daftar token yang muncul dalam dataset yang digunakan untuk pelatihan dan embeddings yang sesuai yang dipelajari dari dataset.
Jika Anda ingin berbagi model pretrained tanpa memberikan informasi tentang dataset (termasuk daftar token yang muncul dalam dataset), Anda dapat melakukannya dengan pengaturan
delete_token_mappings = True
Saat menjalankan skrip. Dalam hal ini, sangat disarankan untuk menggunakan beberapa embeddings token pra-terlatih eksternal dan membekukannya sambil melatih model untuk mendapatkan kinerja tinggi. Ini dapat dilakukan dengan menentukan token_pretrained_embedding_filepath dan pengaturan
freeze_token_embeddings = True
Dalam file konfigurasi parameters.ini selama pelatihan.
Untuk membagikan model pretrained, silakan kirimkan masalah baru di repositori GitHub.
Anda dapat meluncurkan Tensorboard selama atau setelah fase pelatihan. Untuk melakukannya, jalankan di terminal dari folder Neuroner:
tensorboard --logdir=output
Ini memulai server web yang dapat diakses di http://127.0.0.1:6006 dari browser web Anda.
Jika Anda menggunakan neuroner dalam publikasi Anda, silakan kutip makalah ini:
@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}
}
Arsitektur jaringan saraf yang digunakan dalam neuroner dijelaskan dalam artikel ini:
@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}
}