Neuroner是一個執行指定性識別(NER)的程序。網站:Neuroner.com。
此頁面提供了安裝和使用神經元的分步說明。
神經元依賴於Python 3,Tensorflow 1.0+,並且可選地使用:
對於GPU支持,必須滿足GPU對張量的要求。如果您的系統不符合這些要求,則應使用CPU版本。安裝神經元:
# 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網站。
需要Perl,因為官方Conll-2003評估腳本是用此語言編寫的: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)
遵循的更多詳細信息。
默認情況下,神經元將配置為在CONLL-2003數據集上進行訓練和測試。使用默認設置運行神經元器開始在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中的參數。Ini被忽略)。您可以使用--parameters_filepath命令行參數指定不同的配置文件。命令行參數沒有默認值,除了--parameters_filepath ,該值指向parameters.ini 。
Neuroner具有3種操作模式:
可以以Conll-2003或Brat格式提供數據集。數據集文件和文件夾應組織起來,並命名如下:
train.txt文件(CONLL-2003格式)或train文件夾(Brat格式)。它必須包含標籤。valid.txt文件(CONLL-2003格式)或valid文件夾(BRAT格式)。它必須包含標籤。test.txt文件(CONLL-2003格式)或test文件夾(Brat Format)。它必須包含標籤。deploy.txt文件(conll-2003格式)或deploy文件夾(Brat格式)。它不應包含任何標籤(如果有的話,標籤將被忽略)。我們提供了幾個數據集的示例:
data/conll2003/en :帶有CONLL-2003格式的註釋數據集,包含3個文件( train.txt , valid.txt和test.txt )。data/example_unannotated_texts :帶有Brat格式的未註釋的數據集,其中包含1個文件夾( deploy/ )。請注意,沒有註釋的小子格式與純文本相同。為了使用預處理的模型,必須pretrained_model_folder參數在parameters.ini中。 INI配置文件必須設置為包含預驗證模型的文件夾。 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.1:6006訪問的Web服務器。
如果您在出版物中使用神經元,請引用本文:
@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}
}