Python 加载预先训练的fasttext模型

Python 加载预先训练的fasttext模型,python,nlp,fasttext,Python,Nlp,Fasttext,我有一个关于fasttext()的问题。我想下载一个预先训练好的模型,并使用它从文本中检索单词向量 下载了预先训练好的模型()后,我解压缩了它,得到了一个.vec文件。如何将其导入fasttext 我已尝试使用上述函数,如下所示: import fasttext import io def load_vectors(fname): fin = io.open(fname, 'r', encoding='utf-8', newline='\n', errors='ignore')

我有一个关于fasttext()的问题。我想下载一个预先训练好的模型,并使用它从文本中检索单词向量

下载了预先训练好的模型()后,我解压缩了它,得到了一个.vec文件。如何将其导入fasttext

我已尝试使用上述函数,如下所示:

import fasttext
import io

def load_vectors(fname):
    fin = io.open(fname, 'r', encoding='utf-8', newline='\n', errors='ignore')
    n, d = map(int, fin.readline().split())
    data = {}
    for line in fin:
        tokens = line.rstrip().split(' ')
        data[tokens[0]] = map(float, tokens[1:])
    return data

vectors = load_vectors('/Users/username/Downloads/wiki-news-300d-1M.vec')
model = fasttext.load_model(vectors)

然而,我不能完全运行这段代码,因为python崩溃了。我如何才能成功加载这些预先训练好的词向量


感谢您的帮助。

例如,与word2vec或glove相比,FastText的优势在于它们使用子词信息返回OOV(词汇表外)词的向量

因此,他们提供了两种类型的预训练模型:
.vec
.bin

.vec
是一个单词->向量信息的字典,单词向量是为训练词汇表中的单词预先计算的

.bin
是一个二进制快速文本模型,可以使用
fasttext.load_模型('file.bin')
加载,并且可以为不可见的单词(OOV)提供单词向量,可以进行更多训练

在您的情况下,您正在加载一个
.vec
文件,因此
vectors
是数据的“最终形式”
fasttext.load\u model
需要一个
.bin
文件名。 如果您需要的不仅仅是python字典,您可以使用它

由于经过训练的单词向量独立于它们的训练方式(Word2Vec、FastText、VarEmbed等),因此它们可以由一个独立的结构表示,如本模块中实现的那样


请编辑您的问题以指定是否存在错误消息。矢量文件有多大?你的机器有多少内存?