• NLP经典模型入门-word2vec


    前言:笔者之前是cv方向,因为工作原因需要学习NLP相关的模型,因此特意梳理一下关于NLP的几个经典模型,由于有基础,这一系列不会关注基础内容或者公式推导,而是更侧重对整体原理的理解。顺便推荐两个很不错的github项目——开箱即用的中文教程以及算法更全但是有些跑不通的英文教程

    一. NLP常见概念

    • 分词:将完整的句子划分成一个个word,也可以划分为char级别,例如今天/天气/非常/好或者今/天/天/气/非/常/好
    • 词表:分词后的集合构建而来,可以视作字典,其中key是所有可能的char或者word,而value则是其对应的id。一般来说,文本不像图像可以用像素值来表示,因此一般采用分词+词表映射的方式把文本转化为一串数字序列

    二. word2vec模型

    1. word2vec的目的

    得到更好更准确的词向量。和图像的表示方法不同,NLP中一般用向量来表示不同的单词,向量一般采用one-hot的方法来初始化,但是这样会带来两个问题:

    • 有多少个单词词向量的长度就要多长,维数过高
    • one-hot是一种随机初始化的方式,并不能很好地代表向量

    因此诞生了word2vec模型,本质上和先做人脸分类、再根据人脸特征距离判断是不是一个人的思路很像,word2vec也是训练分类问题,从而得到更优的词向量表示。

    2. word2vec的结构

    word2vec包括两种结构:CBOW模型(根据周围的词预测中心词,多对一模型)与Skip-gram模型(根据中心词预测周围词,一对多模型),两者结构如下——

    img

    img

    需要注意的是,word2vec只有一个隐层,输出层使用softmax等loss进行监督。隐层没有激活层,因此word2vec中词向量是其它词向量的线性组合。

    3. word2vec的CBOW模型例子

    学习{I drink coffee everyday}一句话,其中coffee是中心词,window size设定为2

    img

    img

    img

    img

    img

  • 相关阅读:
    Vue项目搭建及原理三
    Vue项目搭建及原理一
    JS Cookie丢失问题
    1027 Colors in Mars
    1028 List Sorting
    1029 Median
    1030 Travel Plan
    1031 Hello World for U
    1032 Sharing
    1033 To Fill or Not to Fill
  • 原文地址:https://www.cnblogs.com/lity/p/13454850.html
Copyright © 2020-2023  润新知