Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.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
Python 生成等距离多维向量作为嵌入矩阵_Python_Tensorflow_Vector_Keras_Embedding - Fatal编程技术网

Python 生成等距离多维向量作为嵌入矩阵

Python 生成等距离多维向量作为嵌入矩阵,python,tensorflow,vector,keras,embedding,Python,Tensorflow,Vector,Keras,Embedding,我需要生成一个嵌入矩阵来代替图层。我先验地知道10个特征之间的相似性,它们之间的距离都是相等的,我无法通过训练生成矩阵,因为我没有足够的数据 要做到这一点,我必须生成10个任意大小的向量,即10个,但它们的大小都相同,彼此之间的距离都相等,单个维度的值是介于-1和1之间的数字,所有这些都是python中的 有人知道如何做到这一点吗?我相信您有一些单词作为功能,并且希望将它们表示为嵌入向量 有几种方法可以创建单词嵌入,我将介绍其中的一些方法,从最简单的方法到复杂但非常强大的方法 一,。计数向量 这

我需要生成一个嵌入矩阵来代替图层。我先验地知道10个特征之间的相似性,它们之间的距离都是相等的,我无法通过训练生成矩阵,因为我没有足够的数据

要做到这一点,我必须生成10个任意大小的向量,即10个,但它们的大小都相同,彼此之间的距离都相等,单个维度的值是介于-1和1之间的数字,所有这些都是python中的


有人知道如何做到这一点吗?

我相信您有一些单词作为功能,并且希望将它们表示为嵌入向量

有几种方法可以创建单词嵌入,我将介绍其中的一些方法,从最简单的方法到复杂但非常强大的方法

一,。计数向量

这是一种从您的唯一标记中创建向量的方法。例如,如果词汇表包含三个单词,比如[and,basketball,more],那么文本more将映射到向量[1,0,2]:单词and出现一次,单词basketball根本不出现,单词more出现两次。这种文本表示被称为单词包,因为它完全失去了单词的顺序

二,。TF-IDF术语频率逆文档频率

计数向量的问题在于它忽略了重要的 因为与普通词相比,它的外观更少。在上面的例子中,篮球这个词被忽略了,更多的被重视。为了克服这种TF-IDF方法最合适,例如, 让我们假设单词和、basketball和更多分别出现在训练集中的200、10和100个文本实例中:在这种情况下,最终向量将是[1/log200、0/log10、2/log100],大约等于[0.19,0]。, 0.43]

三,。预先训练的词向量

这些是在维基百科或其他一般来源上的数百万文本数据上训练的嵌入向量,它将拥有所有可用的英语通用术语。有许多开源的预先训练过的词向量,其中一些是可用的

谷歌新闻媒介。 手套 fastText由Facebook提供。 您可以根据模型的可用性选择向量维度,例如,您可以为每个单词选择501002003维度向量

from gensim.models import Word2Vec

#loading the downloaded model
model = Word2Vec.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True, norm_only=True)

#the model is loaded. It can be used to perform all of the tasks mentioned above.

# getting word vectors of a word
dog = model['dog']
有关创建单词嵌入的更多详细信息和其他方法,请参阅由NCC编写的


希望这能回答你的问题,学习愉快

我相信您有一些单词作为特征,您希望将它们表示为嵌入向量

有几种方法可以创建单词嵌入,我将介绍其中的一些方法,从最简单的方法到复杂但非常强大的方法

一,。计数向量

这是一种从您的唯一标记中创建向量的方法。例如,如果词汇表包含三个单词,比如[and,basketball,more],那么文本more将映射到向量[1,0,2]:单词and出现一次,单词basketball根本不出现,单词more出现两次。这种文本表示被称为单词包,因为它完全失去了单词的顺序

二,。TF-IDF术语频率逆文档频率

计数向量的问题在于它忽略了重要的 因为与普通词相比,它的外观更少。在上面的例子中,篮球这个词被忽略了,更多的被重视。为了克服这种TF-IDF方法最合适,例如, 让我们假设单词和、basketball和更多分别出现在训练集中的200、10和100个文本实例中:在这种情况下,最终向量将是[1/log200、0/log10、2/log100],大约等于[0.19,0]。, 0.43]

三,。预先训练的词向量

这些是在维基百科或其他一般来源上的数百万文本数据上训练的嵌入向量,它将拥有所有可用的英语通用术语。有许多开源的预先训练过的词向量,其中一些是可用的

谷歌新闻媒介。 手套 fastText由Facebook提供。 您可以根据模型的可用性选择向量维度,例如,您可以为每个单词选择501002003维度向量

from gensim.models import Word2Vec

#loading the downloaded model
model = Word2Vec.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True, norm_only=True)

#the model is loaded. It can be used to perform all of the tasks mentioned above.

# getting word vectors of a word
dog = model['dog']
有关创建单词嵌入的更多详细信息和其他方法,请参阅由NCC编写的


希望这能回答你的问题,学习愉快

@Nixiam你在寻找具体的答案吗?如果是,请详细说明你的问题。我可以相应地修改我的答案。@Nixiam你在寻找具体的答案吗?如果是,请详细说明你的问题。我可以相应地修改我的答案。