问题描述
这是我的培训:
import fasttext
model = fasttext.train_unsupervised('data.txt',model='skipgram')
model.get_input_vector(0)
# array([-0.1988439,0.40966552,0.47418243,0.148709,0.5891477
另一方面,让我们将第一个字符串输入到我们的模型中:
model[data.iloc[0]]
# array([ 0.10782535,0.3055557,0.19097836,-0.15849613,0.14204402
我们得到一个不同的向量。
为什么?
解决方法
您应该已经详细解释了 data
结构。顺便说一下,当您使用 model[data.iloc[0]]
时,它相当于 model.get_word_vector(data.iloc[0])
。所以,你应该向模型传递一个词。
另一方面,model.get_input_vector(0)
可能会向模型输入一个句子。因此,如果 model.get_input_vector(0)
是一个句子,您可以将 model.get_sentence_vector(data.iloc[0])
的结果与 data.iloc[0]
进行比较。否则,您应该将数据中的第一个单词输入到 model
中,然后比较它们的向量。