
在本篇文章中,我们将探讨如何进行 Token Classification(标注分类),这是一类为句子中的每个 token(词或子词)分配标签的任务。该任务可以解决很多问题,例如命名实体识别(NER)、词性标注(POS)和分块(Chunking)。本文将聚焦于命名实体识别任务,并展示如何使用 BERT 模型进行微调。
1. 数据加载
我们使用 CoNLL-2003 数据集,这是一个常用的命名实体识别数据集。通过 load_dataset() 函数加载数据集:
from datasets import load_dataset
raw_datasets = load_dataset("conll2003")
加载后的数据集包含三个任务的标签:NER、POS 和 Chunking。我们主要关注 NER 任务,因此接下来我们会处理 ner_tags 标签。
2. 数据预处理
在进行标注分类任务时,输入文本需要被转换为 token ID。由于我们处理的是预分词数据(即每个输入已按词分割),我们需要使用 is_split_into_words=True 参数告诉 tokenizer 如何处理这些分词数据。首先,下载并缓存 BERT 预训练模型的 tokenizer:
from transformers import AutoTokenizer
model_checkpoint = "bert-base-cased"
tokenizer = AutoTokenizer.from_pretrained(model_checkpoint)
我们可以用 tokenizer 处理预分词输入,同时利用 word_ids() 方法确保 token 与标签正确对齐:
inputs = tokenize

最低0.47元/天 解锁文章
144

被折叠的 条评论
为什么被折叠?



