Получите оценку сходства между двумя словами, используя предварительно обученный Bert, Elmo

Я пытаюсь сравнить Glove, Fasttext, Bert, Elmo на основе сходства между двумя словами, используя предварительно обученные модели Wiki. У Glove и Fasttext были предварительно обученные модели, которые можно было легко использовать с gensim word2vec в python. Есть ли у Элмо и Берта такие модели?


person Yatin Gupta    schedule 15.09.2019    source источник


Ответы (1)


Ниже приведен код Python для использования доступной модели Elmo в Tensorflow и сравнения сходства между двумя строками:

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"]))
person hawk    schedule 20.09.2019