NLP五类核心任务:归纳总结与详细讲解

复制代码
一段原始文本
   ↓
文本分类:这段话属于什么类别?
   ↓
情感分析:说话者是什么态度?
   ↓
命名实体识别:里面提到了哪些人物、地点、机构或专业概念?
   ↓
关系抽取:这些实体之间有什么关系?
   ↓
文本相似度:它与其他句子、问题或文档有多相似?

它们解决的问题并不相同:

任务 核心问题 典型输出
文本分类 整段文本属于哪一类 科技新闻、垃圾邮件、咨询意图
情感分析 文本表达什么态度 正面、负面、中性
命名实体识别 文本中有哪些重要对象 人名、机构、地点、疾病、药物
关系抽取 实体之间有什么联系 创始人、就职于、位于、治疗
文本相似度 两段文字有多接近 相似度分数、最相关文本

第一部分:文本分类

一、什么是文本分类

文本分类是把一段文字自动分配到一个或多个预先设定的类别中。

可以把它想象成一个"自动文件管理员"。系统收到大量文本后,需要判断它们应该放到哪个文件夹。

例如,一条新闻:

某公司发布新一代人工智能芯片,并公布了最新大模型训练平台。

系统可能将它归入:

复制代码
类别:科技新闻

一封邮件:

恭喜您获得百万奖金,请点击链接立即领取。

系统可能判断为:

复制代码
类别:垃圾邮件

文本分类广泛应用于新闻归档、邮件过滤、用户意图识别、内容审核和客服工单分流等场景。其基本流程通常包括文本预处理、特征表示、模型训练、预测和评估。


二、文本分类的主要类型

1. 二分类

每段文本只能属于两个类别中的一个。

例如:

复制代码
垃圾邮件 / 正常邮件
正面评价 / 负面评价
有风险 / 无风险

示例:

您的银行卡存在异常,请立即点击链接重新认证。

输出:

复制代码
垃圾邮件:0.96
正常邮件:0.04

2. 多分类

一段文本需要从三个或更多互斥类别中选择一个。

例如新闻分类:

复制代码
科技
体育
财经
娱乐
教育

输入:

某球队在决赛中以3比1获胜。

输出:

复制代码
体育

这里通常认为一篇新闻只有一个主要类别。


3. 多标签分类

一段文本可以同时属于多个类别。

例如:

某科技企业推出低功耗人工智能芯片,并宣布新的环保生产计划。

它可能同时具有:

复制代码
科技
人工智能
芯片
环保
企业新闻

"多分类"和"多标签分类"容易混淆:

复制代码
多分类:
多个类别中只能选择一个。

多标签分类:
多个类别可以同时选择若干个。

在模型实现中,单标签多分类通常让类别之间相互竞争;多标签任务则通常独立判断每个标签是否成立。PyTorch的官方文档也将二元交叉熵与多标签场景联系起来。


4. 层次分类

类别之间存在父子结构。

例如:

复制代码
体育
├─ 足球
│  ├─ 中超
│  └─ 英超
├─ 篮球
│  ├─ NBA
│  └─ CBA
└─ 网球

输入:

成都蓉城在中超联赛中取得胜利。

可能得到:

复制代码
体育 → 足球 → 中超

层次分类比普通多分类更复杂,因为模型不仅要判断最终类别,还需要保持父类别和子类别之间的一致性。


三、文本分类的完整流程

复制代码
收集文本和标签
      ↓
清洗、分词、规范化
      ↓
把文本转换为数字
      ↓
训练分类模型
      ↓
预测新文本类别
      ↓
计算准确率、召回率和F1
      ↓
分析错误并持续优化

1. 数据准备

训练数据通常是:

复制代码
文本 + 正确标签

例如:

文本 标签
这款手机拍照很清晰 数码
球队在决赛中获胜 体育
银行宣布下调贷款利率 财经

数据质量非常重要。如果标签本身不一致,模型就很难学到稳定规律。

例如,同一句:

人工智能正在改变医疗行业。

有人标成"科技",有人标成"医疗",还有人标成"科技+医疗"。这时应先明确任务到底是单标签还是多标签。


2. 文本预处理

传统模型通常需要:

复制代码
文本清洗
→ 分词
→ 去除部分停用词
→ 词形还原
→ 转换为TF-IDF

现代BERT类模型一般使用模型自带的Tokenizer,不应随意使用其他分词器替换。


