stanza

GitHub
7.8k 941 非常简单 6 次阅读 昨天NOASSERTION开发框架语言模型
AI 解读 由 AI 自动生成,仅供参考

Stanza 是斯坦福大学自然语言处理小组推出的官方 Python 库,旨在为多语言自然语言处理提供一站式解决方案。它涵盖了分词、句子分割、命名实体识别及句法分析等核心功能,支持全球 60 多种人类语言。

过去,开发者在不同语言间切换 NLP 模型往往面临接口不一致和部署繁琐的难题,Stanza 通过统一的 Python 接口简化了这一流程。它不仅集成了基于 PyTorch 的高效神经流水线,还能无缝调用经典的 Java Stanford CoreNLP 软件,兼顾了性能与兼容性。

特别值得一提的是,Stanza 近期推出了针对生物医学和临床领域的专用模型包,极大地便利了医疗文本的分析工作。无论是希望快速搭建多语言文本处理系统的开发者,还是需要进行深度语言结构研究的科研人员,都能从中受益。其开源且持续维护的特性,使其成为当前多语言 NLP 任务中值得信赖的选择。

使用场景

某跨国医疗科技公司正在构建自动化病历分析系统,需从多国患者的电子病历中提取疾病名称、药物及症状等关键实体。

没有 stanza 时

  • 需要为英语、中文、西班牙语等不同语言单独集成各自的开源库,代码维护极其繁琐
  • 通用命名实体识别模型无法准确理解专业医学术语,导致大量关键诊断信息被误判或遗漏
  • 若使用 Java CoreNLP 则需配置复杂的本地环境,在 Python 项目中调用存在兼容性风险
  • 各语言的分词与句法分析标准不一,难以统一后续的数据清洗与结构化存储逻辑

使用 stanza 后

  • 通过单一接口即可支持 60 多种语言,无需切换底层库即可实现统一的文本预处理流程
  • 直接调用内置的生物医药模型包,显著提升了对专业术语和临床实体的识别准确率与召回率
  • 纯 Python 实现简化了安装与部署,直接加载预训练模型即可快速运行,避免了环境依赖问题
  • 输出格式标准化且包含丰富的句法树信息,便于将多语言解析结果无缝接入下游数据分析管道

stanza 通过提供统一的多语言神经 NLP 流水线,大幅降低了跨语言医疗文本处理的开发门槛与实施成本。

运行环境要求

操作系统
  • 未说明
GPU

未说明

内存

未说明

依赖
notes首次运行需自动下载语言模型文件;支持 Java CoreNLP 集成(需配置环境变量);建议批量处理文档以提升性能;训练模型需克隆源码并准备特定格式数据;Conda 安装暂不支持 Python 3.10
python3.6+
torch>=1.3.0
requests
stanza hero image

快速开始

Stanza: 一种用于多种人类语言的 Python NLP 库

斯坦福 NLP 小组的官方 Python 自然语言处理(NLP)库。它支持在 60 多种语言上运行各种准确的自然语言处理工具,并允许从 Python 访问 Java Stanford CoreNLP 软件。详细信息请访问我们的 官方网站

🔥  现在提供了一组新的生物医学临床英语模型包,为从生物医学文献文本和临床笔记中进行句法分析和命名实体识别(NER)提供了无缝体验。更多信息,请查看我们的 生物医学模型文档页面

引用

如果您在研究中使用本库,请引用我们的 ACL2020 Stanza 系统演示论文

@inproceedings{qi2020stanza,
    title={Stanza: A {Python} Natural Language Processing Toolkit for Many Human Languages},
    author={Qi, Peng and Zhang, Yuhao and Zhang, Yuhui and Bolton, Jason and Manning, Christopher D.},
    booktitle = "Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics: System Demonstrations",
    year={2020}
}

如果您使用了我们的生物医学和临床模型,也请引用我们的 Stanza 生物医学模型描述论文

@article{zhang2021biomedical,
    author = {Zhang, Yuhao and Zhang, Yuhui and Qi, Peng and Manning, Christopher D and Langlotz, Curtis P},
    title = {Biomedical and clinical {E}nglish model packages for the {S}tanza {P}ython {NLP} library},
    journal = {Journal of the American Medical Informatics Association},
    year = {2021},
    month = {06},
    issn = {1527-974X}
}

