Python 使用fasttext预训练模型作为Keras中的嵌入层

Python 使用fasttext预训练模型作为Keras中的嵌入层,python,machine-learning,keras,nlp,fasttext,Python,Machine Learning,Keras,Nlp,Fasttext,我的目标是创建文本生成器,它将根据我提供的学习集生成非英语文本 我目前正处于弄清楚模型实际应该是什么样子的阶段。我正在尝试将fasttext预训练模型作为嵌入层实现到我的网络中。但正因为如此,我有一些问题 1) 如何正确准备fasttext模型?我应该下载我需要的语言的向量,并将它们包含在项目中,还是必须首先使用skipgram或cbow或其他方式构建它 2) 我应该如何将Keras Embedding()与fasttext模型交换 现在我有这样的东西: model = Sequenti

我的目标是创建文本生成器,它将根据我提供的学习集生成非英语文本

我目前正处于弄清楚模型实际应该是什么样子的阶段。我正在尝试将fasttext预训练模型作为嵌入层实现到我的网络中。但正因为如此,我有一些问题

1) 如何正确准备fasttext模型?我应该下载我需要的语言的向量,并将它们包含在项目中,还是必须首先使用
skipgram
cbow
或其他方式构建它

2) 我应该如何将Keras Embedding()与fasttext模型交换

现在我有这样的东西:

    model = Sequential()
    model.add(Embedding(vocabulary_size, seq_len, input_length=seq_len, output_dim=OUTPUT_DIM))
    model.add(LSTM(50, return_sequences=True))
而不是
model.add(embedded())
我想把fasttext向量放进去


我希望我能解释清楚。

如果你不打算对嵌入进行微调,我只会加载FastText嵌入,将每个句子转换成二维(长度×嵌入尺寸)张量,并将其用作网络的输入

如果您想微调FastText嵌入,当然,它们需要成为Keras中模型的一部分。在这种情况下,您需要使用从FastText模型中提取的嵌入矩阵初始化嵌入层(您只需堆叠所有ord向量)。这是通过使用一个。在任何情况下,您还需要保留一个字典,将单词转换为嵌入矩阵中的索引

请注意,
embedded
constructor的第二个参数不是序列长度(如在代码片段中),而是词汇表中的单词数