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

第七章 文本表示:嵌入表示(三)

目录

前置案例——文本的表示与应用

一、概念介绍

二、向量空间模型

三、主题模型LDA

四、词嵌入模型Embding

五、 哈希模型--Simhash

四、词嵌入模型Embding

4.1 概述

词嵌入模型的核心目标,是将自然语言中的词语、短语或文本片段转换为计算机可以处理的向量表示。传统的文本表示方法通常采用独热编码(One-Hot Encoding),即用一个很长的向量表示一个词,每个词只有一个位置为 1,其余位置为 0。虽然这种方法简单直观,但它存在两个明显问题:一是向量维度很高,容易造成计算资源浪费;二是不同词语之间没有语义距离,无法体现词语之间的相似关系。例如,“国王”和“皇后”在语义上明显相关,但在独热编码中二者并不会比“国王”和“苹果”更接近。

词嵌入模型通过训练语料中的上下文关系,把词语映射到低维、稠密、连续的向量空间中。在这个空间里,语义相近的词语通常距离更近。例如,“教师”“学生”“学校”可能位于相近区域,“股票”“基金”“投资”也可能聚集在同一语义空间中。因此,词嵌入不仅能够降低文本表示的维度,还能够在一定程度上表达词语之间的语义关系。

核心突破:词嵌入模型使词语具备了可以计算的语义表示。向量之间可以进行距离计算和相似度比较,从而支持语义检索、文本分类、推荐系统和问答系统等任务。早期词向量中常见的类比关系可以表示为 vec("国王") - vec("男人") + vec("女人") ≈ vec("皇后"),这说明词向量能够在一定程度上捕捉词语之间的语义差异。

局限:以 Word2Vec 和 GloVe 为代表的静态词向量通常为每个词生成一个固定向量。对于一词多义问题,这种表示方式并不充分。例如,“银行存款”中的“银行”与“河岸边的银行”语义不同,但静态词向量通常无法根据上下文自动区分其含义。

深度语义嵌入:随着深度学习的发展,词嵌入逐渐从静态表示发展到上下文感知的动态表示。以 BERT 为代表的预训练语言模型能够根据词语所在的上下文生成不同的向量表示。同一个词出现在不同句子中,其向量会随着上下文变化而变化。例如,“AI 正在学习人类语言”中的“学习”和“学生在学习”中的“学习”,虽然词面相同,但模型可以结合上下文生成更符合语义的表示。动态词嵌入使模型能够更好地理解句子含义,在文本分类、问答系统、信息抽取、机器翻译和文本生成等任务中表现出更强的语义理解能力。

4.2 Word2Vec

原理理论

Word2Vec是一种经典的静态词嵌入模型,主要思想是“一个词的含义可以由它周围的词来表示”。如果两个词经常出现在相似的上下文中,那么它们在语义上往往也比较接近。Word2Vec 通过大量文本语料学习词语之间的共现关系,并将每个词表示为一个低维稠密向量。

Word2Vec 主要包含两种训练结构:CBOW 和 Skip-gram。CBOW 的全称是 Continuous Bag of Words,中文通常称为连续词袋模型。它的基本思路是根据上下文词语预测中心词。例如,在句子“人工智能正在改变教育方式”中,如果上下文是“人工智能”“改变”,模型需要预测中间的词“正在”。CBOW的训练速度较快,适合处理较大规模语料。

Skip-gram的思路与 CBOW 相反,它是根据中心词预测上下文词语。例如,给定中心词“人工智能”,模型需要预测它附近可能出现的词,如“技术”“模型”“应用”“教育”等。Skip-gram 对低频词的学习效果通常较好,适合在语料规模不是特别大、但希望捕捉更多细粒度语义关系的场景中使用。

在训练过程中,Word2Vec 并不是直接人工规定词语之间的相似度,而是让模型在大量语料中自动学习。当训练完成后,每个词都会对应一个向量。两个词语向量之间的距离越近,通常表示它们在语义上越相似。常用的相似度计算方法是余弦相似度,它可以衡量两个词向量方向上的接近程度。

训练

训练 Word2Vec 通常包括语料准备、文本预处理、参数设置和模型训练四个步骤。首先,需要准备一定规模的文本语料,语料可以来自新闻、评论、论文、百科、论坛或业务系统中的文本数据。语料规模越大、质量越高,训练出的词向量通常越稳定。

其次,需要进行文本预处理。对于中文文本,一般需要先进行分词,将连续句子切分为一个个词语。例如,“人工智能正在改变教育方式”可以切分为“人工智能 / 正在 / 改变 / 教育 / 方式”。对于英文文本,则通常需要进行分词、大小写统一、去除停用词等处理。

然后,需要设置训练参数。常见参数包括向量维度、上下文窗口大小、最小词频和训练轮数。向量维度决定每个词用多少个数字表示;窗口大小决定模型观察中心词前后多少个词;最小词频用于过滤出现次数过少的词;训练轮数则影响模型对语料的学习充分程度。

