NeuroNER
NeuroNER 是一款基于神经网络的命名实体识别(NER)开源工具,旨在从非结构化文本中精准提取人名、地名、机构名等关键信息。它有效解决了传统方法在复杂语境下识别准确率不足的问题,能够轻松处理医疗记录、新闻文章等多种领域的文本数据,并输出达到业界领先水平的识别结果。
这款工具特别适合自然语言处理领域的研究人员、算法工程师以及需要构建文本分析应用的开发者使用。无论是进行学术研究、模型训练,还是快速部署生产环境中的实体抽取任务,NeuroNER 都提供了灵活且高效的解决方案。
其技术亮点在于深度集成了 TensorFlow 框架,支持 CPU 与 GPU 加速运行,确保训练与推理的高效性。同时,它内置了对 CoNLL-2003、i2b2 及 MIMIC 等经典数据集的支持,允许用户一键加载预训练模型或自定义数据集。此外,NeuroNER 还可选集成 BRAT 标注工具,方便用户直观地创建标注或可视化预测结果,配合 TensorBoard 更能实时监控模型训练状态,极大地降低了高性能 NER 系统的使用门槛。
使用场景
某医疗科技公司的数据团队正致力于从海量电子病历(如 MIMIC-III 数据库)中自动提取患者隐私信息(如姓名、日期、医院编号),以构建符合脱敏标准的科研数据集。
没有 NeuroNER 时
- 依赖人工逐条阅读病历进行标注,处理数万份文档耗时数周,人力成本极高且难以规模化。
- 使用传统正则表达式匹配特定格式,无法识别上下文相关的实体(如将“无发热”误判为症状),导致漏检率高。
- 缺乏统一的神经网络评估框架,不同成员开发的脚本效果参差不齐,难以复现业界领先的准确率。
- 模型训练环境配置复杂,需手动整合词向量(Word Embeddings)与标注工具,新手上手门槛极高。
使用 NeuroNER 后
- 直接调用预训练的
mimic_glove_spacy_bioes模型,几分钟内即可完成万级病历的自动化实体识别与脱敏。 - 基于深度神经网络理解语义上下文,精准区分否定句中的医学术语,显著提升了命名实体识别(NER)的召回率与精确度。
- 内置 CoNLL-2003 等标准评估脚本及 TensorBoard 可视化支持,团队可快速量化模型性能并迭代优化。
- 通过简单的
pip命令一键部署 CPU/GPU 版本,并自动下载 GloVe 词向量与 Spacy 语言模块,大幅缩短环境搭建时间。
NeuroNER 将原本繁琐的医疗文本结构化工作转化为高效的自动化流程,让研发团队能专注于高价值的医学数据分析而非基础清洗。
运行环境要求
- Linux
- macOS
- Windows
- 非必需
- 若使用 GPU,需满足 TensorFlow 官方列出的要求(通常指 NVIDIA GPU 及对应的 CUDA/cuDNN 版本),具体型号和显存未说明
- 若无 GPU 可使用 CPU 版本
未说明

