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

深度学习:自然语言处理的基本原理

概念:

        自然语言处理(Natural Language Processing,简称NLP)是人工智能和语言学领域的一个分支,它致力于研究如何让计算机能够理解、解释和生成人类语言,以及如何实现人与计算机之间的有效通信。自然语言处理的目的是缩小人类语言和计算机之间的差距。

语言转换方法:统计语言模型,神经语言模型

统计语言模型的问题:

1、参数空间爆炸式增长,无法处理(N>3)的数据(只能最高处理两个数据)

2、无法处理词与词的内在联系

神经语言模型:词嵌入embedding

在处理自然语言时,通常将词语或者字做向量化

如何解决唯独灾难问题:

通过神经网络训练,将每个词都映射到一个较短的词向量上来。

例如:                    转换短的词向量

0 0 0 0 0 0 1         0.62 0.23 0.12  0

0 0 0 0 0 1 0         0.22 0.43 1       0

0 0 0 0 1 0 0         0.11 0.25 0.02  0

0 0 0 1 0 0 0          0.65 0.28 0.12 0

这种将高维度的词表示转换为低维度的词表示的方法,我们称之为词嵌入。

word2vec

        一种用于生成词嵌入(word embeddings)的模型,它能够将词汇映射到高维空间中的向量,这些向量能够捕捉词汇之间的语义关系。

1、CBOW:以上下文词汇预测当前词,即用ωt−2、ωt−1、 ωt+1、 ωt+2预测ωt

2、skipgram:以当前词预测其上下文词汇,即用ωt预测ωt−2、ωt−1、 ωt+1、 ωt+2

模型的训练过程:

1、当前词的上下文词语的one-hot编码输入到输入层。

2、这些词分别乘以同一个矩阵ωV*N后分别得到各自的1*N 向量。

3、将多个这些1*N 向量取平均为一个1*N 向量。

4、将这个1*N 向量乘矩阵 ω’N*V ,变成一个1*V 向量。

5、将1*V 向量softmax归一化后输出取每个词的概率向量1*V

6、将概率值最大的数对应的词作为预测词。

7、将预测的结果1*V 向量和真实标签1*V 向量(真实标签中的V个值中有一个是1,其他是0)计算误差

8、在每次前向传播之后反向传播误差,不断调整 ωV*N和ω’N*V矩阵的值。


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

相关文章:

  • 接口测试Day03-postman断言关联
  • C++系列之指针总结
  • 解线性方程组
  • 数据科学与SQL:如何利用Oracle 计算正态分布概率密度?
  • spring专题笔记(六):bean的自动装配(自动化注入)-根据名字进行自动装配、根据类型进行自动装配。代码演示,通俗易懂。
  • Java 中 getClass() 方法的使用与原理分析:深入理解对象类型信息
  • sqlserver迁移数据库文件存储位置
  • Java2 实用教程(第6版)习题2 第四题
  • Python | Leetcode Python题解之第438题找到字符串中所有字母异位词
  • 负载均衡SLB详解及其应用场景
  • 2024 Fortinet OT工业安全高峰论坛成功举办
  • 【yolov7】模型导出----pytorch导出为onnx模型
  • MacOS关闭,最小化窗口快捷键
  • Go基础学习06-Golang标准库container/list(双向链表)深入讲解;延迟初始化技术;Element;List;Ring
  • Java | Leetcode Java题解之第440题字典序的第K小数字
  • OIDC5-OIDC 的工作流程
  • 详解机器学习经典模型(原理及应用)——GBDT
  • springboot实战学习(7)(JWT令牌的组成、JWT令牌的使用与验证)
  • 计算机毕业设计之:微信小程序的校园闲置物品交易平台(源码+文档+讲解)
  • 【ARM 嵌入式 编译系列 10.5 -- ARM toolchain naming convention】
  • 如何在CMakeList项目中集成GNU Autotools 构建模块
  • JavaSE——Arrays类、System类
  • 网格大师OSGB转OBJ,转换类型中的非拓扑、拓扑、重建有什么区别?
  • 【Docker】01-Docker常见指令
  • 【Linux实践】实验八:Shell程序的创建及变量
  • Scala第二天