热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python数据分析与机器学习40自然语言处理词向量模型Word2Vec

@[TOC]#一.自然语言概述##1.1自然语言可以做什么1.拼写检查、关键词搜索2.文本挖掘(产品价格、日期、时间、地点、人名、公司名)3.文本分类

Table of Contents

  • 一. 自然语言概述
    • 1.1 自然语言可以做什么
    • 1.2 为什么需要深度学习
  • 二.语言模型
    • 2.1 语言模型简介
    • 2.2 语言模型实例
    • 2.3 语言模型参数数量
  • 三. 词向量
  • 四. 神经网络模型
  • 五. Hierarchical Softmax
    • 5.1 哈夫曼树
    • 5.2 Sigmoid函数
    • 5.3 CBOW
    • 5.4 Skip-gram
    • 5.5 Negative Sampling
  • 参考:


一. 自然语言概述

1.1 自然语言可以做什么



  1. 拼写检查、关键词搜索

  2. 文本挖掘(产品价格、日期、时间、地点、人名、公司名)

  3. 文本分类

  4. 机器翻译

  5. 客服系统

  6. 复杂对话系统

image.png


1.2 为什么需要深度学习

image.png


二.语言模型

2.1 语言模型简介

机器翻译:

image.png

拼写纠错:

在这里插入图片描述

智能问答:

在这里插入图片描述


2.2 语言模型实例

我今天下午打篮球

p(S)=p(w1,w2,w3,w4,w5,…,wn)
=p(w1)p(w2|w1)p(w3|w1,w2)...p(wn|w1,w2,...,wn-1)

p(S)被称为语言模型,即用来计算一个句子概率的模型

语言模型存在哪些问题呢?

p(wi|w1,w2,...,wi-1) = p(w1,w2,...,wi-1,wi) /p(w1,w2,...,wi-1)


  1. 数据过于稀疏

  2. 参数空间太大

假设下一个词的出现依赖它前面的一个词:

p(S)=p(w1)p(w2|w1)p(w3|w1,w2)...p(wn|w1,w2,...,wn-1)
=p(w1)p(w2|w1)p(w3|w2)...p(wn|wn-1)

假设下一个词的出现依赖它前面的两个词:

p(S)=p(w1)p(w2|w1)p(w3|w1,w2)...p(wn|w1,w2,...,wn-1)
=p(w1)p(w2|w1)p(w3|w1,w2)...p(wn|wn-1,wn-2)

在这里插入图片描述

image.png

I want english food
p(I want chinesefood)=P(want|I)
×P(chinese|want)
×P(food|chinese)

2.3 语言模型参数数量

假设词典的大小是N则模型参数的量级是 O(Nn)O(N^n)

image.png


三. 词向量

下面是一些词语:

image.png

expect代表的是我们常见的向量,例如取值范围[-1,1]

右边图我们可以看到 是单词在向量空间中的分布情况,例如 had has have语义比较接近,所以在向量空间中也距离也是比较接近的。

image.png

词意相近的词:

在这里插入图片描述

词向量与语言的关系:

左边是英语,后面是西班牙语

我们可以看到即便语言不同,词向量空间所处的位置不变

image.png


四. 神经网络模型

在这里插入图片描述

在这里插入图片描述

image.png

image.png


五. Hierarchical Softmax

image.png


5.1 哈夫曼树

在这里插入图片描述

在这里插入图片描述

image.png


5.2 Sigmoid函数

image.png


5.3 CBOW

image.png

输入层:

是上下文的词语的词向量,在训练CBOW模型,词向量只是个副产品,确切来说,是CBOW模型的一个参数。训练开始的时候,词向量是个随机值,随着训练的进行不断被更新)。

投影层:

对其求和,所谓求和,就是简单的向量加法。

输出层

输出最可能的w。由于语料库中词汇量是固定的|C|个,所以上述过程其实可以看做一个多分类问题。给定特征,从|C|个分类中挑一个。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

image.png

image.png


5.4 Skip-gram

image.png

image.png


5.5 Negative Sampling

image.png

image.png

image.png

image.png

在这里插入图片描述


参考:

  1. https://study.163.com/course/introduction.htm?courseId=1003590004#/courseDetail?tab=1



推荐阅读
  • 2019年斯坦福大学CS224n课程笔记:深度学习在自然语言处理中的应用——Word2Vec与GloVe模型解析
    本文详细解析了2019年斯坦福大学CS224n课程中关于深度学习在自然语言处理(NLP)领域的应用,重点探讨了Word2Vec和GloVe两种词嵌入模型的原理与实现方法。通过具体案例分析,深入阐述了这两种模型在提升NLP任务性能方面的优势与应用场景。 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • python绘制拟合回归散点图_机器学习之利用Python进行简单线性回归分析
    前言:在利用机器学习方法进行数据分析时经常要了解变量的相关性,有时还需要对变量进行回归分析。本文首先对人工智能机器学习深度学习、相关分析因果分析回归分析 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • SSAS入门指南:基础知识与核心概念解析
    ### SSAS入门指南:基础知识与核心概念解析Analysis Services 是一种专为决策支持和商业智能(BI)解决方案设计的数据引擎。该引擎能够为报告和客户端应用提供高效的分析数据,并支持在多维数据模型中构建高性能的分析应用。通过其强大的数据处理能力和灵活的数据建模功能,Analysis Services 成为了现代 BI 系统的重要组成部分。 ... [详细]
  • 在《Python编程基础》课程中,我们将深入探讨Python中的循环结构。通过详细解析for循环和while循环的语法与应用场景,帮助初学者掌握循环控制语句的核心概念和实际应用技巧。此外,还将介绍如何利用循环结构解决复杂问题,提高编程效率和代码可读性。 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • 视觉图像的生成机制与英文术语解析
    近期,Google Brain、牛津大学和清华大学等多家研究机构相继发布了关于多层感知机(MLP)在视觉图像分类中的应用成果。这些研究深入探讨了MLP在视觉任务中的工作机制,并解析了相关技术术语,为理解视觉图像生成提供了新的视角和方法。 ... [详细]
  • 表面缺陷检测数据集综述及GitHub开源项目推荐
    本文综述了表面缺陷检测领域的数据集,并推荐了多个GitHub上的开源项目。通过对现有文献和数据集的系统整理,为研究人员提供了全面的资源参考,有助于推动该领域的发展和技术进步。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 本文介绍了如何利用 `matplotlib` 库中的 `FuncAnimation` 类将 Python 中的动态图像保存为视频文件。通过详细解释 `FuncAnimation` 类的参数和方法,文章提供了多种实用技巧,帮助用户高效地生成高质量的动态图像视频。此外,还探讨了不同视频编码器的选择及其对输出文件质量的影响,为读者提供了全面的技术指导。 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 第三届人工智能、网络与信息技术国际学术会议(AINIT 2022)
    20223rdInternationalSeminaronArtificialIntelligence,NetworkingandInformationTechnology第三届 ... [详细]
  • 中文分词_中文分词技术小结几大分词引擎的介绍与比较
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了中文分词技术小结几大分词引擎的介绍与比较相关的知识,希望对你有一定的参考价值。笔者想说:觉得英文与中文分词有很大的区别, ... [详细]
author-avatar
豆腐心_suile
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有