问题标签 [elmo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
833 浏览

python - 使用 Elmo 模型预测句子中的掩码词

我有一个作业,要求我构建一个可以从句子中猜出缺失单词的算法。例如,当输入句子是:“I take my **** for a walk this morning”时,我希望输出猜测丢失的单词(dog)。我的任务要求我从头开始训练自己的模型。我建立了我的语料库,它有大约 500.000 个句子。我清理了语料库。它都是小写的,每个句子都用换行符 (\n) 分隔。我也有 words.txt 文件,它按频率降序列出所有唯一单词。词汇文件以前 3 行 'S'、'/S' 和 'UNK' 开头(这 3 个标记在词汇表中用 <> 包围,但在本网站中使用 <> 会出于某种原因隐藏它们之间的字符) .

我按照https://github.com/allenai/bilm-tf中的说明进行操作,它提供了使用 Elmo 从头开始​​训练您自己的模型的步骤。

在收集了 data.txt 和词汇文件后,我使用了

并使用 tensorflow 和启用 CUDA 的 gpu 训练我的语料库。

训练完成后,我使用了以下命令:

这给了我 weights.hdf5 和 options.json 文件。我在训练模型时收到的唯一警告是:

在 AllenAI repo 中提到它是无害的。因此可以安全地假设模型训练阶段已正确完成。我的问题是,在此之后我不知道该怎么做。在这个 stackOverflow 链接Predicting Missing Words in a sentence - Natural Language Processing Model中,答案表明可以使用以下代码来预测丢失的单词:

不幸的是,上面的代码是针对 Bert 模型的。我的任务要求我使用 Elmo 模型。我试图为 Elmo 找到一个类似于 pytorch_pretrained_bert的库,但我找不到任何东西。我可以做些什么来使用我的 Elmo 模型来预测被屏蔽的单词?

谢谢。

0 投票
1 回答
1429 浏览

python - 使用 Tensorflow-Hub 中的 ELMo 时显着增加内存消耗

我目前正在尝试比较数百万个文档的相似性。对于 CPU 上的第一次测试,我将它们减少到每个大约 50 个字符,并尝试一次获得 10 个字符的 ELMo 嵌入,如下所示:

然而,即使是这个小例子,在大约 300 个句子(甚至不保存向量)之后,程序也会消耗高达 12GB 的 RAM。这是一个已知问题(我发现的其他问题提出了类似的问题,但不是那么极端)还是我犯了错误?

0 投票
1 回答
449 浏览

nlp - word2vec、glove 和 elmo 有什么区别?

word2vec、glove 和 elmo 有什么区别?根据我的理解,它们都用于训练词嵌入,对吗?

0 投票
0 回答
143 浏览

python - 我们如何修复以下错误“InternalError:无法将元素作为字节获取”?

我是一名学生,我正在尝试在 keras 上使用 elmo 实现文本分类。我从 tensorflow-hub 导入了 elmo 层。

模型 :

x 和 y 是 int32 numpy 数组

在实现上述代码时,我收到以下错误

更新代码

新错误

0 投票
1 回答
554 浏览

tensorflow - 混淆 tensorflow hub 中 elmo 模型的参数“tokens_length”

我正在 tensorflow hub 中查看 ELMo 模型,我不太清楚tokens_length = [6, 5]在流程示例使用中的含义:(https://tfhub.dev/google/elmo/2

它不喜欢输入标记句子的最大长度,也不喜欢 [每个句子的最大单词数,句子数],这让我感到困惑。有人可以解释一下吗?谢谢!

0 投票
1 回答
366 浏览

python-3.x - 为俄语微调 ELMO

如何微调俄语的 ELMO 模型?如果我想用 AllenNLP 做到这一点,我需要一些 options.json 文件,但我不知道从哪里得到它

0 投票
1 回答
155 浏览

python - Keras PREDICTION 抛出'TypeError:ufunc'add'不包含签名匹配类型dtype的循环('

我构建了一个具有以下结构的槽填充(一种序列分类)模型:自定义 ELMo 嵌入层 - BiLSTM - CRF。

它训练得很好。但在预测中我得到:

注意:U4 是一个无符号整数。

此处的类似问题中,建议“使用预测时,test_data 应与 type(training_data[0]) 的数据类型相同,并且它将返回 type(training_labels[0]) 的数据类型”。我已经确认是的,我的每个测试样本都与 training_data[0] 类型相同。

本文末尾的完整错误消息。

注意:这个问题可能与我之前需要将我的训练和测试数据更改为 np.strings 的事实有关,使用:

这是为了避免在模型构建过程中出错,即:str没有属性ndim。如果我不将测试数据转换为 np.str,我会再次收到此错误。

一位同事认为问题出在 Keras 深处某个地方的 add 方法(见错误)。显然,这是一种使用无符号整数的特殊添加方法,它不应该引起这样的问题。

自定义层松散地基于此人的存储库

重现错误:我在这里设置了一个包含代码和一些虚拟数据的 github 存储

完整错误:


我认为我更喜欢的可能性是允许许可!采用可选参数,以允许这样做。

你可以参考这个这个

0 投票
0 回答
397 浏览

python - 如何在自定义图层中重塑 keras 蒙版

注意:我已经在此处发布了有关此问题的信息。我正在创建一个新问题,因为: 1. 我认为这个问题特别与在我的自定义层中重塑我的蒙版有关,但我不确定是否完全忽略了我在原始帖子中写的另一个错误。2. 有很多关于重塑Keras图层或添加Masking图层的帖子,但是我找不到任何关于在图层内重新塑造蒙版的帖子,所以我希望这篇文章可以更普遍地有用。

问题:

我有一个自定义 Keras 层,它接受 2D 输入并返回 3D 输出(batch_size、max_length、1024),然后将其传递给 BiLSTM,然后是 CRF。

自定义 Keras 层是从此存储库中复制的。不同之处在于我从 Elmo 模型中采用 'elmo' 而不是 'default' 输出,因此输出是 BiLSTM 要求的 3D:

result = self.elmo(K.squeeze(K.cast(x, tf.string), axis=1), as_dict=True, signature='default', )['elmo'] # The original code used 'default'

但是,compute_mask 函数不适合我的架构,因为它的输出是 2D。因此我得到错误:

InvalidArgumentError: Incompatible shapes: [32,47] vs. [32,0] [[{{node loss/crf_1_loss/mul_6}}]]

其中 32 是批量大小,47 比我指定的 max_length 小一。

我确定我需要重塑面具,但我无法找到任何方法。

如果需要的话,很高兴用整个东西和/或完整的堆栈跟踪来制作一个 git repo。

自定义 ELMo 层:

模型构建如下:

0 投票
1 回答
768 浏览

nlp - 使用预训练的 Bert、Elmo 获得 2 个单词之间的相似度分数

我正在尝试使用 Wiki 的预训练模型根据两个单词之间的相似性来比较 Glove、Fasttext、Bert、Elmo。Glove 和 Fasttext 具有预训练模型,可以很容易地在 python 中与 gensim word2vec 一起使用。Elmo 和 Bert 有这样的模型吗?

0 投票
1 回答
1273 浏览

keras - 使用 Keras 的 ELMo 嵌入层中 variable_scope 的问题

我正在尝试使用 tensorflow-gpu==2.0.0-rc0 在 Keras 中为我的模型使用自定义 ElmoEmbeddingLayer。

这是课程:

这是我的模型:

但是,当我尝试拟合我的模型时,我遇到了这个错误,我该如何解决?

RuntimeError: variable_scope elmo_embedding_layer_14_module/ 未使用,但相应的 name_scope 已被占用。