3. 文本表示

常见表示方法包括:

词袋模型

只统计词是否出现、出现多少次。

优点是简单,缺点是忽略语序和深层语义。

TF-IDF

在词频基础上降低常见词的权重,突出更具有区分能力的词。

例如在科技新闻中:

复制代码
的、是、一个        权重较低
芯片、模型、算法    权重较高

Word2Vec

把词转换为稠密向量,使语义接近的词在向量空间中距离更近。

BERT

根据上下文动态生成表示。同一个词在不同句子中可以获得不同向量。

BERT采用深层双向Transformer表示,可以通过添加较小的任务输出层,微调到分类、问答等不同任务上。


4. 常见分类模型

传统机器学习

常见组合包括:

复制代码
TF-IDF + 朴素贝叶斯
TF-IDF + 逻辑回归
TF-IDF + SVM

它们适合:

  • 数据量不大;
  • 需要快速建立基线;
  • 计算资源有限;
  • 希望结果容易解释。

深度学习

常见模型包括:

  • CNN:擅长捕捉局部关键词和短语;
  • RNN、LSTM:按顺序处理文本;
  • Transformer、BERT:能够更充分地建模上下文。

将朴素贝叶斯、SVM、逻辑回归、随机森林,以及CNN、RNN、LSTM和Transformer列为文本分类中的常见方法。


四、文本分类的评价指标

1. 准确率

准确率表示:

复制代码
预测正确的样本数
──────────────
全部样本数

假设100条新闻中有90条分类正确:

复制代码
准确率 = 90%

但类别不平衡时,准确率可能会误导我们。

例如1000封邮件中:

复制代码
正常邮件:990封
垃圾邮件:10封

模型把所有邮件都预测成正常邮件:

复制代码
准确率 = 990 ÷ 1000 = 99%

看起来很高,但它一封垃圾邮件也没有识别出来。


2. 精确率

精确率关注:

模型预测为某一类的样本中,有多少是真的。

例如模型说20封邮件是垃圾邮件,其中15封确实是:

复制代码
精确率 = 15 ÷ 20 = 75%

适合关心"误报"的场景。


3. 召回率

召回率关注:

所有真正属于某一类的样本中,模型找到了多少。

实际有30封垃圾邮件,模型找出15封:

复制代码
召回率 = 15 ÷ 30 = 50%

适合关心"漏报"的场景。


4. F1值

F1综合考虑精确率和召回率。

当类别分布不均衡时,F1通常比单独看准确率更有意义。教程也建议在类别不平衡时使用重采样、类别权重,并优先关注F1等指标。


五、文本分类的主要难点

类别不平衡

某些类别样本很多,某些类别样本很少。

标签边界模糊

一篇文章可能既属于科技,也属于财经。

领域迁移

用电影评论训练的模型,不一定适合分析医疗服务评价。

文本长度差异

短句可能只有几个字,长文档可能包含数千字。

小样本问题

某些专业领域缺少高质量标注数据。

可解释性

模型不仅要给出分类结果,有时还需要回答:

为什么把这段文本分到这个类别?

这些也是教程归纳的文本分类主要挑战。


第二部分:情感分析

六、什么是情感分析

情感分析是文本分类的一个重要分支,它专门分析说话者的态度、评价和情绪。

例如:

这款手机太好用了,拍照非常清晰。

结果:

复制代码
正面

软件更新以后总是闪退,体验很差。

结果:

复制代码
负面

该产品于今天正式发布。

结果:

复制代码
中性

情感分析不仅可以区分正面、负面和中性,也可以进一步识别愤怒、喜悦、悲伤、恐惧等情绪,或者计算情绪强度。


七、情感分析的不同粒度

1. 文档级情感分析

把整篇文章或整条评论作为一个整体。

例如:

这家酒店位置很好,房间也很干净。虽然早餐种类不多,但整体体验不错。

文档级结果可能是:

复制代码
整体情感:正面

它只给出整体评价,不细分具体对象。


2. 句子级情感分析

逐句判断情感。

复制代码
房间非常干净。         → 正面
酒店离地铁太远了。     → 负面
我住了三天。           → 中性

3. 方面级情感分析

方面级情感分析也叫ABSA,它不仅判断情感,还要找出"评价的是哪个方面"。

例如:

这家餐厅环境很漂亮,菜的味道也不错,就是上菜慢得能看完一集电视剧。

