Neuronerは、指定された認識(NER)を実行するプログラムです。ウェブサイト:Neuroner.com。
このページは、NeuroNerをインストールおよび使用するための段階的な指示を提供します。
ニューロナーは、Python 3、Tensorflow 1.0+、およびオプションでBratに依存しています。
GPUサポートの場合、Tensorflowの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/
neuromodel.fetch_data()関数を呼び出すか、コマンドラインで--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()関数を呼び出すか、コマンドラインで--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 Webサイトを参照してください。
公式のCONLL-2003評価スクリプトがこの言語で記述されているため、Perlが必要です:http://strawberryperl.com。 UnixおよびMac OSXシステムの場合、Perlはすでにインストールされている必要があります。 Windowsシステムの場合、インストールする必要がある場合があります。
ニューロナーは、コマンドラインまたは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
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.iniを指す--parameters_filepathを除き、デフォルト値はありません。
Neuronerには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 :3つのファイル( train.txt 、 valid.txt 、 test.txt )を含むconll-2003形式を使用した注釈付きデータセット。data/example_unannotated_texts :1つのフォルダー( deploy/ )を含むbrat形式を備えた未解決のデータセット。注釈なしのBrat形式は、プレーンテキストと同じであることに注意してください。前処理されたモデルを使用するには、 parameters.ini構成ファイルのpretrained_model_folderの_model_folderパラメーターを、前処理されたモデルを含むフォルダーに設定する必要があります。 parameters.iniの次のパラメーター。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
トレーニング中のparameters.ini構成ファイルで。
事前に抑制されたモデルを共有するには、GitHubリポジトリで新しい問題を提出してください。
トレーニングフェーズ中または後にテンソルボードを起動できます。そうするために、ニューロナーフォルダーからターミナルで実行します。
tensorboard --logdir=output
これにより、Webブラウザからhttp://127.0.0.1:6006でアクセスできるWebサーバーが開始されます。
出版物で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}
}