ELMo(Embeddings from Language Models) --学习笔记

版权声明:转载请声明转自Juanlyjack https://blog.csdn.net/m0_38088359/article/details/83904566

学习参考自:
(1)、ELMo 最好用的词向量《Deep Contextualized Word Representations》
(2)、吾爱NLP(5)—词向量技术-从word2vec到ELMo
(3)文本嵌入的经典模型与最新进展

1、ELMo简介

基于大量文本,ELMo模型从深层的双向语言模型(deep bidirectional language model)中的内部状态(internal state)学习而来。
ELMo的优势:
(1)ELMo能够学习到词汇用法的复杂性,比如语法、语义。
(2)ELMo能够学习不同上下文情况下的词汇多义性。
在这里插入图片描述

ELMo与word2vec最大的不同:
Contextual: The representation for each word depends on the entire context in which it is used. 
(即词向量不是一成不变的,而是根据上下文而随时变化,这与word2vec或者glove具有很大的区别)

引例:
举个例子:针对某一词多义的词汇w=“苹果”
文本序列1=“我 买了 六斤 苹果。”
文本序列2=“我 买了一个 苹果 7。”
上面两个文本序列中都出现了“苹果”这个词汇,但是在不同的句子中,它们的含义显示是不同的,一个属于水果领域,一个属于电子产品领域,如果针对“苹果”这个词汇同时训练两个词向量来分别刻画不同领域的信息呢?答案就是使用ELMo。

它首先在大文本语料库上预训练了一个深度双向语言模型(biLM),然后把根据它的内部状态学到的函数作为词向量。实验表明,这些学到的词表征可以轻易地加入到现有的模型中,并在回答问题、文本蕴含、情感分析等 6 个不同的有难度的 NLP 问题中大幅提高最佳表现。实验表明显露出预训练模型的深度内部状态这一做法非常重要,这使得后续的模型可以混合不同种类的半监督信号

2、ELMo原理

在这里插入图片描述

3、ELMo的使用方法

在这里插入图片描述

4、ELMo的安装

ELMo集成在了基于pytorch的allennlp这个工具包当中,所以我们要是用ELMo必须要先安装pytorch,然后再安装allennlp。
安装请参照官网指示。

注意:allennlp这个包目前不支持windows,所以要使用allennlp必须要在linux上进行安装使用。代码如下:

conda install pytorch -c pytorch
pip3 install torchvision
pip install allennlp

猜你喜欢

转载自blog.csdn.net/m0_38088359/article/details/83904566