本仓库中神经流水线的 PyTorch 实现归功于 Peng Qi (@qipeng)、Yuhao Zhang (@yuhaozhang) 和 Yuhui Zhang (@yuhui-zh15),并得到了 Jason Bolton (@j38)、Tim Dozat (@tdozat) 和 John Bauer (@AngledLuffa) 的帮助。本仓库的维护目前由 John Bauer 领导。

如果您通过 Stanza 使用 CoreNLP 软件,请按照 此处 所述引用 CoreNLP 软件包及相关模块(“在论文中引用 Stanford CoreNLP")。CoreNLP 客户端主要由 Arun Chaganty 编写,Jason Bolton 牵头将这两个项目合并在一起。

如果您使用了 CoreNLP 中的 Semgrex 或 Ssurgeon 部分,请引用 我们关于 Semgrex 和 Ssurgeon 的 GURT 论文

@inproceedings{bauer-etal-2023-semgrex,
    title = "Semgrex and Ssurgeon, Searching and Manipulating Dependency Graphs",
    author = "Bauer, John  and
      Kiddon, Chlo{\'e}  and
      Yeh, Eric  and
      Shan, Alex  and
      D. Manning, Christopher",
    booktitle = "Proceedings of the 21st International Workshop on Treebanks and Linguistic Theories (TLT, GURT/SyntaxFest 2023)",
    month = mar,
    year = "2023",
    address = "Washington, D.C.",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/2023.tlt-1.7",
    pages = "67--73",
    abstract = "Searching dependency graphs and manipulating them can be a time consuming and challenging task to get right. We document Semgrex, a system for searching dependency graphs, and introduce Ssurgeon, a system for manipulating the output of Semgrex. The compact language used by these systems allows for easy command line or API processing of dependencies. Additionally, integration with publicly released toolkits in Java and Python allows for searching text relations and attributes over natural text.",
}

问题与使用问答

要提问、报告问题或请求功能 🤔,请使用 GitHub Issue Tracker。在创建新问题之前,请务必搜索可能解决您问题的现有问题,或访问我们网站上的 常见问题解答 (FAQ) 页面

贡献给 Stanza

我们欢迎社区以 Bug 修复 🛠️ 和功能增强 💡 的形式向 Stanza 做出贡献!如果您想贡献,请先阅读 我们的贡献指南

安装

pip

Stanza 支持 Python 3.6 或更高版本。我们建议您通过 pip(Python 包管理器)安装 Stanza。要安装,只需运行:

pip install stanza

这应该也能帮助解析 Stanza 的所有依赖项,例如 PyTorch 1.3.0 或更高版本。

如果您当前已安装了旧版本的 stanza,请使用:

pip install stanza -U

Anaconda

要通过 Anaconda 安装 Stanza,请使用以下 conda 命令:

conda install -c stanfordnlp stanza

请注意,目前通过 Anaconda 安装 Stanza 不适用于 Python 3.10。对于 Python 3.10,请使用 pip 安装。

从源码

或者,您也可以从该 git 仓库的源码进行安装,这将使您在 Stanza 基础上进行开发具有更高的灵活性。对于此选项,请运行

git clone https://github.com/stanfordnlp/stanza.git
cd stanza
pip install -e .

运行 Stanza

开始使用神经流水线 (neural pipeline)

要运行您的第一个 Stanza 流水线,只需在 Python 交互式解释器中按照以下步骤操作:

>>> import stanza
>>> stanza.download('en')       # Optional: pre-download English models (Pipeline can auto-download if needed)
>>> nlp = stanza.Pipeline('en') # This sets up a default neural pipeline in English
>>> doc = nlp("Barack Obama was born in Hawaii. He was elected president in 2008.")
>>> doc.sentences[0].print_dependencies()

如果您遇到 requests.exceptions.ConnectionError 错误,请尝试使用代理:

>>> import stanza
>>> proxies = {'http': 'http://ip:port', 'https': 'http://ip:port'}
>>> stanza.download('en', proxies=proxies)  # Optional: pre-download English models (Pipeline can auto-download if needed)
>>> nlp = stanza.Pipeline('en')             # This sets up a default neural pipeline in English
>>> doc = nlp("Barack Obama was born in Hawaii. He was elected president in 2008.")
>>> doc.sentences[0].print_dependencies()

最后一条命令将打印输入字符串(或 Document(即 Stanza 中的表示方式))中第一句话的单词,以及该句子在 Universal Dependencies (通用依存关系) 解析中支配该单词的索引(即其“头”),同时还包括单词之间的依赖关系。输出结果应如下所示:

('Barack', '4', 'nsubj:pass')
('Obama', '1', 'flat')
('was', '4', 'aux:pass')
('born', '0', 'root')
('in', '6', 'case')
('Hawaii', '4', 'obl')
('.', '4', 'punct')

有关更多详细信息,请参阅 我们的入门指南

访问 Java Stanford CoreNLP 软件

除了神经流水线外,该软件包还包含一个官方封装器,用于通过 Python 代码访问 Java Stanford CoreNLP 软件。

需要进行一些初始设置步骤。

  • 下载 Stanford CoreNLP 和您希望使用的语言模型
  • 将模型 jar 文件放入分发文件夹
  • 通过设置 CORENLP_HOME 环境变量来告知 Python 代码 Stanford CoreNLP 的位置(例如,在 *nix 系统中):export CORENLP_HOME=/path/to/stanford-corenlp-4.5.3

我们在文档中提供了 全面的示例,展示了如何通过 Stanza 使用 CoreNLP 并从中提取各种标注信息。

在线 Colab 笔记本

为了帮助您快速上手,我们还在 demo 文件夹中提供了交互式的 Jupyter 笔记本。您也可以打开这些笔记本并在 Google Colab 上交互式地运行它们。要查看所有可用的笔记本,请遵循以下步骤:

  • 前往 Google Colab 网站
  • 导航至 File -> Open notebook,并在弹出菜单中选择 GitHub
  • 请注意,您不需要授予 Colab 对您 GitHub 账户的访问权限
  • 在搜索栏中输入 stanfordnlp/stanza,然后按回车键

神经流水线的预训练模型

我们目前提供所有 Universal Dependencies 树库 v2.8 的模型,以及一些广泛使用语言的命名实体识别 (NER) 模型。您可以在此处找到下载和使用这些模型的说明 here

批处理以最大化流水线速度

为了最大化速度性能,必须对文档批次运行流水线。逐句运行 for 循环将会非常慢。目前最好的方法是将文档连接在一起,每个文档之间用空行分隔(即两个换行符 \n\n)。分词器会将空行识别为句子断点。我们正在积极改进多文档处理功能。

训练您自己的神经流水线

本库中的所有神经模块都可以使用您自己的数据进行训练。分词器、多词单元 (MWT) 扩展器、词性 (POS)/形态特征标注器、词形还原器 (lemmatizer) 和依存解析器 (dependency parser) 需要 CoNLL-U 格式的数据,而 NER 模型则需要 BIOES 格式。目前,我们不支持通过 Pipeline 接口进行模型训练。因此,要训练您自己的模型,您需要克隆此 git 仓库并从源代码运行训练。

有关如何训练和评估您自己模型的详细逐步指导,请访问我们的 训练文档

许可证

Stanza 根据 Apache License, Version 2.0 发布。有关更多详细信息,请参阅 LICENSE 文件。

版本历史

v1.11.12026/02/26
v1.11.02025/10/05
v1.10.12024/12/29
v1.10.02024/12/23
v1.9.22024/09/12
v1.9.12024/09/12
v1.9.02024/09/12
v1.8.22024/04/20
v1.8.12024/03/01
v1.8.02024/02/25
v1.7.02023/12/03
v1.6.12023/10/06
v1.6.02023/10/03
v1.5.12023/09/08
v1.5.02023/03/14
v1.4.22022/09/15
v1.4.12022/09/14
v1.4.02022/04/23
v1.3.02021/10/06
v1.2.32021/08/09

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

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 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架