神经学者
pyneuroner的Python项目详细描述
神经元
neuroner是一个执行命名实体识别(ner)的程序。网址:neuroner.com
本页提供安装和使用Neuroner的分步说明。
目录
要求
Neuroner依赖于Python3、TensorFlow 1.0+,还可以选择依赖于brat:
- Python3:Neuroner不能与Python2.x一起工作。在Windows上,它必须是Python3.6 64位或更高版本。
- tensorflow是一个机器学习库。neuroner将其用于其基于神经网络的ner引擎。官方网站:https://www.tensorflow.org rel="nofollow">https://www.tensorflow.org
- brat(可选)是一个基于web的注释工具。它只需要安装,如果你想方便地创建注释或查看由神经元作出的预测。官方网站:http://brat.nlplab.org" rel="nofollow">http://brat.nlplab.org
安装
对于GPU支持,必须满足TensorFlow的GPU要求。如果系统不满足这些要求,则应使用CPU版本。要安装Neuroner:
# For CPU support (no GPU support):
pip3 install pyneuroner[cpu]
# For GPU support:
pip3 install pyneuroner[gpu]
您还需要下载一些支持包。
- Spacy的英语模块: < > >
- 从http://neuroner.com/data/word_vectors/glove.6b.100d.zip" rel="nofollow">http://neuroner.com/data/word_vectors/glove.6b.100d.zip下载单词嵌入,解压缩到文件夹
/data/word_vectors
< > > - 加载示例数据集。可以通过从python解释器调用
neuromodel.fetch_data()
函数或在命令行使用--fetch_data
参数来加载这些函数。 < > > - 加载预训练模型。可以通过调用python解释器中的neuromodel.fetch_trained_models()函数或在命令行中使用
--fetch_trained_models
参数来加载模型。 < > > - 训练模式(从头开始):数据集文件夹必须具有训练集和有效集。测试和部署集是可选的。
- 训练模式(来自预训练模型):数据集文件夹必须具有训练集和有效集。测试和部署集是可选的。
- 预测模式(使用预训练模型):数据集文件夹必须有测试集或部署集。
- 训练集:
train.txt
文件(conll-2003格式)或train
文件夹(brat格式)。它必须包含标签。 - 验证集:
valid.txt
文件(conll-2003格式)或有效
文件夹(brat格式)。它必须包含标签。 - 测试集:
test.txt
文件(conll-2003格式)或测试
文件夹(brat格式)。它必须包含标签。 - 部署集:
deploy.txt
文件(conll-2003格式)或deploy
文件夹(brat格式)。它不应该包含任何标签(如果包含,则忽略标签)。 data/conll2003/en
:注释数据集,采用conll-2003格式,包含3个文件(train.txt
,valid.txt
和test.txt
)。数据/example_unnotated_texts
:具有BRAT格式的未注释数据集,包含1个文件夹(deploy/
)。请注意,不带注释的BRAT格式与纯文本相同。
# Download the SpaCy English module
python -m spacy download en
# 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/
# 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')
# 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_trained_model('conll_2003_en')
neuromodel.fetch_trained_model('i2b2_2014_glove_spacy_bioes')
neuromodel.fetch_trained_model('i2b2_2014_glove_stanford_bioes')
neuromodel.fetch_trained_model('mimic_glove_spacy_bioes')
neuromodel.fetch_trained_model('mimic_glove_stanford_bioes')
安装BRAT(可选)
brat是一个可以用来创建、更改或查看brat样式注释的工具。有关安装和使用说明,请参见BRAT网站
安装Perl(依赖于平台)
perl是必需的,因为官方的conll-2003评估脚本是用这种语言编写的:http://strawberryperl.com。对于Unix和MacOSX系统,应该已经安装了Perl。对于Windows系统,您可能需要安装它。
使用Neuroner
neuroner可以从命令行运行,也可以从python解释器运行。
使用python解释器中的neuroner
要从命令行使用neuroner,请使用所需的参数创建neurodel的实例,然后调用相关方法。可以从工作目录中的parameters.ini
文件设置其他参数。例如:
from neuroner import neuromodel
nn = neuromodel.NeuroNER(train_model=False, use_pretrained_model=True)
更多细节请关注。
从命令行使用neuroner
默认情况下,neuroner配置为在conll-2003数据集上进行训练和测试。运行默认设置的NoNoR开始在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
配置文件或将其指定为参数。
例如,要减少训练时段的数量,并且不使用任何预先训练的令牌嵌入:
# For CPU support (no GPU support):
pip3 install pyneuroner[cpu]
# For GPU support:
pip3 install pyneuroner[gpu]
0
使用预先训练的模型对一些纯文本执行NER:
# For CPU support (no GPU support):
pip3 install pyneuroner[cpu]
# For GPU support:
pip3 install pyneuroner[gpu]
1
如果在配置文件和参数中都指定了一个参数,则该参数优先(即忽略 Neuroner有三种操作模式: 数据集可以是conll-2003或brat格式。数据集文件和文件夹的组织和命名如下: 我们提供了几个数据集示例: 为了使用预训练模型,必须将配置文件中的 我们强烈建议您共享在自己的数据集上训练的模型,以便其他用户能够e其他数据集上的预训练模型。我们提供了 默认情况下,有关预训练模型中包含的数据集的唯一信息是出现在用于训练的数据集中的标记列表以及从数据集中学习到的相应嵌入。 如果希望在不提供任何有关数据集的信息(包括数据集中出现的令牌列表)的情况下共享预训练模型,可以通过设置来实现此目的 运行脚本时。在这种情况下,强烈建议使用一些外部预训练的令牌嵌入,并在训练模型时冻结它们以获得高性能。这可以通过指定 在培训期间的配置文件中。 为了共享一个预先训练的模型,请在github存储库上提交一个新的问题。 您可以在训练阶段或之后启动Tensorboard。为此,请在neuroner文件夹的终端中运行: 这将启动一个Web服务器,该服务器可从您的Web浏览器访问http://127.0.0.1:6006" rel="nofollow">http://127.0.0.1:6006parameters.ini中的参数)。您可以使用
--parameters_filepath
命令行参数指定不同的配置文件。命令行参数没有默认值,除了指向parameters.ini的
。--parameters\filepath
之外。
添加新数据集
使用预先训练的模型
parameters.ini中的
预训练模型文件夹
参数设置为包含预训练模型的文件夹。配置文件中的以下参数也必须设置为与位于指定的pretrained\u model\u文件夹中的配置文件中的值相同的值:
2
# For CPU support (no GPU support):
pip3 install pyneuroner[cpu]
# For GPU support:
pip3 install pyneuroner[gpu]
共享预先训练的模型
neuroner/prepare_pretrained_model.py
脚本,以便于准备用于共享的预训练模型。要使用脚本,只需在脚本中指定output_folder_name
、epoch_number
和model_name
参数。删除令牌映射=真
标记预训练嵌入文件路径和设置来完成。
冻结令牌嵌入=真
使用Tensorboard
3
# For CPU support (no GPU support):
pip3 install pyneuroner[cpu]
# For GPU support:
pip3 install pyneuroner[gpu]
引文
如果您在出版物中使用Neuroner,请引用本文
# For CPU support (no GPU support):
pip3 install pyneuroner[cpu]
# For GPU support:
pip3 install pyneuroner[gpu]
4
neuroner中使用的神经网络体系结构在本文中进行了描述。
# For CPU support (no GPU support):
pip3 install pyneuroner[cpu]
# For GPU support:
pip3 install pyneuroner[gpu]
5