可以拆成:

方面 情感
环境 正面
菜品味道 正面
上菜速度 负面

整体文本同时包含多个方面和不同情绪,因此只输出一个"正面"或"负面"会损失很多信息。

方面可能是显式出现的:

复制代码
手机的电池续航很好。
方面:电池续航

也可能是隐含的:

复制代码
拍出来的照片特别清楚。
隐含方面:摄像头

将方面提取和方面情感分类列为ABSA的两个核心部分,并区分了流水线、端到端和多任务学习方法。


八、情感分析的主要方法

1. 基于情感词典

系统准备一个词典:

复制代码
喜欢     +1
优秀     +2
惊艳     +3
失望     -2
糟糕     -3

句子:

这个产品非常优秀。

可以简单计算:

复制代码
优秀:+2
非常:增强1.5倍

最终分数:+3

但还要考虑否定词:

这个产品不优秀。

如果只看到"优秀",模型会判断为正面;加入"不"后,情感方向应发生变化。

词典方法不需要大量训练数据、速度快、可解释性强,但较难处理上下文、讽刺和复杂表达。


2. 传统机器学习方法

常见流程:

复制代码
评论文本
  ↓
分词和清洗
  ↓
TF-IDF或N-gram
  ↓
逻辑回归、朴素贝叶斯或SVM
  ↓
情感类别

N-gram对于否定结构尤其重要。

例如:

复制代码
Unigram:
不 / 好

Bigram:
不好

只使用单个词时,"好"可能带来正面判断;使用Bigram后,"不好"可以作为整体特征。


3. 深度学习和预训练模型

LSTM可以顺序读取句子,Transformer和BERT可以综合分析较长范围的上下文。

例如:

我原本以为这个软件会很难用,实际用了两天后发现还不错。

模型需要理解:

  • 前面是预期;
  • 后面是实际体验;
  • "还不错"是最终评价;
  • 整体情感偏正面。

BERT能够结合左右上下文生成表示,因此比单纯统计情感词更适合复杂句子。


九、情感分析中的困难情况

1. 否定范围

这个手机不是不好,只是价格太贵。

这里不能简单判断为负面:

复制代码
产品质量:不是负面
价格:负面

2. 转折

外观很好看,但是续航太差。

"但是"后面的内容往往对整体判断影响更大,但具体权重还要结合任务和语境。


3. 讽刺和反话

这个软件可真稳定,一小时崩了八次。

字面出现"稳定",真实态度却是负面。


4. 领域差异

同一个形容词在不同领域可能表达不同态度。

复制代码
这台笔记本很轻。     → 通常是正面
这杯咖啡味道很轻。   → 可能是负面

5. 表情与标点

复制代码
不错。
不错!
不错???
不错🙃

它们的真实语气可能不同,因此不应在清洗阶段盲目删除所有表情和标点。

上下文依赖、领域迁移、多语言差异以及讽刺检测都是情感分析的重要挑战;多模态分析、情感原因提取和跨语言分析则是进一步发展方向。


第三部分:命名实体识别

十、什么是命名实体识别

命名实体识别简称NER,它要在文本中完成两件事:

  1. 找出实体的准确位置;
  2. 判断实体属于什么类型。

例如:

2026年8月4日,张明在成都参加了人工智能大会。

识别结果:

复制代码
2026年8月4日  → 日期
张明           → 人名
成都           → 地点
人工智能大会   → 活动

NER就像使用不同颜色的荧光笔,把文本中的重要对象标记出来。常见实体包括人名、地名、机构、日期、时间和金额;在医疗、电商、金融等专业领域还可以定义药物、疾病、产品、股票等实体。


十一、NER不是简单找名词

句子:

苹果发布了新款手机。

"苹果"可能是:

复制代码
公司:Apple

句子:

我今天吃了一个苹果。

"苹果"是:

复制代码
水果,不一定属于命名实体

模型必须根据上下文判断。

NER还需要识别实体边界。

例如:

四川大学华西医院发布通知。

正确实体可能是:

复制代码
四川大学华西医院

而不是分别识别成:

复制代码
四川大学
华西医院

具体边界要根据标注标准确定。


十二、BIO标注方法

NER通常被处理为Token分类任务,即为句子中的每个Token分配一个标签。Hugging Face的官方任务文档也把NER作为Token Classification的典型应用。

常见BIO标签:

复制代码
B:实体开始
I:实体内部
O:不属于任何实体

句子:

张明在北京工作。

可以标注为:

Token 标签
B-PER
I-PER
O
B-LOC
I-LOC
O
O

其中:

复制代码
PER:人物
LOC:地点
ORG:机构

BIOES还增加:

复制代码
E:实体结束
S:单字实体

这样可以提供更明确的边界信息。


十三、NER的主要方法

1. 规则和词典

例如使用正则表达式识别日期:

复制代码
2026-08-04
2026年8月4日
8月4日

或者使用医院、药品、城市词典进行匹配。

优点:

  • 结果容易解释;
  • 对格式固定的实体准确率高;
  • 不需要大量训练数据。

缺点:

  • 新实体难以识别;
  • 维护成本高;
  • 对复杂语境适应能力弱。

2. CRF

CRF不仅判断每个Token是什么标签,还会考虑标签之间的组合是否合法。

例如:

复制代码
I-PER直接出现在O后面

通常不符合BIO规则。

CRF可以学习:

复制代码
B-PER后面容易出现I-PER
I-PER后面可能继续I-PER或结束

3. BiLSTM-CRF

BiLSTM从两个方向读取句子:

复制代码
从左向右
张 → 明 → 在 → 北 → 京

从右向左
京 → 北 → 在 → 明 → 张

它负责学习上下文特征;CRF负责选择整体上最合理的标签序列。

BiLSTM-CRF能够同时使用前后文信息以及句子级标签依赖,曾广泛用于NER、词性标注和分块等序列标注任务。


4. BERT实体识别

常见结构:

复制代码
文本
 ↓
BERT编码
 ↓
每个Token的上下文向量
 ↓
Token分类层或CRF层
 ↓
实体标签

BERT可以根据上下文区分:

复制代码
苹果很甜。          苹果=水果
苹果发布新产品。    苹果=公司

教程将规则匹配、统计学习和深度学习概括为NER的三类方法,并列出了CRF、BiLSTM和BERT等常用模型。


十四、NER的评价方式

NER通常采用实体级精确率、召回率和F1。

假设真实实体是:

复制代码
四川大学华西医院

模型预测:

复制代码
华西医院

虽然识别了部分文字,但如果采用严格实体匹配,边界没有完全一致,通常会被判定为错误。

一个实体被认为正确,通常要求:

复制代码
起始位置正确
结束位置正确
实体类型正确

例如系统识别出90个实体,其中80个正确,而真实实体共有100个:

复制代码
精确率 = 80 ÷ 90
召回率 = 80 ÷ 100

教程也将Precision、Recall和F1作为NER的主要评价指标。


十五、NER的主要难点

实体边界

"北京大学人民医院"应该整体识别还是拆分,需要明确标注规范。

实体歧义

"长城"可能是建筑、汽车品牌或公司名称。

嵌套实体

复制代码
四川大学华西医院

内部可能还包含:

复制代码
四川大学
华西医院

未登录实体

新公司、新产品和网络人物不断出现,词典不可能全部覆盖。

专业领域迁移

通用NER模型可能认识"北京",但未必认识:

复制代码
脑卒中
阿司匹林
吞咽障碍
舌肌训练

因此医疗NER通常需要专业数据和领域微调。实体边界、实体歧义和专业领域适应也是教程指出的主要问题。


第四部分:关系抽取

十六、什么是关系抽取

NER只能告诉我们"文本中有哪些实体",关系抽取进一步回答:

这些实体之间是什么关系?

句子:

任正非于1987年在深圳创立华为。

NER结果:

复制代码
任正非    人物
1987年    时间
深圳      地点
华为      机构

关系抽取结果:

复制代码
(任正非,创立,华为)
(华为,成立时间,1987年)
(华为,创立地点,深圳)

关系通常表示为三元组:

复制代码
头实体 + 关系 + 尾实体

关系抽取是知识图谱、智能问答、信息检索和生物医学文献分析的重要基础。


十七、关系抽取的基本流程

复制代码
原始文本
   ↓
识别实体
   ↓
生成候选实体对
   ↓
判断是否存在关系
   ↓
判断关系类型
   ↓
输出结构化三元组

例如:

李明在星云科技担任算法工程师。

实体:

复制代码
李明        PERSON
星云科技    ORGANIZATION
算法工程师  POSITION

关系:

