赞
踩
注意力模型,可以参考知乎博客:https://zhuanlan.zhihu.com/p/37601161
即适合于图形和图像,也适合于自然语言处理。可以帮助我们快速识别重点。
例如在识别一张图片的时候,我们并不知道哪个地方是重点。在开始读一本书的时候,不知道哪个章节是重点。很快的进行一个全局的扫描,然后抓住了一些重要的部分,然后对该部分做精读、细读。以提高识别图片和阅读文章的效率。
这意味着神经网络阶段提高效率有两个方向:
在下面的图中,根据语言的提示,它很快就可以识别出哪部分是重要的,例如下图中的dog,意味着这些特征在后续会有更高的权重。
在经济学中我们常说“二八定律”,在认知学中有一个叫法“刻意练习”,这都是人类注意力模型的体现。
下图中
x
4
x_4
x4不仅受
x
3
x_3
x3的影响,还可能受
x
1
x_1
x1的影响。可以把LSTM理解成最原始的注意力。
拿到句子之后首先做分词,然后去词库中做相应的匹配和转换。在翻译Tom chase jerry的时候,最前面的这三个词,每个词的重要性很明显是不一样的。
一旦句子比较长的时候,用RNN就会有很大的问题,所以引入了LSTM。现阶段比LSTM更高级的就是注意力模型。
下面公式,有可能根据不同的词,权重参数是不一样的。
Bert已经将注意力模型封装好了,即使不知道其原理,也不影响使用。
bert-base-chinese 一般可以用来做填词、情感分类等。
点击Compute
下面的案例是填词的作用。
下面的案例,判断——巴黎是法国的首都
还有别的模型,类似下面的【中英文翻译模型】
而这些预训练的模型,如果效果不好,我们也可以
这就很好的解决了小伙伴的迷惑,由于自然语言处理它的每个国家的语言比较复杂,而且某一门语言它所对应的需求也各式各样,所以才会出现针对不同的需求指定了不同的模型。即使我们使用了这个模型之后效果一般,我们可以像之前在深度学习那样,我们也叫做迁移学习,可以在现有的基础之上,去修改一些参数。
总而言之,有了Bert之后,它对于我们自然语言处理的精度效果有大大的提升。
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-chinese")
input_ids = tokenizer.encode('欢迎来到Bert世界', return_tensors='tf')
print(input_ids)
输出内容:
tf.Tensor([[ 101 3614 6816 3341 1168 100 686 4518 102]], shape=(1, 9), dtype=int32)
代码片段涉及到了使用transformers
库来加载一个预训练的BERT模型的分词器,并用它来对一段文本进行编码。以下是整体流程和目的的分步说明:
导入AutoTokenizer类:
from transformers import AutoTokenizer
这行代码导入了transformers
库中的AutoTokenizer
类。这个类可以自动检测并加载与给定模型相对应的分词器(tokenizer)。
加载分词器:
tokenizer = AutoTokenizer.from_pretrained("bert-base-chinese")
这行代码创建了一个分词器的实例。from_pretrained
方法用于加载预先训练好的分词器,这里是"bert-base-chinese",专门为中文文本设计的BERT模型的分词器。
文本编码:
input_ids = tokenizer.encode('欢迎来到Bert世界', return_tensors='tf')
这行代码用分词器将提供的中文字符串'欢迎来到Bert世界'
转换成BERT模型能够理解的输入格式,即一系列的数字ID。每个ID对应原始文本中的一个词或子词单位。return_tensors='tf'
指定返回的格式为TensorFlow张量。
打印输出:
print(input_ids)
这行代码输出编码后的input_ids
。这个输出是用于后续的模型预测或者微调过程的输入。
tf.Tensor([[ 101 3614 6816 3341 1168 100 686 4518 102]], shape=(1, 9), dtype=int32)
目的:
这段代码的主要目的是为了准备数据,将自然语言文本转换为BERT模型可以接受的格式,这是使用BERT模型进行任务(如分类、问答等)前的标准步骤。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。