ltp

GitHub
5.2k 1.1k 简单 1 次阅读 4天前语言模型开发框架
AI 解读 由 AI 自动生成,仅供参考

LTP(Language Technology Platform)是由哈工大社会计算与信息检索研究中心研发的开源中文自然语言处理平台。它专为解决中文文本理解中的基础难题而生,能够一站式完成分词、词性标注、命名实体识别、句法分析及语义角色标注等六大核心任务,帮助用户将非结构化的中文文本转化为计算机可理解的结构化数据。

无论是需要快速集成 NLP 能力的开发者,还是致力于语言模型研究的研究人员,亦或是希望深入理解中文计算原理的学习者,都能从 LTP 中获益。其独特之处在于采用了多任务学习框架,通过共享预训练模型捕捉不同任务间的共通知识,并引入知识蒸馏技术,使模型在保持高精度的同时更加高效。特别是在最新的 4.2.0 版本中,团队利用 Rust 重写了底层算法,在准确率媲美前代的基础上,推理速度提升了 3.55 倍,开启多线程后更是高达 17 倍以上,极大地满足了高并发场景下的实时处理需求。此外,LTP 还提供了 Python 和 Rust 等多种语言的友好接口及可视化工具,让复杂的语言分析过程变得简单直观。

使用场景

某电商公司的数据团队需要每天处理数万条中文用户评论,以提取产品优缺点并生成结构化报告。

没有 ltp 时

  • 分词与词性标注需拼接多个独立开源库,环境依赖冲突频繁,维护成本极高。
  • 缺乏统一的句法与语义分析能力,难以精准识别“不喜欢电池但喜欢屏幕”这类复杂转折逻辑。
  • 基于规则的正则匹配误报率高,无法区分“苹果”是指水果还是手机品牌,导致实体识别混乱。
  • 单机处理速度缓慢,面对海量数据时往往需要数小时才能完成一次全量分析,严重拖累业务迭代。

使用 ltp 后

  • 通过 ltp 一站式调用分词、词性、命名实体识别等六大核心任务,部署架构简化,代码量减少 60%。
  • 利用其共享预训练模型的多任务框架,精准解析长难句的依存关系,准确捕捉用户情感倾向的细微差别。
  • 内置的神经语义角色标注功能有效消歧,将“苹果”在上下文中正确归类为品牌实体,大幅提升数据可用性。
  • 启用 ltp 的 Rust 加速引擎后,推理速度提升至旧方案的 3.5 倍以上,多线程模式下更是实现近 17 倍的性能飞跃,分钟级即可完成日更任务。

ltp 凭借统一的多任务架构与极致的推理性能,让中文文本的深度结构化分析变得高效且触手可及。

运行环境要求

操作系统
  • 未说明
GPU
  • 可选
  • 支持 CUDA 加速(代码示例显示若 torch.cuda.is_available() 可移至 GPU),具体显卡型号、显存大小及 CUDA 版本未在文档中明确说明
内存

未说明

依赖
notes1. 提供两种模型架构:基于 PyTorch 的深度学习模型(支持 6 大任务)和基于 Rust 重写的感知机算法模型(仅支持分词、词性、命名实体,速度极快)。2. 模型默认从 Huggingface Hub 自动下载,国内用户可能需要代理或使用镜像源。3. 需安装 git-lfs 以通过 git 克隆方式下载大型模型文件。4. 商业使用需付费,学术使用免费但需引用论文。
python未说明
torch
transformers
ltp
ltp-core
ltp-extension
ltp hero image

快速开始

代码大小 贡献者 最近提交

语言 版本
Python LTP LTP-Core LTP-Extension
Rust LTP

LTP 4

LTP(Language Technology Platform) 提供了一系列中文自然语言处理工具,用户可以使用这些工具对于中文文本进行分词、词性标注、句法分析等等工作。

引用

如果您在工作中使用了 LTP,您可以引用这篇论文

@inproceedings{che-etal-2021-n,
    title = "N-{LTP}: An Open-source Neural Language Technology Platform for {C}hinese",
    author = "Che, Wanxiang  and
      Feng, Yunlong  and
      Qin, Libo  and
      Liu, Ting",
    booktitle = "Proceedings of the 2021 Conference on Empirical Methods in Natural Language Processing: System Demonstrations",
    month = nov,
    year = "2021",
    address = "Online and Punta Cana, Dominican Republic",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/2021.emnlp-demo.6",
    doi = "10.18653/v1/2021.emnlp-demo.6",
    pages = "42--49",
    abstract = "We introduce N-LTP, an open-source neural language technology platform supporting six fundamental Chinese NLP tasks: lexical analysis (Chinese word segmentation, part-of-speech tagging, and named entity recognition), syntactic parsing (dependency parsing), and semantic parsing (semantic dependency parsing and semantic role labeling). Unlike the existing state-of-the-art toolkits, such as Stanza, that adopt an independent model for each task, N-LTP adopts the multi-task framework by using a shared pre-trained model, which has the advantage of capturing the shared knowledge across relevant Chinese tasks. In addition, a knowledge distillation method (Clark et al., 2019) where the single-task model teaches the multi-task model is further introduced to encourage the multi-task model to surpass its single-task teacher. Finally, we provide a collection of easy-to-use APIs and a visualization tool to make users to use and view the processing results more easily and directly. To the best of our knowledge, this is the first toolkit to support six Chinese NLP fundamental tasks. Source code, documentation, and pre-trained models are available at https://github.com/HIT-SCIR/ltp.",
}

