如何使用fasttext对整个文本进行矢量化?

时间:2017-04-17 16:06:15

标签: facebook nlp fasttext

要获得单词的向量,我可以使用:

model["word"]

但如果我想获得一个句子的向量,我需要对所有单词的向量求和或得到所有向量的平均值。

FastText是否提供了执行此操作的方法?

3 个答案:

答案 0 :(得分:11)

如果您想计算句子或段落的矢量表示,请使用:

$ ./fasttext print-sentence-vectors model.bin < text.txt

这假设text.txt文件包含您想要获取矢量的段落。程序将在文件中每行输出一个矢量表示。

在fasttext repo的README中已经清楚地提到了这一点。 https://github.com/facebookresearch/fastText

答案 1 :(得分:0)

要使用fasttext获取句子的向量,请尝试以下命令

$ echo "Your Sentence Here" | ./fasttext print-sentence-vectors model.bin

有关此示例,请参阅Learn Word Representations In Fasttext

答案 2 :(得分:0)

您也可以使用python wrapper.I可以使用官方安装指南从这里安装: https://fasttext.cc/docs/en/python-module.html#installation

然后:

import fasttext
model = fasttext.load_model('model.bin')
vect = model.get_sentence_vector("some string") # 1 sentence
vect2 = [model.get_sentence_vector(el.replace('\n', '')) for el in text] # for text