1

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

4

1 回答 1

1

以下是在 Tensorflow 上使用 Elmo 的可用模型并比较两个字符串之间的相似性的 Python 代码:

import tensorflow_hub as hub
import tensorflow as tf

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


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 average of ELMo features
    return sess.run(tf.reduce_mean(embeddings,1))


dist=spatial.distance.cosine(elmo_vectors(["partner"]),elmo_vectors(["vendor"]))
于 2019-09-20T12:32:52.070 回答