首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Keras中使用快速文本预训练模型作为嵌入层

在Keras中使用快速文本预训练模型作为嵌入层
EN

Stack Overflow用户
提问于 2020-05-18 07:07:18
回答 1查看 2.2K关注 0票数 2

我的目标是创建文本生成器,它将生成基于我提供给它的学习集的非英语文本。

我目前正处于弄清楚模型实际应该是什么样子的阶段。我正在尝试在我的网络中实现快速文本预训练模型作为嵌入层。但由于这一点,我有一些问题。

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

2)如何将Keras Embedding()与fasttext模型进行交换?

现在我有了类似这样的东西:

代码语言:javascript
复制
    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()),我希望放入快速文本向量。

我希望我已经解释清楚了。

EN

回答 1

Stack Overflow用户

发布于 2020-05-18 15:08:18

如果你不打算微调嵌入,我会加载FastText嵌入,把每个句子变成一个2-D (长度×嵌入暗淡)。张量,并使用这些作为网络的输入。

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

注意,Embedding构造器的第二个参数不是序列长度(如代码片段所示),而是词汇表中的单词数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61859973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档