文本的表示

您所在的位置:网站首页 文本的向量表示 文本的表示

文本的表示

2024-03-16 21:09| 来源: 网络整理| 查看: 265

文本的理解

文本是常用的序列化数据类型之一。文本数据可以看作是一个字符序列或词的序列。对大多数问题,我们都将文本看作词序列。

深度学习序列模型(如RNN及其变体)能够较好的对序列化数据建模.

深度学习序列模型(如RNN及其变体)可以解决类似以下领域中的问题:

自然语言理解;文献分类、情感分类;问答系统等。 文本向量化的方法

深度学习模型并不能理解文本,因此需要将文本转换为数值的表示形式。 将文本转换为数值表示形式的过程称为向量化过程,可以用不同的方式来完成

传统机器学习中: tf-idf 算法

TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。

TF-IDF的主要思想是:如果某个单词在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。

独热编码 one-hot 或者 k-hot

这个博主讲的不错,这里我就不赘述了。

文本词嵌入(word embedding)

词嵌入方法是我们最常用的文本处理方法。词嵌入是单词的一种数值化表示方式,一般情况下会将一个单词映射到一个高维的向量中(词向量)来代表这个单词 如:

‘机器学习’表示为 [1, 2, 3]‘深度学习’表示为 [1, 3, 3]‘日月光华’表示为 [9, 9, 6] 对于词向量,我们可以使用余弦相似度在计算机中来判断单词之间的距离。

词嵌入实际上是一种将各个单词在预定的向量空间中表示为实值向量的一类技术。

每个单词被映射成一个向量(初始随机化),并且这个向量可以通过神经网络的方式来学习更新。因此这项技术基本集中应用与深度学习领域。

**词嵌入用密集的分布式向量来表示每个单词。**这样做的好处在于与one-hot这样的编码对比,使用词嵌入表示的单词向量往往只有几十或者几百个维度。极大的减少了计算和储存量。

词向量表示方式依赖于单词的使用习惯,这就使得具有相似使用方式的单词具有相似的表示形式。

‘首都’和 ‘北京’是向量空间中很相近的2个词。‘小白不白’和 ‘北京’是向量空间离的很远

词嵌入是从文本语料中学习到的一种将单词表示为预定义大 小的实值向量形式。 学习过程一般与某个神经网络的模型任务一同进行,比如文 档分类。

Word2Vec

Word2Vec是一种能有效从文本语料库中学习到独立词嵌入的统计方法

GloVe

GloVe算法是对于word2vec方法的扩展,更为有效。它由斯坦福大学Pennington等人开发。

使用词嵌入

在自然语言处理项目中使用单词嵌入时,你可以选择下面两种方式:

自己学一个词嵌入使用别人训练好的词嵌入

文本数据在表示为 独热编码 和 词嵌入之前,首先需要表示成 token,每个较小的文本单元称为token,将文本分解成token的过程称为分词(tokenization)。在Python中有很多强大的库可以用来进行分词。

文本的词嵌入表示处理流程

一旦将文本数据转换为token序列,那么就需要将每个token映射到向量。

one-hot(独热)编码和词嵌入是将token映射到向量最流行的两种方法。

代码展示 import torch import numpy as np 分词 s = 'Life is not easy for any of us.We must work,and above all we must believe in ourselves.We must believe that each one of us is able to do some thing well.And that we must work until we succeed.' s 'Life is not easy for any of us.We must work,and above all we must believe in ourselves.We must believe that each one of us is able to do some thing well.And that we must work until we succeed.' import string string.punctuation '!"#$%&\'()*+,-./:;?@[\\]^_`{|}~' for c in string.punctuation: s = s.replace(c, ' ').lower() s 'life is not easy for any of us we must work and above all we must believe in ourselves we must believe that each one of us is able to do some thing well and that we must work until we succeed '

分词方式(一)

list(s) ['l', 'i', 'f', 'e', ' ', 'i', 's', ' ', 'n', 'o', 't', ' ', 'e', 'a', 's', 分词方式(二) s.split() ['life', 'is', 'not', 'easy', 'for', 'any', 'of', 'until', 'we', 'succeed']

分词方式(三): n-gram

向量化: one-hot emdeding

np.unique(s.split()) array(['able', 'above', 'all', 'and', 'any', 'believe', 'do', 'each', 'easy', 'for', 'in', 'is', 'life', 'must', 'not', 'of', 'one', 'ourselves', 'some', 'succeed', 'that', 'thing', 'to', 'until', 'us', 'we', 'well', 'work'], dtype='


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3