hankcs/HanLP
中文分词 词性标注 命名实体识别 依存句法分析 成分句法分析 语义依存分析 语义角色标注 指代消解 风格转换 语义相似度 新词发现 关键词短语提取 自动摘要 文本分类聚类 拼音简繁转换 自然语言处理
HanLP – 多语言自然语言处理工具包
简介 – HanLP 是一个开源的 Python 库(附带 Java 和 Go 绑定),为多种语言提供生产级的 NLP 模型。它同时提供轻量级的 RESTful 服务(仅需极小的客户端,无需 GPU)以及功能完整的 原生 Python API,可在 PyTorch 或 TensorFlow 2.x 上运行。该项目专注于速度、准确性与易于定制,并内置数十种预训练模型,涵盖分词、词性标注、命名实体识别 (NER)、依存/成分句法分析、语义角色标注、AMR、共指消解、文本相似度、摘要、风格转换、情感分析、语言检测等功能。
主要功能 (详见 README)
| 功能 | 提供方式 | 亮点 |
|---|---|---|
| 多语言支持 | 涵盖 130 种语言的模型(中文、英文、日文、俄文、法文、德文等) | 跨语言统一 API |
| 联合 (多任务) 模型 | 单一模型可同时执行多达 10 项任务(例如:分词 + 词性 + NER + SRL + 依存 + 语义依存 + 成分句法) | 推理速度更快,内存占用更低 |
| 单任务模型 | 当您需要最高准确度时,可选用各任务的高精度模型 | 灵活的管线组合 |
| 两种 API 风格 | • RESTful – 极小客户端,适用于任何语言,无需 GPU \n• 原生 – Python 库,在本地加载大型模型 (CPU/GPU/TPU) | 根据部署规模选择 |
| 易于定制 | 基于 Trie 的用户词典、基于规则的词汇合并/拆分,并可移除不需要的任务以缩减模型大小 | 快速适应新领域 |
| 一致的 JSON 输出 | 所有 API 皆返回 JSON 兼容的 Document 对象,包含 tok/fine、pos/ctb、ner/msra、dep、srl 等字段 |
简化后续处理流程 |
| 可视化 | 基于控制台的树状结构可视化,用于依存/语义结构 | 有助于调试与教学 |
| 生产级就绪 | 经 Linux/macOS/Windows 单元测试,支持 Python 3.6‑3.10,GPU/TPU 可选 | 适用于真实生产环境 |
典型应用场景
- 文本预处理管线:用于后续机器学习任务(例如:分类前的分词 + 词性 + NER)。
- 信息提取:如新闻、金融或法律文件中的命名实体识别、关系提取与语义角色标注。
- 多语言内容分析:跨数十种语言的情感分析、语言检测或关键词提取。
- 学术研究:无需从头训练模型,即可快速获取用于句法分析、AMR 或共指消解的基准模型。
- 生产服务:通过 RESTful 端点为移动应用程序或微服务提供低延迟的 NLP 功能,无需管理 GPU。
入门指南
1. 安装
# 原生 Python API (完整模型,GPU 可选)
pip install hanlp
# 轻量级 RESTful 客户端 (任何语言)
pip install hanlp_restful # Python 示例
2. Python 快速示例 (原生 API)
import hanlp
# 加载多语言联合模型 (小型中文 ELECTRA 主干)
HanLP = hanlp.load(
hanlp.pretrained.mtl.CLOSE_TOK_POS_NER_SRL_DEP_SDP_CON_ELECTRA_SMALL_ZH)
sentences = [
"2021年HanLPv2.1为生产环境带来次世代最先进的多语种NLP技术。",
"阿婆主来到北京立方庭参观自然语义科技公司。"
]
result = HanLP(sentences)
print(result) # JSON‑compatible output
HanLP.pretty_print() # visual console view
3. Python 快速示例 (RESTful API)
from hanlp_restful import HanLPClient
client = HanLPClient('https://www.hanlp.com/api', auth=None, language='zh')
print(client.parse("HanLP提供了强大的中文分词和命名实体识别功能。"))
4. 其他语言
Go 和 Java 亦提供相同的客户端库;只需加入依赖项并使用服务器 URL 与选用的 API 密钥创建 HanLPClient 即可。
文档与社区
- 文档与演示 – https://hanlp.hankcs.com/docs/ (包含各任务的 Jupyter notebooks)
- 模型目录 – https://hanlp.hankcs.com/docs/api/hanlp/pretrained/
- 论坛与论文 – https://bbs.hankcs.com/
- 引用 – 若您在研究中使用 HanLP,请引用 README 中链接的 EMNLP 2021 论文。
总结
HanLP 是一个成熟的多语言 NLP 库,提供轻量级的 RESTful 服务与功能完整的原生 Python API。它内置数十种预训练模型,涵盖从分词到语义分析的各项任务,支持自定义词典,专为研究原型设计与生产环境部署而打造。
相关
- 项目
- 项目
- 项目
- 项目