HanLP 使用教程:从安装到实战应用

HanLP 使用教程:从安装到实战应用

HanLP 是由hankcs开发的一款高效、多功能的中文自然语言处理(NLP)工具包,支持分词、词性标注、命名实体识别(NER)、依存句法分析、关键词提取、文本摘要等任务。本教程将详细介绍 HanLP 的安装、基本功能及实战应用。


1. HanLP 简介

HanLP 具有以下特点:
高性能:基于 PyTorch/TensorFlow 2.x 实现,速度极快
多语言支持:支持中文、英文、日文等
多功能:涵盖 NLP 常见任务(分词、NER、句法分析等)
预训练模型:提供多种预训练模型(如 BERT、ALBERT)
简单易用:Python API 友好,适合快速开发


2. 安装 HanLP

HanLP 支持 Python 3.6+,推荐使用 pip 安装:

pip install hanlp

如果需要 GPU 加速(推荐):

pip install hanlp[gpu]

3. 基本功能示例

(1) 分词(Word Segmentation)

import hanlp

# 加载预训练分词模型
tokenizer = hanlp.load(hanlp.pretrained.tok.COARSE_ELECTRA_SMALL_ZH)

text = "HanLP是一款优秀的中文自然语言处理工具包。"
tokens = tokenizer(text)
print(tokens)

输出

['HanLP', '是', '一款', '优秀', '的', '中文', '自然语言处理', '工具包', '。']

(2) 词性标注(Part-of-Speech Tagging)

tagger = hanlp.load(hanlp.pretrained.pos.CTB9_POS_ELECTRA_SMALL)
pos_tags = tagger(tokens)
print(list(zip(tokens, pos_tags)))

输出

[('HanLP', 'NR'), ('是', 'VC'), ('一款', 'CD'), ('优秀', 'JJ'), ('的', 'DEC'), ('中文', 'NN'), ('自然语言处理', 'NN'), ('工具包', 'NN'), ('。', 'PU')]

(3) 命名实体识别(NER)

recognizer = hanlp.load(hanlp.pretrained.ner.MSRA_NER_ELECTRA_SMALL_ZH)
entities = recognizer([tokens])
print(entities)

输出

[[('HanLP', 'ORGANIZATION')]]

(4) 依存句法分析(Dependency Parsing)

parser = hanlp.load(hanlp.pretrained.dep.CTB9_DEP_ELECTRA_SMALL)
dep_tree = parser([tokens])
print(dep_tree)

输出(可视化依存关系):

  HanLP ──► 是 (主谓关系)
  是 ──► 工具包 (动宾关系)
  一款 ──► 工具包 (定中关系)
  优秀 ──► 工具包 (定中关系)
  的 ──► 优秀 (右附加关系)
  中文 ──► 自然语言处理 (定中关系)
  自然语言处理 ──► 工具包 (定中关系)
  。 ──► 是 (标点符号)

4. 进阶功能

(1) 关键词提取(Keyphrase Extraction)

extractor = hanlp.load(hanlp.pretrained.keywords.TEXTRANK_ZH)
keywords = extractor(text, topk=3)
print(keywords)

输出

['自然语言处理', 'HanLP', '工具包']

(2) 文本摘要(Text Summarization)

summarizer = hanlp.load(hanlp.pretrained.summarization.LEMON_NEWS_ELECTRA_SMALL_ZH)
summary = summarizer(text, max_sentences=1)
print(summary)

输出

HanLP是一款优秀的中文自然语言处理工具包。

(3) 情感分析(Sentiment Analysis)

classifier = hanlp.load(hanlp.pretrained.classify.CHNSENTICORP_BERT_BASE_ZH)
sentiment = classifier("这家餐厅的服务很棒!")
print("积极" if sentiment else "消极")

输出

积极

5. 使用自定义模型

HanLP 支持加载本地或 Hugging Face 模型:

custom_model = hanlp.load("/path/to/your/model")

6. 常见问题

(1) 报错 CUDA out of memory

  • 原因:GPU 显存不足。
  • 解决
    hanlp.prefer_cpu()  # 强制使用 CPU
    

(2) 下载模型失败

  • 解决:手动下载模型并指定路径:
    hanlp.load("/path/to/model.zip")
    

(3) 如何提高分词精度?

  • 使用更大的模型:
    hanlp.load(hanlp.pretrained.tok.FINE_ELECTRA_LARGE_ZH)
    

7. 总结

任务代码示例
分词hanlp.load(hanlp.pretrained.tok.COARSE_ELECTRA_SMALL_ZH)(text)
词性标注hanlp.load(hanlp.pretrained.pos.CTB9_POS_ELECTRA_SMALL)(tokens)
NERhanlp.load(hanlp.pretrained.ner.MSRA_NER_ELECTRA_SMALL_ZH)([tokens])
依存分析hanlp.load(hanlp.pretrained.dep.CTB9_DEP_ELECTRA_SMALL)([tokens])
关键词提取hanlp.load(hanlp.pretrained.keywords.TEXTRANK_ZH)(text, topk=3)

📌 官方资源

掌握 HanLP 后,你可以轻松处理中文 NLP 任务!🚀 如果有问题,欢迎留言讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值