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

  自然语言处理应用

  

  

  深度学习模型

                         

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

  

二、语言模型

  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模型太过于复杂。

自然语言处理--Word2vec(一)的更多相关文章

  1. 自然语言处理--Word2vec(二)

    前一篇,word2vec(一)主要讲了word2vec一些表层概念,以及主要介绍CBOW方法来求解词向量模型,这里主要讲论文 Distributed Representations of Words ...

  2. word2vec:主要概念和流程

    1.单词的向量化表示 一般来讲,词向量主要有两种形式,分别是稀疏向量和密集向量. 所谓稀疏向量,又称为one-hot representation,就是用一个很长的向量来表示一个词,向量的长度为词典的 ...

  3. Alink漫谈(十六) :Word2Vec源码分析 之 建立霍夫曼树

    Alink漫谈(十六) :Word2Vec源码分析 之 建立霍夫曼树 目录 Alink漫谈(十六) :Word2Vec源码分析 之 建立霍夫曼树 0x00 摘要 0x01 背景概念 1.1 词向量基础 ...

  4. python就业班-淘宝-目录.txt

    卷 TOSHIBA EXT 的文件夹 PATH 列表卷序列号为 AE86-8E8DF:.│ python就业班-淘宝-目录.txt│ ├─01 网络编程│ ├─01-基本概念│ │ 01-网络通信概述 ...

  5. 自然语言处理高手_相关资源_开源项目(比如:分词,word2vec等)

    (1) 中科院自动化所的博士,用神经网络做自然语言处理:http://licstar.net (2) 分词项目:https://github.com/fxsjy/jieba(3) 清华大学搞的中文分词 ...

  6. word2vec 在 非 自然语言处理 (NLP) 领域的应用

    word2vec 本来就是用来解决自然语言处理问题的,它在 NLP 中的应用是显然的. 比如,你可以直接用它来寻找相关词.发现新词.命名实体识别.信息索引.情感分析等:你也可以将词向量作为其他模型的输 ...

  7. 自然语言处理之word2vec

    在word2vec出现之前,自然语言处理经常把字词转为one-hot编码类型的词向量,这种方式虽然非常简单易懂,但是数据稀疏性非常高,维度很多,很容易造成维度灾难,尤其是在深度学习中:其次这种词向量中 ...

  8. 利用Tensorflow进行自然语言处理(NLP)系列之一Word2Vec

    同步笔者CSDN博客(https://blog.csdn.net/qq_37608890/article/details/81513882). 一.概述 本文将要讨论NLP的一个重要话题:Word2V ...

  9. 自然语言处理工具:中文 word2vec 开源项目,教程,数据集

    word2vec word2vec/glove/swivel binary file on chinese corpus word2vec: https://code.google.com/p/wor ...

随机推荐

  1. 日志记录的作用和方法 java

    程序中记录日志一般有两个目的:Troubleshooting和显示程序运行状态.好的日志记录方式可以提供我们足够多定位问题的依据.日志记录大家都会认为简单,但如何通过日志可以高效定位问题并不是简单的事 ...

  2. C99 中 main 函数的写法

    今天在论坛看见有人讨论 C 语言中 main 函数的写法,看到结论才知道 main 函数的正确写法. 被老谭酸菜坑了这么多年,还是记录下吧,或许以后某天不搞 .net,回去折腾 C 语言了. 写法1: ...

  3. Maven发布和管理项目

    1 什么是Maven? 如果没有Maven,你可能不得不经历下面的过程: 1 如果使用了spring,去spring的官网下载jar包:如果使用hibernate,去hibernate的官网下载Jar ...

  4. SSD测试第一神器——FIO

    原文 地址 http://www.ssdfans.com/ssd%E6%B5%8B%E8%AF%95%E7%AC%AC%E4%B8%80%E7%A5%9E%E5%99%A8-fio-2/ 对于SSD性 ...

  5. linux系统编程之信号(六):信号发送函数sigqueue和信号安装函数sigaction

    一,sigaction() #include <signal.h> int sigaction(int signum,const struct sigaction *act,struct ...

  6. mui关闭侧滑

    一个页面有多个webview时,其中一个可以侧滑,其它禁止侧滑 document.getElementsByClassName('mui-inner-wrap')[0].addEventListene ...

  7. 实现单台测试机6万websocket长连接

    本文由作者郑银燕授权网易云社区发布. 本文是我在测试过程中的记录,实现了单台测试机发起最大的websocket长连接数.在一台测试机上,连接到一个远程服务时的本地端口是有限的.根据TCP/IP协议,由 ...

  8. S11 day 97 -98天 Luffycity项目

    1. 建模 from django.db import models from django.contrib.contenttypes.fields import GenericForeignKey, ...

  9. Mac 忘记密码

    今天早上到公司发现电脑被动过,马上查看浏览器的历史记录,果然发现了一些痕迹.虽然是公司的电脑,但是随便被人翻看,还是很不爽! 于是马上把原来公司给的默认密码改掉. 不料,中午出去吃了个饭,回来就把密码 ...

  10. 【转】POJ分类很好很有层次感

    OJ上的一些水题(可用来练手和增加自信) (poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094) 初期: 一 ...