来自Keras的lm_1b的字符嵌入

问题描述 投票:16回答:2

我想在Keras NN模型中使用一些经过预先训练的单词嵌入,这些模型已由Google在very well known article上发布。他们提供了训练新模型的代码,以及嵌入式here

但是,从文档中不清楚如何从简单的python函数调用中从给定的字符串(word)中检索嵌入向量。许多文档似乎都集中在将矢量转储到整个句子的文件中,可能是为了感情分析。

到目前为止,我已经看到您可以使用以下语法提供预训练嵌入:

embedding_layer = Embedding(number_of_words??,
                            out_dim=128??,
                            weights=[pre_trained_matrix_here],
                            input_length=60??,
                            trainable=False)

但是,将不同的文件及其结构转换为pre_trained_matrix_here对我来说并不十分清楚。

它们有几个softmax输出,所以我不确定哪个属于哪个 - 以及如何将输入中的单词与它们所拥有的单词词典对齐。

有没有简单的方法在keras中使用这些word / char嵌入和/或在keras中构建模型的字符/单词嵌入部分,以便可以为其他NLP任务添加更多层?

machine-learning nlp keras language-model word-embedding
2个回答
0
投票

对于与单词或文本编码相关的NLP应用程序,我将使用CountVectorizer或TfidfVectorizer。在下面的参考文献中,两者都以Python的简短方式公布和描述:http://www.bogotobogo.com/python/scikit-learn/files/Python_Machine_Learning_Sebastian_Raschka.pdf

CounterVectorizer可以作为SPAM-HAM检测器用于简单应用,而TfidfVectorizer可以更深入地了解每个术语(单词)在文档中的频率方面的相关性以及出现的文档数量。所考虑的术语的判别程度。此文本特征提取器可以考虑停止字移除和词形还原来增强特征表示。


0
投票

Embedding层仅为输入字的整数索引选取嵌入(权重矩阵的列),它不知道有关字符串的任何信息。这意味着您需要首先将输入的单词序列转换为索引序列,使用与嵌入的模型中使用的词汇表相同的词汇表。

© www.soinside.com 2019 - 2024. All rights reserved.