Neural network NLP ELMo模型剪枝输入

Neural network NLP ELMo模型剪枝输入,neural-network,nlp,word-embedding,allennlp,elmo,Neural Network,Nlp,Word Embedding,Allennlp,Elmo,我试图检索基于tensorflow hub上可用的预训练ELMo模型的单词嵌入。我正在使用的代码从这里修改: 我输入的句子是 bod=“即将推出,每个项目都将在上一个月制作一个视频,我们期待着在这次会议上与您讨论这一点。这次他们已经制定了视频奖的选择标准,我们将在本次会议上获得最佳位置” 这些是我想要嵌入的关键字: 单词=[“做”、“做”、“视频”] 这个句子长236个字符。 这张照片显示 但是当我把这个句子放到ELMo模型中时,返回的张量只包含一个长度为48的字符串 当我试图为超出48

我试图检索基于tensorflow hub上可用的预训练ELMo模型的单词嵌入。我正在使用的代码从这里修改:

我输入的句子是
bod=“即将推出,每个项目都将在上一个月制作一个视频,我们期待着在这次会议上与您讨论这一点。这次他们已经制定了视频奖的选择标准,我们将在本次会议上获得最佳位置”

这些是我想要嵌入的关键字:
单词=[“做”、“做”、“视频”]

这个句子长236个字符。 这张照片显示

但是当我把这个句子放到ELMo模型中时,返回的张量只包含一个长度为48的字符串

当我试图为超出48长度限制的关键字提取嵌入时,这就成了一个问题,因为关键字的索引显示超出了该长度:

这是我用来获取“bod”中单词索引的代码(如上所示)

但我一直遇到这样的错误:

我试图寻找ELMo文档来解释为什么会发生这种情况,但我没有发现任何与删减输入问题相关的内容

任何建议都将不胜感激


谢谢

这不是AllenNLP问题,因为您使用的是基于tensorflow的ELMo实现


也就是说,我认为问题在于ELMo嵌入的是令牌,而不是字符。您将获得48个嵌入,因为字符串有48个令牌。

是的,我几天前就意识到了这一点。忘了更新这里。非常感谢。
embeddings = elmo([bod],
signature="default",
as_dict=True)["elmo"]
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
num_list=[]
for item in words:
  print(item)
  index = bod.index(item)
  num_list.append(index)
num_list