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}
}