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

AI开发-PyTorch-NLP-One-Hot/Word2Vec/GloVe/FastText

1 需求


2 接口


3 示例

  1. One - Hot Encoding(独热编码)
    • 原理
      • 独热编码是一种简单的词表示方法。对于一个包含个不同单词的词汇表,每个单词被表示为一个长度为的向量。在这个向量中,只有一个元素为 1,表示该单词在词汇表中的位置,其余元素都为 0。例如,词汇表是 ["apple", "banana", "cherry"],“apple” 的独热编码是 [1,0,0],“banana” 是 [0,1,0],“cherry” 是 [0,0,1]。
    • 优点
      • 简单直接,易于理解和实现。可以很方便地将文本中的单词转换为机器可处理的向量形式,用于模型输入。
    • 缺点
      • 高维度和稀疏性:当词汇表很大时,向量维度会很高且非常稀疏。例如,一个有 10000 个单词的词汇表,每个独热向量有 10000 个元素,只有一个 1,这会占用大量存储空间。
      • 缺乏语义信息:无法表示单词之间的语义关系。所有向量之间都是正交的,“apple” 和 “banana” 在向量空间中的距离与它们和一个随机噪声向量的距离相同。
    • 应用场景
      • 适用于简单的分类任务或在模型初期作为初步的单词表示,比如简单的文本情感分类,在数据预处理阶段将单词转换为独热向量输入简单神经网络。
  2. Word2Vec
    • 原理
      • 是一种基于神经网络的词向量生成模型,有两种主要架构:CBOW(Continuous Bag - Of - Words)和 Skip - Gram。
      • CBOW:以一个句子中的上下文单词作为输入,预测中心单词。例如在句子 “The cat sits on the mat” 中,如果中心单词是 “sits”,上下文单词(如 “The”、“cat”、“on”、“the”、“mat”)作为输入来预测 “sits”。
      • Skip - Gram:与 CBOW 相反,它以中心单词为输入来预测上下文单词。以同样句子为例,给定 “sits” 预测 “The”、“cat”、“on”、“the”、“mat”。
    • 优点
      • 能够生成低维度的密集词向量,通常在几十到几百维之间,相比独热编码大大减少了存储空间。
      • 词向量蕴含语义信息,语义相似的单词在向量空间中的距离相近。例如,“king” 和 “queen” 在向量空间中的距离会比 “king” 和 “apple” 近,因为前两者语义更相关。
    • 缺点
      • 训练过程比较复杂,需要在大规模语料上进行训练才能得到较好的效果。
      • 对低频词的表示可能不够准确,因为低频词在训练过程中出现次数少,模型学习到的信息有限。
    • 应用场景
      • 几乎应用于所有自然语言处理任务。在文本分类中作为词嵌入层输入神经网络,帮助模型理解语义;在机器翻译中用于词向量对齐,提高翻译质量;在文本生成任务中使生成的句子更符合语义逻辑。
  3. GloVe(Global Vectors for Word Representation)
    • 原理
      • GloVe 基于词的共现矩阵来学习词向量。它利用全局的词共现统计信息,通过对词共现概率矩阵进行分解等操作来得到词向量。例如,统计文本中 “apple” 和 “banana” 共同出现的频率,以及它们与其他单词的共现频率,基于这些统计信息构建模型。
    • 优点
      • 结合了全局的词汇统计信息,能够有效地利用大规模文本数据中的词共现关系。
      • 生成的词向量在语义任务上表现良好,对于词汇的语义关系捕捉能力较强,能够很好地反映单词之间的语义相似性和类比关系。
    • 缺点
      • 训练和优化过程可能比较复杂,需要处理大量的共现矩阵相关的数据和参数。
      • 对于动态变化的词汇或特定领域的新词汇,可能需要重新训练或者调整模型才能得到较好的表示。
    • 应用场景
      • 广泛应用于信息检索、文本分类、文本生成等任务。在信息检索中,可以根据词向量的相似性来检索相关的文档;在文本分类中,帮助分类器更好地理解文本语义,提高分类准确性。
  4. FastText
    • 原理
      • 是 Facebook 开发的一种用于文本分类和词向量生成的工具。它在 Word2Vec 的基础上进行了扩展,将单词看作是由字符级 n - grams 组成的。例如,对于单词 “apple”,它会考虑 “ap”、“app”、“ple” 等字符 n - grams。这样即使对于未出现在训练语料中的单词,也可以通过其字符 n - grams 来生成词向量。
    • 优点
      • 能够处理低频词和未登录词(OOV)。由于考虑了字符级信息,对于罕见单词或者新单词可以通过字符组合来生成合理的向量表示。
      • 在文本分类任务中有出色的表现,训练速度相对较快,能够在大规模数据集上高效地进行训练。
    • 缺点
      • 对于长文本,由于考虑了字符 n - grams,可能会导致向量维度较高,计算成本增加。
      • 其词向量表示在语义细节上可能不如 Word2Vec 和 GloVe 精细,因为它更侧重于文本分类和处理未登录词。
    • 应用场景
      • 特别适用于文本分类任务,尤其是在处理有大量低频词和新词汇的文本数据集时非常有效。也可用于一些需要快速生成词向量并进行简单语义处理的场景,如短文本分类、话题分类等。

介绍一下Word2Vec的Skip-gram模型和CBOW模型

如何使用GloVe进行词向量训练?

对比FastText与Word2Vec的优缺点


4 参考资料


http://www.kler.cn/a/418430.html

相关文章:

  • node.js基础学习-querystring模块-查询字符串处理(三)
  • iQOO Neo10系列携三大蓝科技亮相,性能与续航全面升级
  • 简单web项目自定义部署Dockerfile
  • 【Electron学习笔记(三)】Electron的主进程和渲染进程
  • 【进阶篇-Day15:JAVA线程-Thread的介绍】
  • 30 基于51单片机的手环设计仿真
  • java八股-分布式服务的接口幂等性如何设计?
  • 爬虫系统学习3——chrome分析post与json
  • 基于深度学习的卷积神经网络十二生肖图像识别系统(PyQt5界面+数据集+训练代码)
  • 如何手搓一个智能宠物喂食器
  • 网络协议(TCP/IP模型)
  • GEE案例——基于Landsat 8 C02数据的LST地表温度计算和下载(筛选制定温度范围的影像下载)
  • Java开发每日一课:Java开发岗位要求
  • HTMLHTML5革命:构建现代网页的终极指南 - 2. HTMLHTML5H5的区别
  • 农业强国助农平台:开启2025年助农新篇章
  • 【MySQL】:索引
  • 鸿蒙NEXT元服务:论如何免费快速上架作品
  • 个人信息修改昵称
  • PMP–一、二、三模、冲刺–分类–8.质量管理
  • GRU模型:原理、实现与分析
  • LeetCode—74. 搜索二维矩阵(中等)
  • 【Go - 什么有序?解密MongoDB bson.D】
  • 用php 处理 xls和xlsx (简单版)
  • 【JavaEE 初阶】⽹络原理 - 初识
  • 组播基础实验
  • FRU文件