参考书: 由哈工大社会计算与信息检索研究中心(HIT-SCIR)的多位学者共同编著的《自然语言处理:基于预训练模型的方法 》(作者:车万翔、郭江、崔一鸣;主审:刘挺)一书现已正式出版,该书重点介绍了新的基于预训练模型的自然语言处理技术,包括基础知识、预训练词向量和预trained模型三大部分,可供广大 LTP 用户学习参考。

更新说明

  • 4.2.0
    • [结构性变化] 将 LTP 拆分成 2 个部分,维护和训练更方便,结构更清晰
      • [Legacy 模型] 针对广大用户对于推理速度的需求,使用 Rust 重写了基于感知机的算法,准确率与 LTP3 版本相当,速度则是 LTP v3 的 3.55 倍,开启多线程更可获得 17.17 倍的速度提升,但目前仅支持分词、词性、命名实体三大任务
      • [深度学习模型] 即基于 PyTorch 实现的深度学习模型,支持全部的 6 大任务(分词/词性/命名实体/语义角色/依存句法/语义依存)
    • [其他改进] 改进了模型训练方法
      • [共同] 提供了训练脚本和训练样例,使得用户能够更方便地使用私有的数据,自行训练个性化的模型
      • [深度学习模型] 采用 hydra 对训练过程进行配置,方便广大用户修改模型训练参数以及对 LTP 进行扩展(比如使用其他包中的 Module)
    • [其他变化] 分词、依存句法分析 (Eisner) 和 语义依存分析 (Eisner) 任务的解码算法使用 Rust 实现,速度更快
    • [新特性] 模型上传至 Huggingface Hub,支持自动下载,下载速度更快,并且支持用户自行上传自己训练的模型供 LTP 进行推理使用
    • [破坏性变更] 改用 Pipeline API 进行推理,方便后续进行更深入的性能优化(如 SDP 和 SDPG 很大一部分是重叠的,重用可以加快推理速度),使用说明参见Github 快速使用部分
  • 4.1.0
    • 提供了自定义分词等功能
    • 修复了一些 bug
  • 4.0.0
    • 基于 Pytorch 开发,原生 Python 接口
    • 可根据需要自由选择不同速度和指标的模型
    • 分词、词性、命名实体、依存句法、语义角色、语义依存 6 大任务

快速使用

Python

# 方法 1: 使用清华源安装 LTP
# 1. 安装 PyTorch 和 Transformers 依赖
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch transformers
# 2. 安装 LTP
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ltp ltp-core ltp-extension

# 方法 2: 先全局换源,再安装 LTP
# 1. 全球换 TUNA 源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 2. 安装 PyTorch 和 Transformers 依赖
pip install torch transformers
# 3. 安装 LTP
pip install ltp ltp-core ltp-extension

注: 如果遇到任何错误,请尝试使用上述命令重新安装 ltp,如果依然报错,请在 Github issues 中反馈。

import torch
from ltp import LTP

# 默认 huggingface 下载,可能需要代理

ltp = LTP("LTP/small")  # 默认加载 Small 模型
                        # 也可以传入模型的路径,ltp = LTP("/path/to/your/model")
                        # /path/to/your/model 应当存在 config.json 和其他模型文件

# 将模型移动到 GPU 上
if torch.cuda.is_available():
    # ltp.cuda()
    ltp.to("cuda")

# 自定义词表
ltp.add_word("汤姆去", freq=2)
ltp.add_words(["外套", "外衣"], freq=2)

#  分词 cws、词性 pos、命名实体标注 ner、语义角色标注 srl、依存句法分析 dep、语义依存分析树 sdp、语义依存分析图 sdpg
output = ltp.pipeline(["他叫汤姆去拿外衣。"], tasks=["cws", "pos", "ner", "srl", "dep", "sdp", "sdpg"])
# 使用字典格式作为返回结果
print(output.cws)  # print(output[0]) / print(output['cws']) # 也可以使用下标访问
print(output.pos)
print(output.sdp)