复制代码
(李明,就职于,星云科技)
(李明,职位,算法工程师)

十八、关系抽取的主要方法

1. 基于规则

例如定义:

复制代码
人物 + 创立了 + 公司
人物 + 就职于 + 公司
公司 + 位于 + 地点

句子:

张明创立了未来科技公司。

匹配后得到:

复制代码
(张明,创立,未来科技公司)

规则法准确、直观,但表达方式稍微改变就可能失效:

复制代码
未来科技公司由张明创办。
张明是未来科技公司的创始人。
未来科技公司的创建者是张明。

它们表达同一关系,却需要不同规则。


2. 监督学习

将实体对及其上下文输入分类器。

例如:

复制代码
输入:
实体1:张明
实体2:未来科技公司
上下文:张明创立了未来科技公司

输出:
关系=创始人

模型也可能输出:

复制代码
无关系

传统方法可以使用SVM,现代方法通常使用CNN、LSTM或BERT。


3. 远程监督

人工标注关系数据成本较高,因此可以利用已有知识库自动生成训练样本。

知识库已知:

复制代码
(任正非,创立,华为)

如果文本中同时出现"任正非"和"华为",系统可能把该句当作"创立"关系的训练样本。

但这种方式会产生噪声,因为两个实体同时出现,并不代表当前句子一定表达了知识库中的关系。教程把远程监督概括为利用知识库自动构造训练数据。


4. 流水线抽取

先做NER,再做关系分类:

复制代码
NER
 ↓
实体对生成
 ↓
关系分类

优点是模块清晰、容易检查。

缺点是前面的实体识别一旦出错,后面的关系抽取也会受到影响,这叫误差传播。


5. 联合抽取

一个模型同时识别实体和关系:

复制代码
文本
 ↓
联合模型
 ↓
实体 + 关系三元组

联合模型可以让实体信息和关系信息相互帮助,但训练与标注往往更加复杂。研究中既有联合模型,也有表现很强的流水线方法,因此不能简单认为"联合一定优于流水线",应结合数据和工程需求选择。


十九、关系抽取的难点

1. 同一关系有多种表达

复制代码
张明创立了未来科技。
未来科技由张明创办。
张明是未来科技的创始人。

都表达:

复制代码
(张明,创立,未来科技)

2. 实体距离较远

张明在大学毕业后前往国外深造,回国工作多年以后,于2023年创立了未来科技公司。

"张明"和"未来科技公司"相隔很远,模型必须理解长距离依赖。


3. 一个句子包含多个三元组

张明创立未来科技,并邀请李华担任技术总监。

可能包含:

复制代码
(张明,创立,未来科技)
(李华,就职于,未来科技)
(李华,职位,技术总监)

4. 否定和假设

张明并不是未来科技的创始人。

不能抽取:

复制代码
(张明,创立,未来科技)

如果张明加入未来科技,他可能担任顾问。

这是条件和推测,也不能直接当作已经发生的事实。


5. 跨句关系

张明于2023年成立了一家公司。该公司主要研发医疗人工智能产品。

"该公司"指向前一句中的公司,关系抽取需要结合共指消解和篇章上下文。

语言表达多样、实体歧义、长距离依赖、标注数据稀缺和领域迁移是关系抽取中的典型挑战。


第五部分:文本相似度

二十、什么是文本相似度

文本相似度用于计算两段文本有多接近。

可以分为两种:

字面相似

词语和字符是否相近。

复制代码
句子1:我喜欢自然语言处理
句子2:我非常喜欢自然语言处理

两句话有很多相同词,字面相似度较高。

语义相似

表达的含义是否接近。

复制代码
句子1:我忘记登录密码了。
句子2:账号密码想不起来怎么办?

共同词语并不多,但表达的是同一个问题。

文本相似度被广泛用于搜索、问答、推荐、重复内容检测和抄袭检测。


二十一、基于词频的相似度

1. 词袋模型

先建立词表,再把句子表示为词频向量。

例如:

复制代码
句子A:我 喜欢 NLP
句子B:我 学习 NLP

词表:

复制代码
[我, 喜欢, 学习, NLP]

向量:

复制代码
A = [1, 1, 0, 1]
B = [1, 0, 1, 1]

然后计算两个向量的距离或夹角。

它可以发现共同词,但不能理解:

复制代码
喜欢 ≈ 热爱
汽车 ≈ 车辆
购买 ≈ 买

