介绍:
任务描述:语言模型的任务就是给定一个文本序列,然后基于此序列去预测下一个词或一个序列。
数据集:为了方便演示,本教程所使用的数据集是 torchtext 中的 Wikitext-2 数据集
运行环境:代码的测试环境为python3.7,所需的第三方模块和版本如下:
pytorch = 1.40
matplotlib = 3.2.2
torchtext = 0.6.0
# 统一导入工具包
import math
import torch
import os
import torch.nn as nn
import torch.nn.functional as F
import torchtext
import time
import numpy as np
import random
import matplotlib.pyplot as plt
from torchtext.data.utils import get_tokenizer
from torch.nn import TransformerEncoder, TransformerEncoderLayer
文本数据准备:
Wikitext-2 数据集是从维基百科精选文章的集合,总计 2551102 个 token ,由于数据集由全文组成,因此非常适合可以利用长期依赖关系的模型。
数据集 训练集 验证集 测试集 总数
tokens 2086708 218177 246217 2551102
数据预处理
分词:
torchtext.data.Field 声明处理数据的方式
参数说明:
tokenize 分词处理
init_token