# 使用感知机算法实现的分词、词性和命名实体识别,速度比较快,但是精度略低
ltp = LTP("LTP/legacy")
# cws, pos, ner = ltp.pipeline(["他叫汤姆去拿外衣。"], tasks=["cws", "ner"]).to_tuple() # error: NER 需要 词性标注任务的结果
cws, pos, ner = ltp.pipeline(["他叫汤姆去拿外衣。"], tasks=["cws", "pos", "ner"]).to_tuple()  # to tuple 可以自动转换为元组格式
# 使用元组格式作为返回结果
print(cws, pos, ner)

详细说明

Rust

use std::fs::File;
use itertools::multizip;
use ltp::{CWSModel, POSModel, NERModel, ModelSerde, Format, Codec};

fn main() -> Result<(), Box<dyn std::error::Error>> {
  let file = File::open("data/legacy-models/cws_model.bin")?;
  let cws: CWSModel = ModelSerde::load(file, Format::AVRO(Codec::Deflate))?;
  let file = File::open("data/legacy-models/pos_model.bin")?;
  let pos: POSModel = ModelSerde::load(file, Format::AVRO(Codec::Deflate))?;
  let file = File::open("data/legacy-models/ner_model.bin")?;
  let ner: NERModel = ModelSerde::load(file, Format::AVRO(Codec::Deflate))?;

  let words = cws.predict("他叫汤姆去拿外衣。")?;
  let pos = pos.predict(&words)?;
  let ner = ner.predict((&words, &pos))?;

  for (w, p, n) in multizip((words, pos, ner)) {
    println!("{}/{}/{}", w, p, n);
  }

  Ok(())
}

模型性能以及下载地址

深度学习模型(🤗HF/🤗HF-mirror) 分词 词性 命名实体 语义角色 依存句法 语义依存 速度(句/S)
🤗Base 🤗Base-mirror 98.7 98.5 95.4 80.6 89.5 75.2 39.12
mieściBase1 mieściBase1-mirror 99.22 98.73 96.39 79.28 89.57 76.57 --.--
mieściBase2 mieściBase2-mirror 99.18 98.69 95.97 79.49 90.19 76.62 --.--
mieściSmall mieściSmall-mirror 98.4 98.2 94.3 78.4 88.3 74.7 43.13
mieściTiny mieściTiny-mirror 96.8 97.1 91.6 70.9 83.8 70.1 53.22
感知机算法模型(🤗HF/🤗HF-mirror) 分词 词性 命名实体 速度(句/s) 备注
mieściLegacy mieściLegacy-mirror 97.93 98.41 94.28 21581.48 性能详情

注:感知机算法速度为开启 16 线程速度

如何下载对应的模型

# 使用 HTTP 链接下载
# 确保已安装 git-lfs (https://git-lfs.com)
git lfs install
git clone https://huggingface.co/LTP/base

# 使用 ssh 下载
# 确保已安装 git-lfs (https://git-lfs.com)
git lfs install
git clone git@hf.co:LTP/base

# 下载压缩包
wget http://39.96.43.154/ltp/v4/base.tgz
tar -zxvf base.tgz -C base

如何使用下载的模型

from ltp import LTP

# 在路径中给出模型下载或解压后的路径
# 例如:base 模型的文件夹路径为 "path/to/base"
#      "path/to/base" 下应当存在 "config.json"
ltp = LTP("path/to/base")

构建 Wheel 包

make bdist

其他语言绑定

感知机算法

深度学习算法

作者信息

开源协议

  1. 语言技术平台面向国内外大学、中科院各研究所以及个人研究者免费开放源代码,但如上述机构和个人将该平台用于商业目的(如企业合作项目等)则需要付费。
  2. 除上述机构以外的企事业单位,如申请使用该平台,需付费。
  3. 凡涉及付费问题,请发邮件到 car@ir.hit.edu.cn 洽商。
  4. 如果您在 LTP 基础上发表论文或取得科研成果,请您在发表论文和申报成果时声明“使用了哈工大社会计算与信息检索研究中心研制的语言技术平台(LTP)”. 同时,发信给car@ir.hit.edu.cn,说明发表论文或申报成果的题目、出处等。

版本历史

v4.2.02022/08/15
v4.1.5.post22021/07/23
v4.1.5.post12021/07/07
v4.1.52021/06/28
v4.1.4.post12021/05/17
v4.1.42021/04/06
v4.1.3.post12020/12/28
v4.1.32020/12/28
v4.1.22020/12/23
v4.1.12020/12/07
v4.1.02020/12/01
v4.1.0.Beta2020/12/01
v4.0.102020/11/16
v4.0.92020/09/03
v4.0.82020/08/25
v4.0.72020/07/30
v4.0.6.post12020/07/26
v4.0.62020/07/25
v4.0.5.post12020/07/22
v4.0.52020/07/21

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|4天前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|5天前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

148.6k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.1k|★★☆☆☆|2天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|今天
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|3天前
插件开发框架