Python 3.x fasttext在训练后生成不同的向量
以下是我的培训:Python 3.x fasttext在训练后生成不同的向量,python-3.x,machine-learning,nlp,fasttext,Python 3.x,Machine Learning,Nlp,Fasttext,以下是我的培训: import fasttext model = fasttext.train_unsupervised('data.txt', model='skipgram') 现在,让我们观察第一个向量(为了可读性,省略了完整的输出) 另一方面,让我们在模型中输入第一个字符串: model[data.iloc[0]] # array([ 0.10782535, 0.3055557 , 0.19097836, -0.15849613, 0.14204402 我们得到一个不同的向量
import fasttext
model = fasttext.train_unsupervised('data.txt', model='skipgram')
现在,让我们观察第一个向量(为了可读性,省略了完整的输出)
另一方面,让我们在模型中输入第一个字符串:
model[data.iloc[0]]
# array([ 0.10782535, 0.3055557 , 0.19097836, -0.15849613, 0.14204402
我们得到一个不同的向量
为什么?你应该解释更多关于
数据的结构。顺便说一下,当您使用model[data.iloc[0]]
时,它相当于model.get\u word\u vector(data.iloc[0])
。所以,你应该向模特说几句话
另一方面,model.get\u input\u vector(0)
可能会向模型输入一个句子。因此,如果data.iloc[0]
是一个句子,您可以将model.get\u input\u vector(0)
的结果与model.get\u句子\u vector(data.iloc[0])
进行比较。否则,您应该获取数据中要输入到模型的第一个单词,然后比较它们的向量。是的,data.iloc[0]
确实是一个句子。我按照你的回答进行了比较,但奇怪的是,仍然有所不同vectors@Elimination您的意思是将data.iloc[0]
的第一个字传递给模型
?请记住,您可以将data.iloc[0]
传递到model。获取句子向量,然后比较结果。不,我要传递整个句子。这是我的比较。(1) 模型。获取句子向量(data.iloc[0])
(2)模型。获取输入向量(0)
。为什么它们不同?为了更好地理解这个问题,你应该发布一个数据样本。在任何情况下,您确定第一个输入向量与第一行数据相同吗?@请让我们知道data.iloc[0]
bymodel.get\u word\u vector
。
model[data.iloc[0]]
# array([ 0.10782535, 0.3055557 , 0.19097836, -0.15849613, 0.14204402