不同词向量模型的上下文定义与训练数据集

ops/2025/2/8 19:15:59/

1. Word2Vec 和上下文

  • 上下文定义
    • Word2Vec 的核心假设是“词汇的语义由其上下文决定”,即通过词汇在文本中的出现位置和周围的词语来学习词向量。
    • 在 Word2Vec 中,上下文通常指的是在一定窗口大小(如 5 个词)内的词语。比如,使用 Skip-gram 训练模型时,给定一个中心词,模型会通过上下文窗口来预测它周围的词。反之,CBOW 则是通过上下文词来预测目标词。
  • 数据集
    • Word2Vec 的训练数据集可以是任何大量的文本数据(例如新闻、小说、社交媒体内容、维基百科等),主要依赖于大量的文本语料来捕捉词汇之间的上下文关系。
    • 因为 Word2Vec 是无监督学习,模型并不需要人工标注的数据,只需要一个丰富的语料库。

2. FastText 和上下文

  • 上下文定义
    • FastText 基于 Word2Vec 的原理,但它不同之处在于,它不仅学习单词的向量,还将每个单词拆解为多个子词(n-grams)。因此,FastText 能够通过子词来捕捉更多细粒度的信息(如拼写、词根等)。
    • FastText 也通过 上下文 进行训练,和 Word2Vec 类似,使用上下文来预测目标词,但它会同时使用每个单词的子词作为其表示的一部分。
  • 数据集
    • 和 Word2Vec 一样,FastText 也可以使用任何大规模的文本数据集进行训练。因为它基于 Word2Vec 的算法,所以也需要大量的文本来训练这些词和子词的向量。
    • 使用 FastText 的优势之一是它对 未登录词(OOV) 更加鲁棒,因为它通过子词来构建词向量。

3. Doc2Vec 和上下文

  • 上下文定义

    • Doc2Vec(也叫 Paragraph2Vec)是 Word2Vec 的扩展,它不仅为每个单词分配一个向量,还为每个文档或段落分配一个向量。在训练过程中,Doc2Vec 会学习如何将一个文档映射到一个向量空间中,同时学习词向量。
    • 在 Doc2Vec 中,上下文 不仅包括目标词和它周围的上下文词,还包括该词所在的整个文档。文档向量在训练过程中被学习并与词向量一起优化,从而捕捉整个文档的语义信息。
  • 数据集

    • Doc2Vec 通常用于需要理解文档、段落或句子级别语义的任务,因此它的训练数据集会包括完整的文档(而不仅仅是单个词汇)。例如,包含新闻文章、学术论文、评论等的语料库。

4. GloVe 和上下文

  • 上下文定义
    • GloVe(Global Vectors for Word Representation)与 Word2Vec 和 FastText 不同,它通过全局统计信息而非局部上下文来训练词向量。具体来说,GloVe 利用单词对之间的共现频率来学习词向量,这些共现频率反映了词语之间的全局关系。
    • 在 GloVe 中,上下文 不是基于一个固定的窗口,而是通过计算整个语料库中词对的共现概率矩阵来获取的。
  • 数据集
    • GloVe 需要通过统计分析来构建共现矩阵,因此通常需要一个包含大量文本的语料库,例如 维基百科新闻数据集社交媒体数据,这些数据集帮助 GloVe 计算单词间的共现信息。

5. 总结

每个模型都有自己特定的上下文定义:

  • Word2VecFastText 基于局部上下文(如窗口大小)来训练词向量,主要依赖于词汇在文本中出现的相邻关系。
  • Doc2Vec 扩展了 Word2Vec,不仅捕捉词的上下文,还包含了文档的上下文,从而为每个文档分配一个向量。
  • GloVe 不同于上述模型,它基于全局共现矩阵来训练词向量,因此它的上下文是通过统计分析整个语料库中的词对共现情况来定义的。

这些模型的选择和数据集的不同,使得每个模型在捕捉语义关系和文本表示时有不同的优势和适用场景。


http://www.ppmy.cn/ops/156788.html

相关文章

基于ansible部署elk集群

ansible部署 ELK部署 ELK常见架构 (1)ElasticsearchLogstashKibana:这种架构是最常见的一种,也是最简单的一种架构,这种架构通过Logstash收集日志,运用Elasticsearch分析日志,最后通过Kibana中…

阿里云负载均衡:DDoS 攻击的坚固防线?

在当今数字化时代,网络安全面临着诸多严峻挑战,DDoS 攻击犹如一颗定时炸弹,随时可能让企业的线上业务陷入瘫痪。我们九河云通过该文章,讲述阿里云负载均衡作为云计算领域的重要组件,备受关注,许多人都在问&…

通过制作docker镜像的方式在阿里云部署前端后台服务

前端Dockerfile文件的内容: FROM nginx:版本,如果不指定,默认是latest COPY dist/ /usr/share/nginx/html/dist COPY nginx.conf /etc/nginx/nginx.conf EXPOSE 端口 前端sh脚本文件内容: appName项目名 tar -xvf dist.tar …

【ESP32cam人脸识别开门及服务器端实战源码】

本项目实现了一个基于ESP32-CAM的实时人脸识别系统,能够通过WiFi进行视频流传输,并在检测到人脸时触发开门指令。系统由两个主要部分组成:video.py(后端服务器)和 ESP32-CAM.ino(ESP32-CAM固件)…

数据库操作与数据管理——Rust 与 SQLite 的集成

第六章:数据库操作与数据管理 第一节:Rust 与 SQLite 的集成 在本节中,我们将深入探讨如何在 Rust 中使用 SQLite 数据库,涵盖从基本的 CRUD 操作到事务处理、数据模型的构建、性能优化以及安全性考虑等方面。SQLite 是一个轻量…

安卓/ios脚本开发按键精灵经验小分享

1. 程序的切换 我们经常碰到这样的需求:打开最近的应用列表,选取我们想要的程序。但是每个手机为了自己的风格,样式都有区别,甚至连列表的滑动方向都不一样,我们很难通过模拟操作来识别点击,那么我们做的只…

vue 的 watch 和 computed 有什么区别?

在 Vue.js 中,watch 和 computed 都是用于响应式数据处理的功能,但它们有不同的用途和实现方式。以下是二者的主要区别: 1. 用途 computed 计算属性:用于基于已有数据计算出新的值。它们是基于依赖的数据变化而自动重新计算的,通常用于模板中显示的派生状态。缓存:计算…

代码随想录算法训练营第三十一天| 回溯算法04

491. 递增子序列 题目: 代码随想录 视频讲解:回溯算法精讲,树层去重与树枝去重 | LeetCode:491.递增子序列_哔哩哔哩_bilibili 这题需要注意的点: 1. path长度在2以上才放入最终结果 2. 需要记录已经使用过的数字&am…