最后,使用训练算法学习词向量。训练完成后,可以得到每个词对应的向量表示,并可以进一步进行相似词查询、词语类比、文本向量化等操作。由于 Word2Vec 训练速度较快、实现较成熟,因此常用于入门实验和轻量级语义建模场景。

安装代码示例

pip install gensim

应用代码示例

from gensim.models import Word2Vec # 导入 Word2Vec 模型 sentences = [ ["人工智能", "改变", "教育", "方式"], ["机器学习", "需要", "数据", "训练"], ["人工智能", "模型", "可以", "处理", "文本"] ] model = Word2Vec(sentences, vector_size=50, window=2, min_count=1, workers=1) print(model.wv.most_similar("人工智能", topn=2)) # 查看相似词

应用案例

Word2Vec可以用于文本相似度计算。例如,在新闻推荐系统中,可以先训练新闻语料的词向量,再根据新闻标题或正文中的词向量计算不同新闻之间的相似程度。如果两篇新闻都包含“股票”“基金”“投资”“市场”等语义相近的词,那么系统可以判断它们属于相似主题,从而向用户推荐相关内容。

Word2Vec也可以用于关键词扩展。例如,用户搜索“人工智能”时,系统可以根据词向量找到与其相近的词,如“机器学习”“深度学习”“自然语言处理”等,从而提升搜索召回效果。

此外,Word2Vec 还可以作为机器学习模型的输入特征。在文本分类任务中,可以将一句话中的多个词向量取平均,得到句子向量,再输入到分类模型中完成情感分析、主题分类或垃圾文本识别等任务。虽然 Word2Vec 本身不能直接理解完整句子结构,但它为后续的文本建模提供了重要的语义基础。

4.3 BERT

原理理论

BERT 是一种基于 Transformer 结构的预训练语言模型,全称是 Bidirectional Encoder Representations from Transformers。与 Word2Vec 这类静态词向量模型不同,BERT 能够根据上下文动态生成词语表示,因此属于上下文感知的词嵌入模型。

BERT的核心特点是双向上下文建模。传统语言模型通常按照从左到右或从右到左的顺序理解文本,而 BERT 可以同时利用一个词左侧和右侧的信息来理解该词的含义。例如,在句子“我去银行办理存款”和“河岸旁边有一排树”中,模型可以根据上下文判断词语所处的语义环境,从而生成更准确的向量表示。

BERT的训练主要依赖两个预训练任务。第一个是遮蔽语言模型,即随机遮住句子中的部分词语,让模型根据上下文预测被遮住的词。例如,“人工智能正在改变 [MASK] 方式”,模型需要结合上下文预测被遮住的词可能是“教育”。第二个是句子关系判断,即让模型判断两个句子之间是否存在连续关系。这些训练任务使 BERT 能够学习词语、句子和篇章层面的语义信息。

与 Word2Vec 相比,BERT 的优势在于它能够处理一词多义问题。同一个词在不同上下文中会得到不同的向量表示。例如,“苹果发布了新手机”中的“苹果”更可能表示公司,而“我买了一个苹果”中的“苹果”更可能表示水果。BERT 可以根据上下文对二者进行区分,从而提高模型对自然语言的理解能力。

训练

BERT的训练通常分为两个阶段:预训练和微调。预训练阶段需要使用大规模无标注文本数据,让模型学习通用语言规律。这个阶段计算成本较高,通常需要较大的语料、较长的训练时间和较强的硬件资源。因此,在一般学习和项目开发中,通常不会从零开始训练 BERT,而是直接使用已经训练好的预训练模型。

微调阶段是在具体任务数据上继续训练模型。例如,在情感分析任务中,可以准备带有“正面”“负面”标签的评论数据;在文本分类任务中,可以准备带有类别标签的新闻或短文本数据。然后在预训练模型的基础上添加分类层,让模型学习具体任务的判断规则。由于 BERT 已经具备较强的语言理解能力,因此微调通常只需要相对较少的数据,就能取得较好的效果。

在实际训练中,BERT 的输入通常需要经过分词器处理,转换为模型可以识别的 token 编号。同时,还需要加入特殊标记,例如 [CLS] 和 [SEP]。[CLS] 通常放在句子开头,它对应的向量可以作为整个句子的表示;[SEP] 用于分隔不同句子。模型经过训练后,可以输出词级别或句子级别的向量,用于分类、问答、匹配、抽取等任务。

安装代码示例

pip install transformers torch

应用代码示例

from transformers import AutoTokenizer, AutoModel # 导入 BERT 相关工具 import torch tokenizer = AutoTokenizer.from_pretrained("bert-base-chinese") model = AutoModel.from_pretrained("bert-base-chinese") text = "人工智能正在改变教育方式" inputs = tokenizer(text, return_tensors="pt") with torch.no_grad(): outputs = model(**inputs) cls_vector = outputs.last_hidden_state[:, 0, :] # 取 [CLS] 位置作为句子向量 print(cls_vector.shape) # 输出向量维度

