1. Bert 介绍
官网访问:https://huggingface.co/
1.1 Bert 简介
1.2 注意力模型
注意力模型,可以参考知乎博客: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已经将注意力模型封装好了,即使不知道其原理,也不影响使用。
1.2 Bert 操作示例
bert-base-chinese 一般可以用来做填词、情感分类等。
点击Compute
下面的案例是填词的作用。
下面的案例,判断——巴黎是法国的首都
还有别的模型,类似下面的【中英文翻译模型】
而这些预训练的模型,如果效果不好,我们也可以
这就很好的解决了小伙伴的迷惑,由于自然语言处理它的每个国家的语言比较复杂,而且某一门语言它所对应的需求也各式各样,所以才会出现针对不同的需求指定了不同的模型。即使我们使用了这个模型之后效果一般,我们可以像之前在深度学习那样,我们也叫做迁移学习,可以在现有的基础之上,去修改一些参数。
总而言之,有了Bert之后,它对于我们自然语言处理的精度效果有大大的提升。
2. 代码示例
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)
2.1 代码流程
代码片段涉及到了使用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
。这个输出是用于后续的模型预测或者微调过程的输入。文章来源:https://www.toymoban.com/news/detail-743828.htmltf.Tensor([[ 101 3614 6816 3341 1168 100 686 4518 102]], shape=(1, 9), dtype=int32)
目的:
这段代码的主要目的是为了准备数据,将自然语言文本转换为BERT模型可以接受的格式,这是使用BERT模型进行任务(如分类、问答等)前的标准步骤。文章来源地址https://www.toymoban.com/news/detail-743828.html
到了这里,关于NLP之Bert介绍和简单示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!