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。它內建數十種預訓練模型,涵蓋從分詞到語義分析的各項任務,支援自定義詞典,專為研究原型設計與生產環境部署而打造。
相關
- 專案
- 專案
- 專案
- 專案