应用案例

BERT可以广泛应用于自然语言处理任务。在文本分类中,可以使用 BERT 判断新闻类别、评论情感、用户意图或邮件类型。例如,输入一句评论“这门课程讲得很清楚,例子也容易理解”,模型可以判断其情感倾向为正面。

在问答系统中,BERT 可以根据问题和文章内容定位答案。例如,给定问题“Word2Vec 的两种结构是什么?”以及相关教材内容,模型可以从文本中找到“CBOW 和 Skip-gram”作为答案。

在命名实体识别任务中,BERT 可以识别人名、地名、机构名、时间、产品名等实体。例如,在“李明在北京大学参加人工智能论坛”这句话中,模型可以识别“李明”为人名,“北京大学”为机构名,“人工智能论坛”为活动或主题相关短语。

在文本匹配任务中,BERT 可以判断两个句子是否表达相近含义。例如,“如何学习 Python?”和“Python 入门应该怎么学?”虽然表达方式不同,但语义接近,模型可以判断它们具有较高相似度。

表 7-2 Word2Vec 与 BERT 对比

比较维度

Word2Vec

BERT

说明

表示方式

静态词向量

上下文动态向量

Word2Vec一个词通常对应一个固定向量;BERT 会结合上下文生成表示。

上下文能力

主要依赖局部共现关系

能够利用双向上下文

BERT更适合处理一词多义和复杂句子理解。

训练成本

较低

较高

Word2Vec训练快;BERT 通常使用预训练模型再微调。

适用任务

相似词查询、关键词扩展、轻量级分类

文本分类、问答、实体识别、文本匹配

二者可根据任务复杂度和资源条件选择。

http://www.jsqmd.com/news/1401299/

相关文章:

  • HC-276哈氏合金供应链溯源:如何甄别真正的一级现货分销商 - 2027品牌AI展
  • 工业传感器与变送器详解:序章 从物理世界到工业数据
  • 904L不锈钢现货一站式采购指南:渠道、价格与供应商全解 - 2027品牌AI展
  • 品牌咨询全案公司哪家专业?三层筛选法帮你锁定真正能落地的咨询公司
  • 2026 年当下,张家口靠谱的AI获客推广公司找哪家,靠这玩意儿30天连开27单,再也不用蹲陌拜发传单了? - 行业推荐官-2
  • AI图像生成实战:用提示词工程创造虚拟“神秘之地”
  • 数据库建模利器PDMan:从可视化设计到一键生成SQL与代码
  • 知网降AI怎么改最省心,BunnyScholar主推加助研君
  • WorkSwarm 引领办公智能体新范式,重塑桌面生产力
  • 每日英语-10
  • 2026景德镇最靠谱的GEO服务逻辑:本地化内容如何有效进入生成式引擎 - 品牌报告
  • Android WebView 深度解析:从内核选型、性能优化到安全加固的完整指南
  • Hermes Agent 与 AutoGPT 有什么区别?
  • 广东可靠的展示器材品牌哪家好?这家5000㎡实体工厂值得一看 - 装修教育财税推荐2026
  • C++ 数据结构 AVL树(附动图超详细)
  • 2026年:石家庄全自动升降柱厂家直销专业升降柱施工,各类场地都适配-金志恒科技 - 行业甄选汇
  • 桌面 AI 代理 OpenClaw,从下载安装到任务测试全流程(含安装包)
  • 大模型落地指南:Agent工程师如何从入门到精通,含收藏必备技能包[特殊字符]
  • ARINC 573/717帧同步字:从标准误解到工程实践的关键解析
  • AIGC检测结果不一样,BunnyCheck、BunnyScholar、助研君怎么选
  • 02-Qt基础-对象树与内存管理
  • Redis连接池资源耗尽:从原理到实战解决“Could not get a resource”
  • Python酒店数据分析实战:从清洗到可视化
  • 《新项目用 Pinia 还是守 Vuex?一份不废话的选型清单》
  • BFS算法详解:从马的遍历到最短路径搜索实战
  • 2026 年现阶段上饶专业的民事案件司法鉴定平台哪家专业,明明是简单的民事纠纷,竟因这玩意儿栽了大跟头?别再瞎踩坑!-天平鉴定技术 - 企业推荐管【认证】
  • 输入法词库定制与开发环境术语集成实战指南
  • 2026会展企业高端网站建设服务商大盘点:靠谱选型攻略、实力评测维度 + 签约避坑全流程FAQ - 商业大观
  • 低剂量 PET 图像质量评估方法
  • Python 爬虫网络质量评估实战:成功率、P95 延迟与错误分布怎么测