热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:elmo模型

篇首语:本文由编程笔记#小编为大家整理,主要介绍了elmo模型相关的知识,希望对你有一定的参考价值。1.概述利用语言模型来获得一个上下文相关的预训练表示

篇首语:本文由编程笔记#小编为大家整理,主要介绍了elmo模型相关的知识,希望对你有一定的参考价值。


1.概述

  利用语言模型来获得一个上下文相关的预训练表示,称为ELMo。它使用的是一个双向的LSTM语言模型,由一个前向和一个后向语言模型构成,目标函数就是取这两个方向语言模型的最大似然。

2.模型结构

  技术图片

 

3.双向语言模型

  前向概率计算:

    技术图片

 

  后向概率计算:

    技术图片

 

  t代表token,即词

  最后将前向和后向合并

    技术图片

 

  最终输出:

    技术图片

 

4.tensorflow的实现

  


import tensorflow_hub as hub
# 加载模型
elmo = hub.Module("https://tfhub.dev/google/elmo/2", trainable=True)
# 输入的数据集
texts = ["the cat is on the mat", "dogs are in the fog"]
embeddings
= elmo(
texts,
signature
="default",
as_dict
=True)["default"]
elmo
= hub.Module("https://tfhub.dev/google/elmo/2", trainable=True)
# 另一种方式输入数据
tokens_input = [["the", "cat", "is", "on", "the", "mat"],
[
"dogs", "are", "in", "the", "fog", ""]]
# 长度,表示tokens_input第一行6一个有效,第二行5个有效
tokens_length = [6, 5]
# 生成elmo embedding
embeddings = elmo(
inputs
={
"tokens": tokens_input,
"sequence_len": tokens_length
},
signature
="tokens",
as_dict
=True)["default"]
from tensorflow.python.keras import backend as K
sess
= K.get_session()
array
= sess.run(embeddings)

 


推荐阅读
author-avatar
一起去钓鱼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有