拿来即可用系列——10行代码搭建elmo文本分类模型

一、前言

很遗憾的说,elmo与bert相比,几乎没什么优势,所以在NLP任务中,基本可以利用bert替代elmo。既然这样为什么写这篇文章来介绍elmo文本分类的实践,首先了解elmo,可以更好的理解bert的产生的过程,另外呢,如果你打比赛,可能需要多做一个模型来融合。

二、Elmo文本分类

#Author = TJL
#date:2020/12/11
import tensorflow as tf
import os
from tensorflow import keras
import tensorflow_hub as hub
import numpy as np
os.environ["TFHUB_CACHE_DIR"]='preprocessing/tfhub' #设置模型缓存路径

train_data=np.array(['it is cool','it is bad','it is wonderful']) #3,1

train_label=np.array([1,0,1])
valid_data,valid_label=train_data,train_label
embedding = "https://tfhub.dev/google/tf2-preview/gnews-swivel-20dim/1"
hub_layer = hub.KerasLayer(embedding,
                           input_shape=[],
                           dtype=tf.string,
                           trainable=True)
model = keras.Sequential()
model.add(hub_layer)
model.add(keras.layers.Dense(16, activation='relu'))
model.add(keras.layers.Dense(2, activation='softmax'))

model.summary()

model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['acc'])
model.fit(train_data,train_label,epochs=5,batch_size=2,validation_data=(valid_data,valid_label))
logits=model.predict(valid_data)
print(logits) #shape(None,2)

 可见,借用tensorflow_hub实现elmo文本分类是非常的简便的。具体的运行环境要求:tensorflow>=2.0,并且需要pip install tensorflow_hub模块

代码完整的介绍可见:https://github.com/ttjjlw/NLP/tree/main/Classify%E5%88%86%E7%B1%BB/elmo/tf.keras

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值