Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Keras 如何将单词矢量化?_Keras_Scikit Learn_Nlp - Fatal编程技术网

Keras 如何将单词矢量化?

Keras 如何将单词矢量化?,keras,scikit-learn,nlp,Keras,Scikit Learn,Nlp,根据Keras的文件: 主输入将以整数序列的形式接收标题(每个整数编码一个单词)。整数将介于1之间 和10000(10000个单词的词汇表),序列将是 100字长 在这里,编码单词的方法似乎只是简单地使用构建的词汇表中的单词索引来表示单词。如果训练数据中有“n”个字,那么向量化的整数i将是[0,n-1] 但在scikit learn的CountVectorizer中: 此实现生成计数的稀疏表示 使用scipy.sparse.csr_矩阵 这两种文字矢量化方式之间有什么联系吗?计数向量表示是否比基

根据Keras的文件:

主输入将以整数序列的形式接收标题(每个整数编码一个单词)。整数将介于1之间 和10000(10000个单词的词汇表),序列将是 100字长

在这里,编码单词的方法似乎只是简单地使用构建的词汇表中的单词索引来表示单词。如果训练数据中有“n”个字,那么向量化的整数i将是[0,n-1]

但在scikit learn的CountVectorizer中:

此实现生成计数的稀疏表示 使用scipy.sparse.csr_矩阵


这两种文字矢量化方式之间有什么联系吗?计数向量表示是否比基于索引的向量化更有效?CountVectorizer会考虑字频

这是两件完全不同的事情。Keras及其索引和嵌入用于深度学习,scikit learn及其
CountVectorizer
来自经典机器学习

在Keras(或一般的深度学习框架)中,单词通常由整数索引表示。然后,这些索引作为嵌入矩阵中的键来提取相应的单词嵌入以用于神经网络。在这种情况下,所有向量都是稠密的,因为神经网络使用稠密的连续表示

在scikit中,learn用于表示句子或文档(而不是真正孤立的单词)。给定一个训练语料库,它将创建语料库中出现的单词的词汇表(使用
fit
方法)。然后,一个句子或文档被表示为出现在其中的单词的频率向量(当调用
transform
方法时)。由于大多数词汇表不会出现在单个文档中,因此许多值都是零,因此使用稀疏向量是有意义的

这种表示对于传统的机器学习来说是有意义的。通过深入学习,您可以使用嵌入、平均化和RNN/CNN覆盖它们,或者其他任何方式