2. TF-IDF相似度

TF-IDF降低常见词影响,突出关键词。

例如比较新闻标题:

复制代码
苹果发布新款智能手机
苹果公司推出最新手机产品

"苹果""手机""发布或推出"等词会获得较高贡献,因此相似度较高。

TF-IDF适合:

  • 关键词检索;
  • 新闻去重;
  • 文档查重;
  • 传统搜索系统;
  • 中长文档匹配。

教程展示了使用TF-IDF矩阵和余弦相似度计算新闻标题相似度的方法。


二十二、基于词向量的相似度

Word2Vec可以让语义接近的词向量更接近。

例如:

复制代码
喜欢 ≈ 热爱
医生 ≈ 医师
汽车 ≈ 车辆

一句话的向量可以简单取所有词向量的平均:

复制代码
句向量 =
句中所有词向量之和
──────────────
词的数量

这样能够处理部分同义表达,但平均操作会丢失语序。

例如:

复制代码
狗咬人
人咬狗

两句话包含相同的词,平均向量可能非常相近,但含义明显不同。


二十三、BERT和Sentence-BERT相似度

1. 普通BERT

BERT可以把两个句子同时输入模型,让模型直接判断它们的关系:

复制代码
[CLS] 句子A [SEP] 句子B [SEP]

这种方式通常称为交叉编码器思路。

优点:

  • 两个句子的Token可以充分交互;
  • 精度通常较高。

缺点:

  • 每比较一对句子都要重新运行模型;
  • 文档数量很大时速度较慢。

2. Sentence-BERT

Sentence-BERT分别计算句子的向量:

复制代码
句子A → 向量A
句子B → 向量B

然后计算余弦相似度:

复制代码
向量A ↔ 向量B

同一个文档的向量可以提前计算并保存,因此适合:

  • 向量检索;
  • 语义搜索;
  • 文本聚类;
  • 相似问题匹配;
  • RAG知识库召回。

Sentence-BERT使用孪生或三元组网络结构生成具有语义意义的句向量,使它们可以直接通过余弦相似度比较,并显著降低大规模相似度检索的计算成本。


二十四、常用相似度指标

1. 余弦相似度

余弦相似度关注两个向量的方向是否接近:

一般可以理解为:

复制代码
方向越接近 → 越相似
方向差异越大 → 越不相似

它不太关注向量的绝对长度,因此常用于TF-IDF和文本嵌入。


2. 欧氏距离

欧氏距离表示两点之间的直线距离:

距离越小,通常表示越接近。

注意:

复制代码
余弦相似度:越大越相似
欧氏距离:越小越相似

3. 曼哈顿距离

计算各维度差值绝对值的总和:

可以把它理解为在城市方格道路中行走的距离。


4. Jaccard相似度

适合比较两个词语集合:

例如:

复制代码
A = {人工智能, 医疗, 康复}
B = {人工智能, 医疗, 诊断}

交集:

复制代码
{人工智能, 医疗}

并集:

复制代码
{人工智能, 医疗, 康复, 诊断}

所以:

复制代码
Jaccard = 2 ÷ 4 = 0.5

余弦、欧氏、曼哈顿和Jaccard都是教程介绍的常见相似度或距离计算方法。


二十五、文本相似度的典型难点

1. 词语不同但含义相同

复制代码
怎样修改账号密码?
我想重新设置登录密码。

TF-IDF可能只能发现"密码"这个共同词,而语义模型能够更好地理解"修改"和"重新设置"接近。


2. 词语相同但含义不同

复制代码
苹果很甜。
苹果市值上涨。

都有"苹果",但一个指水果,一个指公司。


3. 否定导致含义反转

复制代码
我喜欢这个软件。
我不喜欢这个软件。

字面高度相似,但态度相反。


4. 文本长度差异

复制代码
问题:怎么修改密码?

文档:用户可以进入设置页面,选择账户安全,
点击修改密码,输入旧密码和新密码......

两者长度差别很大,但实际上高度相关。


5. 相似不等于相关

用户搜索:

手机进水怎么办?

文档A:

手机进水后的紧急处理步骤。

文档B:

最新手机防水性能排行榜。

两篇都出现"手机"和"水",但文档A对当前问题更相关。

因此实际检索系统通常不只计算语言相似度,还会综合:

  • 用户意图;
  • 关键词;
  • 文档质量;
  • 时间;
  • 权限;
  • 业务规则。

