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/finepos/ctbner/msradepsrl 等欄位 簡化後續處理流程
視覺化 基於控制台的樹狀結構視覺化,用於依存/語義結構 有助於除錯與教學
生產級就緒 經 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. 其他語言

GoJava 亦提供相同的客戶端函式庫;只需加入依賴項並使用伺服器 URL 與選用的 API 金鑰建立 HanLPClient 即可。


文件與社群


總結

HanLP 是一個成熟的多語言 NLP 函式庫,提供輕量級的 RESTful 服務與功能完整的原生 Python API。它內建數十種預訓練模型,涵蓋從分詞到語義分析的各項任務,支援自定義詞典,專為研究原型設計與生產環境部署而打造。

相關

  • 專案
  • 專案
  • 專案
  • 專案