当前位置: 首页 > web >正文

【LangChain基础系列】深入全面掌握文本分类

文本分类是自然语言处理领域中的一个重要任务,旨在将文本数据自动归类到预定义的类别中。它是实现信息检索、智能推荐、情感分析等应用的基础技术之一。

应用场景

1. 垃圾邮件过滤 :自动识别并过滤垃圾邮件。
2. 情感分析 :分析用户评论或社交媒体内容的情感倾向。
3. 新闻分类 :将新闻文章自动分类到不同的主题类别。
4. 客户支持 :自动分类客户问题以便快速响应。
5. 文档管理 :自动分类和组织大量文档,便于检索。

情感分析实战-基础版

from langchain_core.prompts import PromptTemplate
from langchain_deepseek import ChatDeepSeek
from pydantic import BaseModel
from pydantic.fields import Fieldllm = ChatDeepSeek(model="deepseek-chat",temperature=0,max_tokens=None,timeout=None,max_retries=2,api_key="sk-37c6b1c6517141e9ae644c5ba1c81782",
)class Classification(BaseModel):emotion: str = Field(description="文本表达的情感")score: int = Field(description="文本情感的评分,分数越高,情感越积极")lang: str = Field(description="文本的语言")prompt = PromptTemplate.from_template(template="""请分析以下文本的情感,仅提取Classification里的信息。输入文本:{input}"""
)chain = prompt | llm.with_structured_output(Classification)res = chain.invoke({"input": "我吃过饭了"})print(res)

输入:我很快乐

输出:emotion='快乐' score=90 lang='zh'

输入:我吃过饭了

输出:emotion='中性' score=5 lang='zh'

输入:我很伤心

输出:emotion='伤心' score=1 lang='zh'

 从输出结果来看,结果是正确的,但是输出的值不确定,我们可以通过指定枚举来使结果更确定。

情感分析实战-进阶版

from langchain_core.prompts import PromptTemplate
from langchain_deepseek import ChatDeepSeek
from pydantic import BaseModel
from pydantic.fields import Fieldllm = ChatDeepSeek(model="deepseek-chat",temperature=0,max_tokens=None,timeout=None,max_retries=2,api_key="sk-37c6b1c6517141e9ae644c5ba1c81782",
)class Classification(BaseModel):emotion: str = Field(..., enum=['积极', '消极', '中性'], description="文本表达的情感")score: int = Field(..., enum=[1,2,3], description="文本情感的评分,分数越高,情感越积极")lang: str = Field(..., enum=['中文', '英文'], description="文本的语言")prompt = PromptTemplate.from_template(template="""请分析以下文本的情感,仅提取Classification里的信息。输入文本:{input}"""
)chain = prompt | llm.with_structured_output(Classification)res = chain.invoke({"input": "我很伤心"})print(res)

输入:我很快乐

输出:emotion='积极' score=3 lang='中文'

输入:我吃过饭了

输出:emotion='中性' score=2 lang='中文'

输入:I am so sad.

输出:emotion='消极' score=1 lang='英文'

 从输出结果来看,结果正确并且使确定的,这就方便我们后续获取字段的确定性。

同样的道理,我们也可以使用这种方式进行其他场景的应用。

http://www.xdnf.cn/news/4755.html

相关文章:

  • pyorch中tensor的理解与操作(一)
  • java后端知识点复习
  • 图表制作-基础面积图
  • 在openEuler系统下编译安装Redis数据库指南
  • 「美业疗愈服务」从“表层美”到“身心整合”的行业变革︳博弈美业疗愈系统分享
  • GoogLeNet详解
  • 如何通过grep 排除“INTEGER: 1”
  • IoT平台和AIoT平台的区别
  • 如何使用极狐GitLab 软件包仓库功能托管 ruby?
  • 基于机器学习的攻击检测与缓解,以及 SDN 环境中的多控制器布局优化
  • Spring Boot + Vue 实现在线视频教育平台
  • 实践005-Gitlab CICD全项目整合
  • git 合并分支
  • 网工实验——OSPF配置
  • 理解 WKWebView 的 handlesURLScheme: 方法:判断 URL 协议是否由 WebView 默认处理
  • 基于STM32、HAL库的CH340N USB转UART收发器 驱动程序设计
  • Chroma:一个开源的8.9B文生图模型
  • SSM框架(Spring + Spring MVC + MyBatis)整合配置的详细步骤
  • Arm核的Ubuntu系统上安装Wireshark
  • MySQL如何进行调优
  • AquaCrop 模型新视角:多技术助力农业精准水管理
  • 室内定位误差分布评估到底该用累计误差还是混淆矩阵?
  • 复刻低成本机械臂 SO-ARM100 单关节控制(附代码)
  • STM32+安信可Ai-WB2-12F连接阿里云物联网平台
  • Google AI版图:解析AI Studio, Gemini, NotebookLM与GCP
  • 15 个 Azure DevOps 场景化面试问题及解答
  • WTK6900C-48L:离线语音芯片重构玩具DNA,从“按键操控”到“声控陪伴”的交互跃迁
  • 用uniapp在微信小程序实现画板(电子签名)功能,使用canvas实现功能
  • Android 数据持久化之 文件存储
  • SpringBoot整合PDF导出功能