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

自然语言处理--Word2vec(一)

一、自然语言处理与深度学习

  自然语言处理应用

  

  

  深度学习模型

                         

  为什么需要用深度学习来处理呢

  

二、语言模型

  1、语言模型实例:

             机器翻译                                                                

   

          拼写纠错                                                                     智能问答

   

  

  1)机器翻译,比如要翻译高价,可能 P(high price) > P(large price),然后得到的结果就是high price

  2)拼写纠错,比如 fifteen minutes,P(about fifteen minutes from) > P(about fifteenminuets from),一般时分开写的,如果合在一起则会纠正为分开书写

  3)语言模型举例

    我 今天 下午 打 篮球

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

    上式中wi表示每个词
    p(S)被称为语言模型即用来计算一个句子概率的模型

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

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

  1)数据过于稀疏
  2)参数空间太大

 

三、N-gram模型

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

  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)

  

  举例: 

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

   

  

  

  假设词典的大小是N,则模型参数的量级是 

 

四、词向量

   

  

  

五、神经网络模型

  

  训练样本:  ,包括前n-1个词分别的向量,假定每个词向量大小m

  投影层:(n-1)*m 首尾拼接起来的大向量

  输出:  

  表示上下文为 时,下一个词恰好为词典中第i个词的概率

  归一化:  

  神经网络模型的优势  

  S1 = ‘’我 今天 去 网咖’’       出现了1000次
  S2 = ‘’我 今天 去 网吧’’      出现了10次

  对于S1和S2两句话其实表达的意思差不多的,但
  对于N-gram模型:  P(S1) >> P(S2),一般会表述为S1
  而神经网络模型计算的  P(S1) ≈ P(S2)

  对于如下:

  

  在神经网络中,只要语料库中出现其中一个,其他句子的概率也会相应的增大

 

六、Hierarchical Softmax

  

  Hierarchical Softmax有两种模型,CBOW,Skip-gram

  1、CBOW

    CBOW 是 Continuous Bag-of-Words Model 的缩写,是一种根据上下文的词语预测当前词语的出现概率的模型

    

  2、哈夫曼树

  

  

  3、Logistic回归

    

    

 

    

  4、CBOW模型推导

  

  输入层是上下文的词语的词向量,在训练CBOW模型,词向量只是个副产品,确切来说,是CBOW模型的一个参数。训练开始的时候,词向量是个随机值,随着训练的进行不断被更新)。
  投影层对其求和,所谓求和,就是简单的向量加法。
  输出层输出最可能的w。由于语料库中词汇量是固定的|C|个,所以上述过程其实可以看做一个多分类问题。给定特征,从|C|个分类中挑一个。

  

  

  

  

   

  5、Skip-gram模型

    1)输入层不再是多个词向量,而是一个词向量

    2)投影层其实什么事都没干,直接将输入层的词向量传递给输出层

 

七、负采样模型(Negative Sampling)

      

  负样本那么多该如何选择呢?

  对于一个给定的正样本(Context(w), w),我们希望最大化

    

    

  

    

    

    

    

 

    一般大多采用负采样模型来求解,因为Hierarchical softmax模型太过于复杂。  

转载于:https://www.cnblogs.com/zongfa/p/9335273.html

相关文章:

  • HDU3068(最长回文串)
  • redis初识
  • 头指针与头结点的异同
  • Npoi将excel数据导入到sqlserver数据库
  • OpenStack导入镜像后Launch不起来的几个问题
  • zookeeper 面试题 有用
  • 如何写PHP规范注释
  • /proc/stat文件详解(翻译)
  • Android性能:通过Choreographer检测UI丢帧和卡顿
  • java提高篇(五)-----使用序列化实现对象的拷贝
  • java小心机(3)| 浅析finalize()
  • Adapter Class Cast Exception Removing Footer View from ListView
  • LeetCode--014--最长公共前缀
  • 串口超时处理原理及实现
  • ACM北大暑期课培训第一天
  • 《深入 React 技术栈》
  • 【node学习】协程
  • 【刷算法】求1+2+3+...+n
  • C++类的相互关联
  • CentOS7 安装JDK
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • Javascript基础之Array数组API
  • java取消线程实例
  • Java深入 - 深入理解Java集合
  • Js基础知识(四) - js运行原理与机制
  • mysql_config not found
  • MySQL-事务管理(基础)
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • React as a UI Runtime(五、列表)
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • SQLServer插入数据
  • vue:响应原理
  • Web设计流程优化:网页效果图设计新思路
  • windows下如何用phpstorm同步测试服务器
  • 微信小程序开发问题汇总
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (JS基础)String 类型
  • (办公)springboot配置aop处理请求.
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (数据结构)顺序表的定义
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .Net 中Partitioner static与dynamic的性能对比
  • .NET4.0并行计算技术基础(1)
  • /bin/bash^M: bad interpreter: No such file or directory
  • :“Failed to access IIS metabase”解决方法
  • :O)修改linux硬件时间
  • @Import注解详解
  • @KafkaListener注解详解(一)| 常用参数详解
  • [ 数据结构 - C++]红黑树RBTree
  • [20170705]diff比较执行结果的内容.txt
  • [BUG]vscode插件live server无法自动打开浏览器