首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么英语ELMo模式为非英语单词提供嵌入?

为什么英语ELMo模式为非英语单词提供嵌入?
EN

Data Science用户
提问于 2020-06-25 10:21:52
回答 1查看 389关注 0票数 0

这是我笔记本上的密码:

代码语言:javascript
复制
%tensorflow_version 1.x
import tensorflow as tf
import tensorflow_hub as hub

elmo = hub.Module("https://tfhub.dev/google/elmo/2", trainable=True)
tf.logging.set_verbosity(tf.logging.ERROR)

def elmo_vectors(x):
    embeddings = elmo(x, signature="default", as_dict=True)["elmo"]
    with tf.Session() as sess:
        sess.run(tf.global_variables_initializer())
        sess.run(tf.tables_initializer())
        return sess.run(embeddings)

非英语输出:(本例中为印地语)

代码语言:javascript
复制
words = ['गोकुल']
v = elmo_vectors(words)
print(v.shape) # (1,1,1024)
print(v[0][0])
# Output: [ 0.3731584   0.5700774  -0.48072845 ... -0.1241736   0.5961436 -0.6986947 ]

关于Tensorflow集线器的预训练ELMo文档显示,它只接受过英语培训。

也就是说,10亿字基准的数据集是基于单语英语数据的。(来源)

那么,我是如何/为什么使用TF集线器模型从ELMo获得非英语词汇的嵌入呢?

EN

回答 1

Data Science用户

发布于 2020-06-25 12:46:09

虽然ELMo接受了英语数据方面的培训,但它不知道您作为输入提供的数据是否为英语。

ELMo的输入是在字符级接收的.可能发生的情况是,1B单词数据混合了印地语字符,在这种情况下,您的字符将按其原样进行编码,或者,很可能您的字符被编码为未知字符(就像单词级NLP的未知令牌<unk> (但用于字符)一样)。

ELMo只是一堆数学运算,所以它需要它接收到的任何东西并计算它的操作,首先,将字符嵌入到传递给它的字符中,然后使用char-CNN,然后是两个高速公路层,最后是双向的LSTM。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/76652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档