我的目标是创建文本生成器,它将生成基于我提供给它的学习集的非英语文本。
我目前正处于弄清楚模型实际应该是什么样子的阶段。我正在尝试在我的网络中实现快速文本预训练模型作为嵌入层。但由于这一点,我有一些问题。
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(Embedding()),我希望放入快速文本向量。
我希望我已经解释清楚了。
发布于 2020-05-18 15:08:18
如果你不打算微调嵌入,我会加载FastText嵌入,把每个句子变成一个2-D (长度×嵌入暗淡)。张量,并使用这些作为网络的输入。
如果您想对FastText嵌入进行微调,它们当然需要成为Keras中模型的一部分。在这种情况下,您需要使用从FastText模型中提取的嵌入矩阵来初始化嵌入层(只需堆叠所有的阶向量)。这是使用constant initializer完成的。在任何情况下,您还需要保留一个字典,以便将单词转换为嵌入矩阵中的索引。
注意,Embedding构造器的第二个参数不是序列长度(如代码片段所示),而是词汇表中的单词数。
https://stackoverflow.com/questions/61859973
复制相似问题