18

我想在 Keras NN 模型中使用一些预训练的词嵌入,这些模型已由 Google 在一篇非常著名的文章中发表。他们提供了训练新模型的代码,以及此处的嵌入。

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

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

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 中使用这些词/字符嵌入和/或在 keras 中构建模型的字符/词嵌入部分,以便可以为其他 NLP 任务添加更多层?

4

2 回答 2

2

Embedding层只为输入单词的整数索引提取嵌入(权重矩阵的列),它对字符串一无所知。这意味着您需要首先使用与您从中获取嵌入的模型中使用的相同词汇表将输入的单词序列转换为索引序列。

于 2019-03-29T08:18:30.903 回答
0

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

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

于 2018-08-02T07:35:17.277 回答