来自Keras的lm_1b的字符嵌入

cha*_*ase 17 nlp machine-learning language-model keras word-embedding

我想在Keras NN模型中使用一些经过预先训练的单词嵌入,这些模型已由Google在一篇非常着名的文章中发表.他们提供了训练新模型的代码,以及这里的嵌入.

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

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

embedding_layer = Embedding(number_of_words??,
                            out_dim=128??,
                            weights=[pre_trained_matrix_here],
                            input_length=60??,
                            trainable=False)
Run Code Online (Sandbox Code Playgroud)

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

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

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

小智 0

对于与单词或文本编码相关的 NLP 应用程序,我将使用 CountVectorizer 或 TfidfVectorizer。两者均在以下参考文献中针对 Python 进行了简要介绍和描述:http://www.bogotobogo.com/python/scikit-learn/files/Python_Machine_Learning_Sebastian_Raschka.pdf

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