【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='英文'
从输出结果来看,结果正确并且使确定的,这就方便我们后续获取字段的确定性。
同样的道理,我们也可以使用这种方式进行其他场景的应用。