大规模文本检索还可以使用近似最近邻搜索,以降低向量比较成本。教程也建议在大规模数据中使用ANN和Faiss等高效搜索工具。


第六部分:五个任务如何协同工作

以一句医疗康复咨询为例:

我父亲脑卒中后说话含糊,昨天做舌部训练时出现了头晕,今天还能继续练吗?

1. 文本分类

识别用户意图

复制代码
康复训练咨询
训练安全问题

如果是多标签任务,两类可以同时保留。


2. 情感分析

可能识别到:

复制代码
情绪:担忧
强度:中等

系统可以因此采用更谨慎、安抚性的表达方式。


3. 命名实体识别

复制代码
父亲       人物关系
脑卒中     疾病
说话含糊   症状
昨天       时间
舌部训练   训练项目
头晕       异常症状
今天       时间

4. 关系抽取

复制代码
(父亲,患有,脑卒中)
(父亲,出现症状,说话含糊)
(舌部训练,伴随异常,头晕)
(头晕,发生时间,昨天)

5. 文本相似度

把用户问题转换为向量,在知识库中寻找最接近的内容:

复制代码
训练过程中出现头晕应如何处理
哪些情况需要立即停止康复训练
脑卒中患者居家训练安全注意事项

检索结果再交给问答模型组织回答。

完整流程可以表示为:

复制代码
用户输入
   ↓
分类:判断问题类型和路由
   ↓
情感:识别用户态度与沟通方式
   ↓
NER:提取疾病、症状、时间、训练项目
   ↓
关系抽取:建立实体之间的结构关系
   ↓
相似度检索:查找相关指南或知识
   ↓
生成具有依据的回答

这也是医疗智能体、客服系统和知识库问答系统中,这几类NLP任务相互配合的一种典型方式。


第七部分:五个任务的横向对比

对比项 文本分类 情感分析 NER 关系抽取 文本相似度
分析单位 整段文本 文档、句子或方面 Token或实体片段 实体对或三元组 两段文本
输出形式 类别标签 情感标签或分数 实体及类型 头实体---关系---尾实体 相似度分数
是否需要标签 监督学习通常需要 监督方法需要 监督方法需要 监督方法需要 可监督或无监督
传统方法 TF-IDF+SVM 词典、TF-IDF+SVM 规则、CRF 规则、SVM TF-IDF+余弦
深度方法 CNN、LSTM、BERT LSTM、BERT、ABSA模型 BiLSTM-CRF、BERT BERT、联合抽取模型 BERT、Sentence-BERT
常用指标 Accuracy、F1 Accuracy、F1 实体级P/R/F1 关系或三元组P/R/F1 相关性、排序效果
典型用途 新闻分类、意图识别 评论分析、舆情监测 信息抽取、知识图谱 知识图谱、智能问答 搜索、推荐、RAG

最核心的区别可以记成五句话:

复制代码
文本分类:给整段文字贴标签。
情感分析:判断说话者的态度。
命名实体识别:找出重要对象。
关系抽取:说明对象之间的联系。
文本相似度:比较两段文字是否接近。
相关推荐
zzzll11111 小时前
Ollama:本地运行大型语言模型的轻量级解决方案
人工智能·语言模型·自然语言处理
孙启超1 小时前
【AI应用开发】Agent 无限 loop(反复调用同一个工具)如何规避?
人工智能·python·算法·llm·agent·loop·ai应用开发
qq_348231851 小时前
Agent落地
人工智能
seacracker1 小时前
HPC+AI混合负载存储碎片化严重?PowerFS Filer Raft强一致四组件统一架构一套搞定
人工智能·架构
HySpark1 小时前
语音输入法实践:Rust 集成 Paraformer 推理引擎踩坑与优化过程
人工智能·后端·语音识别·熙瑾会悟
不爱土豆唯爱马铃薯1 小时前
用MonkeyCode做一个野外数据采集表 | MonkeyCode实操系列EP06
人工智能·数据分析
董员外1 小时前
RAG 系统进化论(九):RAG 评测,怎样证明系统真的变好了?
人工智能·设计模式·程序员
IT小盘1 小时前
10-使用Reranker提升RAG回答准确率
人工智能·python
小黑技术栈2 小时前
DevEco Code Plan+Build模式:审方案再执行的技术实践
人工智能