*注:本文仅适用于已了解图像卷积过程的童鞋们
自然语言处理之文本卷积 1.文本的向量表示 2.文本的1维卷积 3.池化
在文本处理时,首先要将文本用向量表示出来。这里用词袋模型和word2vec来举例。
1.词袋模型
•每个单词用一个one-hot vector来表示
•将每个单词的向量相加得到文本的向量表示
•向量的长度会很长,并且会稀疏
2.word2vec
•用word2vec embeddings来表示每个单词
•每个向量的长度减少,并且是稠密向量
•将每个单词的向量相加来得到文本的向量表示
3.卷积核
卷积核的宽度和词向量的长度相同,行数代表n-grams中的n,即有n行则这个卷积核一次能卷积n个词向量的信息
4.向量的距离
在word2vec中,意义越接近的词会有越接近的向量表示,用cosine距离来表示就会越小
5.值
每次经过卷积操作得到一个值,这个值越大说明被卷积的词向量(n个)和卷积核的距离越小,也就意味着表示的意义接近。例如,卷积核代表动物+动作,而被卷积的词向量组合代表cat sitting和dog resting,这样卷积得到的值就会比较大。
•卷积核的大小可改变(行数),可以进行3-gram,4-gram卷积
•和图像处理一样,需要多个卷积核
•1维卷积是因为只在一个方向上进行卷积(时间方向)
一个卷积核对一段文本进行卷积最终得到一个向量(与前面直接将每个词向量相加得到得到文本向量不同)。
进行最大池化。由于与卷积核越接近的矩阵卷积得到的值越大,因此最大池化最终得到一个最能表达这个卷积核筛选出来的特征的值。
•用3,4,5-gram的卷积核各100个来处理文本,经过卷积池化最终得到一个长度为300的向量
•这个向量可以用于机器学习模型中(MLP、朴素贝叶斯等)
•这样解决了处理文本信号时输入长度不一的问题。最终表示文本的向量的长度只取决于卷积核的个数,而与输入的长度无关。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。