wordvect嵌入和bert嵌入的区别

Word2Vec 嵌入和 BERT 嵌入之间有几个关键区别:

  1. 训练方式

    • Word2Vec:Word2Vec 是一个基于神经网络的词嵌入模型,它通过训练一个浅层的神经网络来学习单词的分布式表示。它有两种训练方式:连续词袋模型(CBOW)和Skip-gram 模型,分别通过预测上下文词汇或者预测目标词汇来学习单词嵌入。
    • BERT:BERT 是一种基于 Transformer 架构的预训练语言模型。它通过使用大规模的无标注文本数据来进行预训练,通过掩盖和预测输入句子中的一部分来学习上下文感知的单词嵌入。
  2. 上下文感知性

    • Word2Vec:Word2Vec 嵌入是基于局部窗口上下文的,每个单词的嵌入只考虑了它周围的几个单词,因此它们可能无法捕捉到单词的整体语义和上下文信息。
    • BERT:BERT 嵌入是基于整个句子的上下文来计算的,它能够更好地理解单词在句子中的语义和语境。BERT 使用双向 Transformer 模型来同时考虑一个单词左侧和右侧的上下文信息,因此能够更全面地捕捉单词的含义。
  3. 任务特定性

    • Word2Vec:Word2Vec 嵌入通常用于各种自然语言处理任务的特征表示,例如文本分类、命名实体识别等,但它们通常需要在特定任务上进行微调以获得最佳性能。
    • BERT:BERT 嵌入经过大规模预训练,通常可以直接用于各种下游任务,例如文本分类、命名实体识别、问答等,而且通常不需要太多的微调即可获得很好的性能。

下面是使用 Python 中的 Gensim 库来展示 word2vec 和 Hugging Face Transformers 库来展示 BERT 的示例代码:

Word2Vec 嵌入示例:

python 复制代码
# 导入所需的库
from gensim.models import Word2Vec
from gensim.models.keyedvectors import KeyedVectors

# 假设有一个句子列表作为训练数据
sentences = [["I", "love", "natural", "language", "processing"],
             ["Word", "embeddings", "are", "useful", "for", "NLP"],
             ["Word2Vec", "is", "a", "popular", "word", "embedding", "technique"]]

# 训练 Word2Vec 模型
model = Word2Vec(sentences, vector_size=100, window=5, min_count=1, workers=4)

# 获取单词 "word" 的词向量表示
word_vector = model.wv["word"]
print("Word2Vec Embedding for 'word':", word_vector)

BERT 嵌入示例:

python 复制代码
# 导入所需的库
from transformers import BertTokenizer, BertModel
import torch

# 加载 BERT tokenizer
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')

# 假设有一个句子
sentence = "Word embeddings are useful for NLP"

# 使用 BERT tokenizer 对句子进行标记化和编码
inputs = tokenizer(sentence, return_tensors="pt", padding=True, truncation=True)

# 加载 BERT 模型
model = BertModel.from_pretrained('bert-base-uncased')

# 获取 BERT 嵌入
with torch.no_grad():
    outputs = model(**inputs)

# 提取句子中每个 token 的嵌入表示
embeddings = outputs.last_hidden_state
# 提取第一个 token 的嵌入表示([CLS] 标记)
bert_embedding = embeddings[:, 0, :]
print("BERT Embedding for the sentence:", bert_embedding)

这里,Word2Vec 通过简单的神经网络训练得到词向量,而 BERT 是一个预训练的深度双向 Transformer 模型,在给定任务的基础上进行微调以获得更好的嵌入表示。Word2Vec 产生的向量通常具有相似含义的单词在空间中彼此靠近,而 BERT 的嵌入则更具有上下文感知性,可以更好地捕捉句子中的语义和语境。

相关推荐
Damon小智6 分钟前
眼见不一定为实:WAIC 2026 探展合合信息,实测 AI 去反光 + AI 跨模态鉴伪两项黑科技
人工智能·ocr
AvatarAI_Walker9 分钟前
2026年7月安徽健康 IP 孵化:四家机构服务特点与场景关注方向梳理
大数据·人工智能·tcp/ip·精选
栋***t15 分钟前
从“纸质试卷”到“AI智能组卷”,麦塔在线考试系统如何重构出题逻辑?
java·大数据·人工智能·算法·重构
不爱记笔记19 分钟前
音视频转笔记工具横评2026,通义听悟、Ai好记、NotebookLM 实测对比
人工智能·笔记·ai·音视频·飞书·obsidian
Highcharts.js29 分钟前
如何下载使用Highcharts Grid 开发web可编辑表格
前端·人工智能·grid 表格·web 表格·在线编辑表格·highcharts表格安装·表格开发工具
服装 AI 增长黑客42 分钟前
AI落地服装店:从流量焦虑到经营闭环,哪些能力真实可用?
人工智能
weiwin1231 小时前
MAF 入门(7):在 MAF 中使用 RAG
人工智能
JuiceFS1 小时前
GPFS、Alluxio、JuiceFS 怎么选?一文看懂架构与适用场景
人工智能·后端
爱吃程序猿的喵1 小时前
LingBot-Map 复现与原理剖析:基于 Geometric Context Transformer 的流式 3D 重建
人工智能·python·深度学习·计算机视觉·3d·transformer
俊哥V1 小时前
每日 AI 研究简报 · 2026-07-23
人工智能·ai