郭震 AI公众号:郭震AI

17 从零学NLP系列教程:文本分类的监督学习与无监督学习

发布日期:

最近更新:

分类: NLP小白

预计阅读: 4 分钟

阅读次数: 0

预计阅读4 分钟
结构重点10 个
图文要点6 张
正文规模1.5k 字

整理说明

这篇内容怎么整理

郭震 · 2026-06-04

独立整理围绕 10 个结构重点拆成环境、步骤、验证点和常见误区,尽量让读者能照着复现。
图文对照保留 6 张和配置、流程、判断结果有关的图片,方便快速定位正文重点。
持续校对工具、模型和命令变化较快,后续优先修正入口、参数和风险提醒。

阅读路线

先按这条路线读

先抓住主线,再回到代码、配置和图文细节,读起来会更稳。

图文要点

先看本文图文节点

按图先建立主线,再跳回正文核对步骤、配置和判断标准。

文本分类的监督与无监督学习流程图查看大图
文本分类的监督与无监督学习流程图

文本分类先要确认有没有可靠标签。有标签就做监督学习,没有标签则先用聚类、主题发现或人工探索整理结构。

文本分类的监督与无监督学习实操核对图查看大图
文本分类的监督与无监督学习实操核对图

我会先看标签定义是否互斥、样本是否均衡、难例是否有人复核。标签混乱会直接限制上限。

在上篇中,我们讨论了Transformers语言模型的基础知识以及如何使用它们进行文本生成。而在本篇中,我们将深入探讨文本分类领域中的两种主要学习方法:监督学习无监督学习。文本分类是自然语言处理(NLP)中的一项重要任务,旨在将文本数据分配到预定义的类别中。

什么是文本分类?

文本分类是将文本数据分配到一个或多个类别的过程。这种任务在许多应用中非常常见,比如:

  • 垃圾邮件检测:将电子邮件分类为“垃圾邮件”或“正常邮件”。
  • 情感分析:判定一段评论是“积极的”、“消极的”还是“中性的”。
  • 主题分类:将新闻文章分成“体育”、“政治”、“科技”等类别。

今天,我们将详细讨论两种主要的文本分类方法,即监督学习无监督学习

监督学习

定义与特征

监督学习中,算法通过已标注的数据进行训练。这意味着每一条输入数据(例如文本)都有一个对应的输出标签(类别)。模型的目标是学习从输入到输出的映射关系。

经典示例

一个经典的案例是使用朴素贝叶斯方法进行垃圾邮件分类。我们可以利用已标注的电子邮件数据集,训练一个模型识别哪些特征(单词频率等)能够有效区分垃圾邮件和正常邮件。

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline

# 示例数据
data = [
    ("Congratulations! You've won a lottery!", "spam"),
    ("Hi, how are you?", "ham"),
    ("Get rich quick with this one simple trick!", "spam"),
    ("Meeting at 10 AM tomorrow.", "ham")
]

# 分离文本和标签
texts, labels = zip(*data)

# 创建训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(texts, labels, test_size=0.25, random_state=42)

# 构建朴素贝叶斯模型
model = make_pipeline(CountVectorizer(), MultinomialNB())
model.fit(X_train, y_train)

# 预测
predictions = model.predict(X_test)
print(predictions)

在这一示例中,我们使用CountVectorizer将文本转换为特征向量,并利用MultinomialNB进行分类。训练完毕后,我们能够根据新邮件的内容预测其类别。

常用算法

在文本分类的监督学习中,除了朴素贝叶斯外,还有许多其他算法,包括:

  • 支持向量机(SVM)
  • 随机森林
  • 神经网络(如LSTM、CNN等)

每种算法都有其优缺点,选择适合的算法通常需要考虑具体的数据和任务。

无监督学习

定义与特征

与监督学习不同,无监督学习中的模型没有标签数据。这里的目标是发现数据中的潜在结构或模式。无监督学习常用于文本分类中的“主题建模”。

文本分类学习方式判断卡查看大图
文本分类学习方式判断卡

比较文本分类的监督与无监督方法时,先看标签来源、类别边界、特征表示、聚类解释和评估方式。

经典示例

我们可以使用Latent Dirichlet Allocation (LDA)进行主题建模,试图从未标注的文档中挖掘出潜在主题。

import gensim
from gensim import corpora

# 示例文档
documents = [
    "I love reading about sports.",
    "The game last night was thrilling.",
    "New technology is emerging every day.",
    "Artificial intelligence is fascinating."
]

# 文本预处理
texts = [[word for word in doc.lower().split()] for doc in documents]

# 创建词典和语料库
dictionary = corpora.Dictionary(texts)
corpus = [dictionary.doc2bow(text) for text in texts]

# LDA模型
lda_model = gensim.models.LdaModel(corpus, num_topics=2, id2word=dictionary, passes=10)

# 打印主题
for idx, topic in lda_model.print_topics(num_words=3):
    print(f"Topic {idx}: {topic}")

在这个示例中,我们使用Gensim库创建了LDA模型,从未标注的文本中提取出了主题。LDA能够帮助我们理解不同文档之间的联系,尽管我们并不知道它们的具体标签。

常用算法

在无监督学习中,常用的方法还有:

自然语言处理阅读地图卡查看大图
自然语言处理阅读地图卡

看完《从零学NLP系列教程:文本分类的监督学习与无监督学习》后,建议用一分钟复盘:关键概念是否分清、练习步骤是否可复现、结论能不能换成自己的话。

  • K-means聚类
  • 层次聚类
  • 自编码器

这些算法在不同场景下各有应用,通过理解数据的结构来进行后续分析。

从零学NLP系列教程:文本分类的监督学习与无监督学习应用复盘卡查看大图
从零学NLP系列教程:文本分类的监督学习与无监督学习应用复盘卡

复习《从零学NLP系列教程:文本分类的监督学习与无监督学习》时,建议把关键概念、操作步骤和可见结果放在同一页里回看。

从零学NLP系列教程:文本分类的监督学习与无监督学习应用检查卡查看大图
从零学NLP系列教程:文本分类的监督学习与无监督学习应用检查卡

练习《从零学NLP系列教程:文本分类的监督学习与无监督学习》时,建议把输入条件、处理动作和可见结果写在一起,方便下次复查。

总结

在文本分类的任务中,监督学习无监督学习各有特点和应用场景。监督学习更加适合于需要明确标注的数据集,而无监督学习则在标签缺失的情况下能够帮助我们从数据中发现有趣的结构和模式。

在下一篇中,我们将深入讨论文本分类的常用算法,帮助你更加全面地了解并应用这些技术,进一步提升你的NLP技能。希望通过以上内容,你能对文本分类的监督学习与无监督学习有一个清晰的认识!

继续阅读

从这篇继续找到相关教程

AI 教程总索引

常见问题

读前先确认这三点

从零学NLP系列教程:文本分类的监督学习与无监督学习适合谁读?

这是 自然语言处理入门 系列第 17 / 30 篇,适合正在学习自然语言处理入门,并且需要把概念落到操作步骤或判断标准里的读者。

读这篇自然语言处理入门教程要多久?

按中文技术文章阅读速度估算,通读大约 4 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。

这篇文章里的图文节点怎么用?

正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。

分享文章

转发到常用平台

微信/朋友圈可先复制链接

相关教程

AI 教程总索引

继续阅读

继续找到相关 AI 教程

返回栏目

Reader Messages

读者留言

有问题、补充资料或实测结果,可以直接留下。这里不需要登录。

最多 800 字

为了防刷,每条留言会做长度、链接数量和提交频率限制。

0/800

留言列表

0
正在加载留言...