文本表示(Representation)
文本表示(Representation)
这里写目录标题
- 文本表示(Representation)
- 独热编码(one-hot representation)
- 整数编码
- Word2vec
- 模型整体理解
- 我的理解
- CBoW & Skip-gram Model
- 改进方案
- Hierarchical Softmax
- Negative Sampling
- 代码
- Glove
- Glove的实现
- 模型代码
- 参考
自然语言处理问题中,一般以词作为基本单元,例如我们想要分析“我爱中国”这句话的情感,一般的做法是先将这句话进行分词,变成我
,爱
,中国
。由于神经网络无法处理词,所以我们需要将这些词通过某些办法映射成词向量。词向量可以被认定为词的特征向量,可以用作代表这个词。通常把词映射为实数领域向量的技术也叫词嵌入(Word embedding).
独热编码(one-hot representation)
假如我们要计算的文本中一共出现了4个词:猫、狗、牛、羊。向量里每一个位置都代表一个词。所以用one-hot来表示就是:
- 猫: [1,0,0,0][1,0,0,0][1,0,0,0]
- 猫: [1,0,0,0][1,0,0,0][1,0,0,0]
- 狗: [0,1,0,0][0,1,0,0][0,1,0,0]
- 牛: [0,0,1,0][0,0,1,0][0,0,1,0]
- 羊: [0,0,0,1][0,0,0,1][0,0,0,1]
但是在实际情况中,文本中很可能出现成千上万个不同的词,这时候向量就会非常长。其中大部分都是0填充。
one-hot的缺点如下:
- 无法表达词语之间的关系
- 这种过于稀疏的向量,导致计算和存储的效率都不高
整数编码
这种方式也非常好理解,用一种数字来代表一个词,对应钱买你的例子则是:
- 猫 : 1
- 狗:2
- 牛:3
- 羊:4
将句子里的每个词拼起来就是可以表示一句话的向量。
整数编码的缺点如下:
- 无法表达词语之间的关系
- 对于模型解释而言,整数编码可能具有挑战性
Word2vec
Word2vec 是google在2013年推出的一个NLP工具,它的特点是能够将单词转化为向量来表示,这样词与词之间就可以定量的去度量它们之间的关系。挖掘词之间的联系。
模型整体理解
Word2vec的训练模型本质上是只具有一个隐含层的神经元网络,如下图:
它的输入是采用One-Hot编码的词汇表向量,它的输出也是One-Hot编码的词汇表向量。使用所有的样本,训练这个神经元网络,等到收敛之后,从输入层到隐含层的那些权重,便是每一个词的Distributed Representation的词向量。比如,上图单词的Word embedding后的向量便是矩阵WV∗NW_{V * N }WV∗N的第i行的转置。这样我们就把原本维度为VVV的词向量变成了维数为N的词向量,并且词向量间保留了一定的相关关系。
Google在关于Word2Vec的论文中提出了CBOW和Skip-gram两种模型,CBOW适合于数据集较小的情况,而Skip-Gram在大型语料中表现更好。其中CBOW如上图左部分所示,使用围绕目标单词的其他单词作为输入,在映射层做加权处理后输出目标单词。与CBOW根据语境预测目标单词不同,Skip-gram根据当前单词预测语境,如下图右部分所示。假如我们有一个句子“There is an apple on the table”作为训练数据,CBOW的输入为(is,an,on,the),输出为apple.而Skip-gram的输入为apple,输出为(is, an, on , the)。
我的理解
好吧,上面这些是从其它地方copy来的。其实讲得挺好的了,大致可以理解其中的工作原理。我又针对其中的细节进行进一步分析,可以根据下图进一步梳理其中的运作流程(将上述将上面的输入输出流程拆分为最小单元
,即输入一个字的one-hot得到一个输出结果,例如输入一个x1x_{1}x1得到一个Y1Y_{1}Y1):
文本表示(Representation)相关推荐
- 【NLP】如何在文本分类任务中Fine-Tune BERT
问 题 BERT在许多自然语言理解(NLU)任务中取得了惊人的成果,但它的潜力还有待充分挖掘.目前很少有如何能进一步提高BERT性能的研究,因此,如何通过一些技巧和方法最大限度的提升BERT在文本分类 ...
- php文本域输出_如何在文本分类任务中Fine-Tune BERT
问 题 BERT在许多自然语言理解(NLU)任务中取得了惊人的成果,但它的潜力还有待充分挖掘.目前很少有如何能进一步提高BERT性能的研究,因此,如何通过一些技巧和方法最大限度的提升BERT在文本分类 ...
- 论文小综 | 知识图谱表示学习中的零样本实体研究
转载公众号 | 浙大KG 本文作者| 耿玉霞,浙江大学在读博士,主要研究方向为知识图谱.零样本学习及可解释性 前言 随着知识图谱表示学习算法的蓬勃发展,在各个领域中都得到了广泛的应用,如推荐系统.知识 ...
- NLP中的Embedding方法总结
文章目录 词向量 One-Hot Encoding 学习资料 要点 缺点 Word2Vec 学习资料 要点 负采样(negative sampling)与分层softmax(hierarchical ...
- 基于表征(Representation)的文本匹配、信息检索、向量召回的方法总结
作者 | 夜小白 整理 | NewBeeNLP 最近系统性的看了一些有关于信息检索.文本匹配方向的论文,先贴下三篇主角论文: 「(ColBERT)」 Khattab, O., & Zahari ...
- 文本表征 Text Representation
基于 one-hot.tf-idf.textrank 等的 bag-of-words: 主题模型:LSA(SVD).pLSA.LDA: 基于词向量的固定表征:Word2vec.FastText.Glo ...
- 文本表示(Text Representation)之词集模型(SOW)词袋模型(BOW)TF-IDF模型
转载请注明来源 http://blog.csdn.net/Recall_Tomorrow/article/details/79488639 欢迎大家查看这些模型简单实现的代码-- \ \ \ ...
- nlp文本数据增强_如何使用Texthero为您的NLP项目准备基于文本的数据集
nlp文本数据增强 Natural Language Processing (NLP) is one of the most important fields of study and researc ...
- 一文综述经典的深度文本分类方法
作者 | 何从庆 转载自AI算法之心(ID:AIHeartForYou) 笔者整理最近几年比较经典的深度文本分类方法,希望帮助小伙伴们了解深度学习在文本分类中的应用. Convolutional N ...
- 五年12篇顶会论文综述!一文读懂深度学习文本分类方法
作者 | 何从庆 来源 | AI算法之心(ID:AIHeartForYou) 最近有很多小伙伴想了解深度学习在文本分类的发展,因此,笔者整理最近几年比较经典的深度文本分类方法,希望帮助小伙伴们了解深度 ...
最新文章
- bitcoinj开发环境搭建
- 静态函数一个有用的设计模式
- rocktmq 消息延时清空_RocketMQ-延时消息
- C#LeetCode刷题之#409-最长回文串(Longest Palindrome)
- AngularJS日期格式化
- mysql dump 导出表_误删库,别跑路!教你一招MySQL 数据恢复
- Cordova用插件时注意事项,不然,插件调用不到!
- Hadoop系列之九:Hadoop集群伪分布式模式的实现详解
- 深入探讨apply()方法的作用
- 博通网卡管理软件Linux,Broadcom博通网卡管理软件 V16.6.2.10官方安装版
- 数据中台和数仓的关系
- 飞腾64核服务器cpu芯片,【今日头条】飞腾64核CPU适配百度昆仑AI处理器:全国产的AI体系登场...
- 主引导记录(MBR)、硬盘分区表(DPT)、扩展引导记录(EBR)
- BeautifulSoup说明
- 关于编程语言和编程工具
- Fedora安装字体方法和Ubuntu非常不同!
- 安卓开发SlidingDrawer实现抽屉效果
- Hive-时间日期trunc-日期与数字截取函数
- switch中开关语句报错	语法错误:“}”的问题?
- install developing enviroment
热门文章
- 微软时间服务器同步错误,Windows Server 设置时间同步出错问题
- FAT32与NTFS区别
- 模拟点击框架网页内无id无name的按钮
- 解决tensorflow2.x中使用tf.contrib.slim包时出现的No module named:tensorflow.contrib 问题
- JAVA实现Tom猫
- Python sorted函数|sorted([13,1,237,89,100],key=lambda x:len(str(x)))
- 数据库管理员、系统分析员、数据库设计人员,应用程序员的职责是什么?
- 云空间为您提供10G免费全能空间
- HttpWatch工具简介及使用技巧(转)
- C# eval()函数浅谈