快速开始
NeuroNER
NeuroNER 是一款用于命名实体识别(NER)的程序。官网:neuroner.com。
本页面提供了安装和使用 NeuroNER 的逐步指南。
目录
要求
NeuroNER 依赖于 Python 3、TensorFlow 1.0+,以及可选的 BRAT:
- Python 3:NeuroNER 不支持 Python 2.x。在 Windows 系统上,必须使用 Python 3.6 64 位或更高版本。
- TensorFlow 是一个机器学习库。NeuroNER 使用它来构建基于神经网络的 NER 引擎。官方网站:https://www.tensorflow.org
- BRAT(可选)是一个基于 Web 的标注工具。只有当你希望方便地创建标注或查看 NeuroNER 的预测结果时,才需要安装它。官方网站:http://brat.nlplab.org
安装
若要支持 GPU,必须满足 TensorFlow 的 GPU 要求。如果您的系统不满足这些要求,则应使用 CPU 版本。安装 neuroner 的命令如下:
# 仅支持 CPU(不支持 GPU):
pip3 install pyneuroner[cpu]
# 支持 GPU:
pip3 install pyneuroner[gpu]
此外,您还需要下载一些支持包。
- SpaCy 的英语语言模块:
# 下载 SpaCy 英语模块
python -m spacy download en
- 从 http://neuroner.com/data/word_vectors/glove.6B.100d.zip 下载词嵌入,并将其解压到
./data/word_vectors文件夹中:
# 获取词嵌入
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/
- 加载示例数据集。可以通过在 Python 解释器中调用
neuromodel.fetch_data()函数,或在命令行中使用--fetch_data参数来加载这些数据集。
# 从命令行加载数据集
neuroner --fetch_data=conll2003
neuroner --fetch_data=example_unannotated_texts
neuroner --fetch_data=i2b2_2014_deid
# 从 Python 解释器加载数据集
from neuroner import neuromodel
neuromodel.fetch_data('conll2003')
neuromodel.fetch_data('example_unannotated_texts')
neuromodel.fetch_data('i2b2_2014_deid')
- 加载预训练模型。可以通过在 Python 解释器中调用
neuromodel.fetch_model()函数,或在命令行中使用--fetch_trained_models参数来加载这些模型。
# 从命令行加载预训练模型
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
# 从 Python 解释器加载预训练模型
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 样式标注的工具。有关安装和使用说明,请参阅 BRAT 官网。
安装 Perl(平台相关)
Perl 是必需的,因为官方的 CoNLL-2003 评估脚本是用这种语言编写的:http://strawberryperl.com。对于 Unix 和 Mac OSX 系统,Perl 应该已经安装。而对于 Windows 系统,可能需要手动安装。
使用 NeuroNER
NeuroNER 可以通过命令行或 Python 解释器运行。
从 Python 解释器使用 NeuroNER
要从命令行使用 NeuroNER,首先使用所需的参数创建一个 neuromodel 实例,然后调用相关方法。其他参数可以在工作目录中的 parameters.ini 文件中设置。例如:
from neuroner import neuromodel
nn = neuromodel.NeuroNER(train_model=False, use_pretrained_model=True)
更多详细信息将在后续提供。
从命令行使用 NeuroNER
默认情况下,NeuroNER 配置为在 CoNLL-2003 数据集上进行训练和测试。使用默认设置运行 neuroner 将开始在 CoNLL-2003 数据集上进行训练(测试集上的 F1 分数应在 0.90 左右,与当前最先进的系统相当)。要开始训练:
# 如果已安装 tensorflow,则使用 CPU;如果已安装 tensorflow-gpu,则使用 GPU:
neuroner
# 如果已安装 tensorflow-gpu,但只想使用 CPU:
CUDA_VISIBLE_DEVICES="" neuroner
# 如果已安装 tensorflow-gpu,但只想使用 GPU 1:
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 有三种运行模式:
- 训练模式(从零开始):数据集文件夹必须包含训练集和验证集。测试集和部署集是可选的。
- 训练模式(从预训练模型开始):数据集文件夹必须包含训练集和验证集。测试集和部署集是可选的。
- 预测模式(使用预训练模型):数据集文件夹必须包含测试集或部署集。
添加新的数据集
数据集可以采用 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:采用 CoNLL-2003 格式的标注数据集,包含 3 个文件(train.txt、valid.txt和test.txt)。data/example_unannotated_texts:采用 BRAT 格式的未标注数据集,包含 1 个文件夹(deploy/)。请注意,不包含标注的 BRAT 格式等同于纯文本。
使用预训练模型
要使用预训练模型,必须在配置文件 parameters.ini 中将 pretrained_model_folder 参数设置为包含预训练模型的文件夹。此外,还需将 parameters.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
在这种情况下,强烈建议使用一些外部预训练的词嵌入,并在训练过程中将其冻结,以获得较高的性能。这可以通过在训练期间的配置文件 parameters.ini 中指定 token_pretrained_embedding_filepath 并设置
freeze_token_embeddings = True
来实现。
如需分享预训练模型,请在 GitHub 仓库中 提交一个新的 issue。
使用 TensorBoard
您可以在训练阶段或训练结束后启动 TensorBoard。为此,在 NeuroNER 文件夹下打开终端并运行:
tensorboard --logdir=output
这将启动一个 Web 服务器,您可以通过浏览器访问 http://127.0.0.1:6006。
引用
如果您在论文或其他出版物中使用 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}
}
版本历史
1.0-dev22019/03/13常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器