词嵌入及方法one-hot、词袋、TFIDF
词嵌入
1. 词嵌入的含义
机器学习和深度学习等统计算法处理数字。要对文本应用统计算法,你需要将文本转换为数字。例如,你不能将两个词 apples 和 oranges加起来。你需要将文本转换为数字才能对单词应用数学运算。
词嵌入实际上是一类技术,单个词在预定义的向量空间中被表示为实数向量,每个单词都映射到一个向量。举个例子,比如在一个文本中包含“猫”“狗”“爱情”等若干单词,而这若干单词映射到向量空间中,“猫”对应的向量为(0.1 0.2 0.3),“狗”对应的向量为(0.2 0.2 0.4),“爱情”对应的映射为(-0.4 -0.5 -0.2)(本数据仅为示意)。像这种将文本X{x1,x2,x3,x4,x5……xn}映射到多维向量空间Y{y1,y2,y3,y4,y5……yn },这个映射的过程就叫做词嵌入。
之所以希望把每个单词都变成一个向量,目的还是为了方便计算,比如“猫”,“狗”,“爱情”三个词。对于我们人而言,我们可以知道“猫”和“狗”表示的都是动物,而“爱情”是表示的一种情感,但是对于机器而言,这三个词都是用0,1表示成二进制的字符串而已,无法对其进行计算。而通过词嵌入这种方式将单词转变为词向量,机器便可对单词进行计算,通过计算不同词向量之间夹角余弦值cosine而得出单词之间的相似性。
2. 词嵌入的方法
SKlearn 库中可以构建绝大部分模型
sklearn.feature_extraction.text
离散表示
- one-hot 编码
- 词袋模型(bag of words)
- TF-IDF方法
- n-gram模型
**神经网络表示 **
- Word2Vec
- sense2vec
2.1 离散表示
2.1.1 one-hot 编码
核心思想: 文档中每个单词的出现都是独立的,与其他词无关。对单词编码后的向量中只有数字0和1, 且其中只有一个维度是1。
劣势: 稀疏矩阵;高维;无法学习语义,向量间的距离无法反映语义差异
应用: 输出类别标注
2.1.2 bag of words
核心思想intuition: 文档中每个单词的出现都是独立的,每个词都有独一无二的含义,与其他词无关。考虑单个文档中词频的重要性,忽略词序、词义、语境。
优劣:
优势:向量表示比one-hot稠密,但依然很稀疏,考虑词频信息
劣势:稀疏矩阵;高维;无法学习语义信息,向量间的距离无法反映语义差异
应用场景 长文档(每个文档的单词数多)的文档表示
2.1.3 TF-IDF(term frequency–inverse document frequency)
核心思想intuition:如果某个单词在一篇文章中出现的频率(Term-Frequency,TF),并且在其他文章中很少出现,则认为词或者短语具有很好的类别区分能力,适合用来分类;用以评估一个字词在所有文档中的重要程度。字词的重要性随着它在单个文档中出现的次数成正比增加,但同时随着它在所有文档中出现的频率成反比下降。
案例
优劣势
优势:考虑了单一文档中的词频信息、以及词在所有文档中的相对重要性
劣势:没有词义
应用场景: 关键词抽取、主题词抽取;计算文档间的相似性,文档聚类。
2.1.4 n-gram模型
intuition 分布假设:相似的词往往出现在同一环境中(例如,在眼睛或检查等词附近)。出现在非常相似的分部(其相邻的词是相似的)中的两个词具有相似的含义
n-gram模型为了保持词的顺序,做了一个滑窗的操作,这里的n表示的就是滑窗的大小,例如2-gram模型,也就是把2个词当做一组来处理,然后向后移动一个词的长度,再次组成另一组词,把这些生成一个字典,按照词袋模型的方式进行编码得到结果。改模型考虑了词的顺序。
John likes to watch movies. Mary likes too
John also likes to watch football games.
以上两句可以构造一个词典,{"John likes”: 1, "likes to”: 2, "to watch”: 3, "watch movies”: 4, "Mary likes”: 5, "likes too”: 6, "John also”: 7, "also likes”: 8, “watch football”: 9, “football games”: 10}
那么第一句的向量表示为:[1, 1, 1, 1, 1, 1, 0, 0, 0, 0],其中第一个1表示John likes在该句中出现了1次,依次类推。
**缺点:**随着n的大小增加,词表会成指数型膨胀,会越来越大。
2.1.5 2.5 离散表示存在的问题
由于存在以下的问题,对于一般的NLP问题,是可以使用离散表示文本信息来解决问题的,但对于要求精度较高的场景就不适合了。
无法衡量词向量之间的关系。
词表的维度随着语料库的增长而膨胀。
n-gram词序列随语料库增长呈指数型膨胀,更加快。
离散数据来表示文本会带来数据稀疏问题,导致丢失了信息,与我们生活中理解的信息是不一样的。
词嵌入及方法one-hot、词袋、TFIDF相关推荐
- 【NLP】词嵌入基础和Word2vec
0.导语 词嵌入是自然语言处理(NLP)中语言模型与表征学习技术的统称.概念上而言,它是指把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量. ...
- AI基础:词嵌入基础和Word2vec
0.导语 词嵌入是自然语言处理(NLP)中语言模型与表征学习技术的统称.概念上而言,它是指把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量. ...
- 前沿综述:细数2018年最好的词嵌入和句嵌入技术
from:http://3g.163.com/dy/article/DJRJDB9S0511D05M.html 在任何一种基于深度学习的自然语言处理系统中,词嵌入和句子嵌入已成为重要组成部分.它们使用 ...
- 自然语言处理之词嵌入(Word Embedding)
关于词嵌入 对于计算机来说,要想理解自然语言,需要把自然语言以一定的形式转化为数值,这一步解决的是"将现实问题转化为数学问题",是人工智能非常关键的一步.词嵌入就是将自然语言 ...
- 图解词嵌入、语言模型、Word2Vec
嵌入(embedding)是机器学习中最迷人的想法之一. 如果你曾经使用Siri.Google Assistant.Alexa.Google翻译,甚至智能手机键盘进行下一词预测,那么你很有可能从这个已 ...
- 【NLP】图解词嵌入和Word2vec
0.导语 词嵌入是自然语言处理(NLP)中语言模型与表征学习技术的统称.概念上而言,它是指把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量. ...
- 图计算黑科技:打开中文词嵌入训练实践新模式
导语 | 在自然语言处理领域,文本表示学习技术可以帮助我们将现实世界转化为计算机可以处理的数据,以求更精准地建立学习模型.而在中文搜索场景下,同音词.易混词.错别字等文本的召回和相似度匹配一直存在着棘 ...
- 【NLP】词袋模型(bag of words model)和词嵌入模型(word embedding model)
本文作为入门级教程,介绍了词袋模型(bag of words model)和词向量模型(word embedding model)的基本概念. 目录 1 词袋模型和编码方法 1.1 文本向量化 1.2 ...
- 吴恩达老师深度学习视频课笔记:自然语言处理与词嵌入
Word representation:词嵌入(word embedding),是语言表示的一种方式,可以让算法自动理解一些类似的词比如男人.女人,国王.王后等.通过词嵌入的概念,即使你的模型标记的训 ...
最新文章
- MPB:湖南师大尹佳组-​乳酸菌益生菌表面粘附能力的检测
- ModelSim之命令行仿真入门 (step 2)
- ArcGIS.Server.9.3和ArcGIS API for Flex的GeometryService和buffer分析(十)
- BZOJ4943 [NOI2017] 蚯蚓
- Django通过URL传递参数的4种方法
- 电脑显示连接了网络但是不能上网_为什么电脑插上网线显示已连接却上不了网...
- iBiology |除了B站,这还有个专业的生科科普网站
- 2021年中国船用燃气发动机市场趋势报告、技术动态创新及2027年市场预测
- 最新服务器处理器天梯,服务器cpu天梯图2020
- python多找表格进行数据对比
- IT人才供不应求,大数据分析程序员今后的发展道路
- 狂肝两万字带你用pytorch搞深度学习!!!
- 华为上研所无线嵌入式优招面经
- VGA带音频转HDMI转换芯片|VGA转HDMI 转换器方案|VGA转HDMI转换器芯片介绍
- 域服务器用户一直被锁,Windows Server 2019 域用户账户锁定策略
- 15.CUDA编程手册中文版---附录K CUDA计算能力
- 服务器维修工程师面试,设备维修工程师面试内容有哪些?
- PTA 1063 计算谱半径(Python3)
- 计算机二级网上报名中北大学,2018年中北大学英语六级考试报名通知
- Fast multi-language LSTM-based online handwriting recognition 在线手写识别
热门文章
- win10电脑没声音解决办法
- 慢慢提高动手能力,尝试做个爱死机的机器人K-VRC
- 计算机怎么操作文档,iPhone如何操作电脑文件 文件共享功能了解一下
- C# 阿里云Redis存储服务 使用总结
- python负号无法显示_一次性解决matplotlib中文显示出错(方框),负号显示出错(方框)。...
- 解决Android平台移植ffmpeg的一些问题
- Qt实现图片水平垂直翻转,旋转
- 小程序界面都有什么特点?
- 工程管理知识体系指南-第一章 序论学习
- html domin属性,cookie中的path与domain属性详解