文本数据向量化
文本数据的格式是一个序列数据,常见的有单词和字符序列。如果需要应用到深度学习网络模型中,就需要将将这些序列进行有效编码。
这里所谓的编码其实就将这些单词或者字符进行向量化。
向量化:就是将文本信息转化为数据张量信息。主要的方法如下:将文本分割为单词,并将每个单词转换为一个向量。
将文本分割为字符,并将每个字符转换为一个向量。
提取单词或字符的 n-gram,并将每个 n-gram 转换为一个向量。n-gram 是多个连续单词或字符的集合(n-gram 之间可重叠)。
上面的整个过程就是将文本信息进行单元分割。这里有一个几个概念:
标记(token): 将文本分解而成的单元(单词、字符或 n-gram)
分词(tokenization): 将文本分解成标记的过程
向量编码: 将向量与标记相关联的方法one-hot 编码(one-hot encoding)
标记嵌入[token embedding] 词嵌入(word embedding)
总结文本数据向量化的三个过程:原始文本(原始数据)
将文本分解成标记 (标记)
将标记进行编码 (向量编码)
如下图所示:
n-gram 是从一个句子中提取的 N 个(或更少)连续单词(或字符)的集合。
例如:“The cat sat on the mat.”
二元语法(2-gram)集合:
{"The", "The cat", "cat", "cat sat", "sat",
"sat on", "on", "on the", "the", "the mat", "mat"}
三元语法(3-gram)集合:
{"The", "The cat", "cat", "cat sat", "The cat sat",
"sat", "sat on", "on", "cat sat on", "on the", "the",
"sat on the", "the mat", "mat", "on the ma