hankcs/HanLP

中文分词 词性标注 命名实体识别 依存句法分析 成分句法分析 语义依存分析 语义角色标注 指代消解 风格转换 语义相似度 新词发现 关键词短语提取 自动摘要 文本分类聚类 拼音简繁转换 自然语言处理

HanLP – 다국어 자연어 처리 툴킷

소개 – HanLP는 다양한 언어에 대해 프로덕션급 NLP 모델을 제공하는 오픈 소스 Python 라이브러리(Java 및 Go 바인딩 포함)입니다. 경량 RESTful 서비스(수 KB 클라이언트, GPU 불필요)와 PyTorch 또는 TensorFlow 2.x에서 실행되는 모든 기능을 갖춘 네이티브 Python API를 모두 제공합니다. 이 프로젝트는 속도, 정확성, 쉬운 사용자 정의에 중점을 두고 있으며, 토큰화, 품사 태깅, NER, 의존/구성 구문 분석, 의미역 결정, AMR, 공지능, 텍스트 유사도, 요약, 스타일 변환, 감성 분석, 언어 감지 등을 다루는 수십 개의 사전 학습 모델을 번들로 제공합니다.


주요 기능 (README 참조)

기능 제공 방식 하이라이트
다국어 지원 130개 언어 모델 (중국어, 영어, 일본어, 러시아어, 프랑스어, 독일어 등) 언어 간 통합 API
공동 (다중 작업) 모델 하나의 모델로 최대 10개 작업 동시 수행 (예: 토큰화 + POS + NER + SRL + 의존 + 의미 의존 + 구성) 추론 속도 향상, 메모리 사용량 감소
단일 작업 모델 최고의 정확도가 필요할 때 각 작업별 고정밀 모델 제공 유연한 파이프라인 구성
두 가지 API 스타일 RESTful – 초소형 클라이언트, 모든 언어에서 작동, GPU 불필요 \n• 네이티브 – 로컬에서 무거운 모델을 로드하는 Python 라이브러리 (CPU/GPU/TPU) 배포 규모에 따라 선택
쉬운 사용자 정의 Trie 기반 사용자 사전, 규칙 기반 토큰 병합/분할, 불필요한 작업을 제거하여 모델 크기 축소 가능 새로운 도메인에 빠르게 적응
일관된 JSON 출력 모든 API는 tok/fine, pos/ctb, ner/msra, dep, srl 등의 필드를 포함하는 JSON 호환 Document 객체를 반환 다운스트림 처리 간소화
시각화 의존/의미 구조를 위한 콘솔 기반 트리 시각화 디버깅 및 교육에 유용
프로덕션 준비 완료 Linux/macOS/Windows에서 단위 테스트 완료, Python 3.6‑3.10 지원, GPU/TPU 선택 사항 실제 서비스에서 신뢰성 보장

일반적인 사용 사례

  • 다운스트림 ML을 위한 텍스트 전처리 파이프라인 (예: 분류 전 토큰화 + POS + NER).
  • 정보 추출: 뉴스, 금융 또는 법률 문서에서의 개체명 인식, 관계 추출 및 의미역 결정.
  • 다국어 콘텐츠 분석: 수십 개 언어에 걸친 감성 분석, 언어 감지 또는 핵심 구문 추출.
  • 학술 연구: 모델을 처음부터 구축하지 않고도 구문 분석, AMR 또는 공지능을 위한 빠른 베이스라인 모델로 활용.
  • 프로덕션 서비스: GPU 관리 없이 저지연 NLP가 필요한 모바일 앱이나 마이크로서비스에 RESTful 엔드포인트 노출.

시작하기

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는 경량 RESTful 서비스와 모든 기능을 갖춘 네이티브 Python API를 모두 제공하는 성숙한 다국어 NLP 라이브러리입니다. 토큰화부터 의미 분석까지 모든 작업을 위한 수십 개의 사전 학습 모델이 포함되어 있으며, 사용자 정의 사전을 지원하고 연구 프로토타이핑 및 프로덕션 배포를 위해 설계되었습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트