同学你好!本文章于2021年末编写,获得广泛的好评!
故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现,
Pytorch深度学习·理论篇(2023版)目录地址为:
CSDN独家 | 全网首发 | Pytorch深度学习·理论篇(2023版)目录本专栏将通过系统的深度学习实例,从可解释性的角度对深度学习的原理进行讲解与分析,通过将深度学习知识与Pytorch的高效结合,帮助各位新入门的读者理解深度学习各个模板之间的关系,这些均是在Pytorch上实现的,可以有效的结合当前各位研究生的研究方向,设计人工智能的各个领域,是经过一年时间打磨的精品专栏!https://v9999.blog.csdn.net/article/details/127587345欢迎大家订阅(2023版)理论篇
以下为2021版原文~~~~
在NLP的发展过程中,人们也开发了很多非常实用的工具,这些工具可以帮助开发人员快速地实现自然语言相关的基础处理,从而可以更好地将精力用在高层次的语义分析任务中下面详细介绍该领域中比较优秀的工具。
1 spaCy库
1.1 简介
spacy是一个具有工业级强度的PythonNLP工具包,它可以用来对文本进行断词、短句、词干化、标注词性、命名实体识别、名词短语提取、基于词向量计算词间相似度等处理。
spaCy库里大量使用了Cython来提高相关模块的性能,因此在业界应用中很有实际价值。
1.2 安装
1.2.1 安装spacy本体
pip install spacy# 查看安装的spacy版本python -m spacy info# 显示
Location /usr/local/lib/python3.5/dist-packages/spacy
Platform Linux-4.15.0-45-generic-x86_64-with-Ubuntu-16.04-xenial
Installed models en_core_web_md, en
Python version 3.5.2
spaCy version 1.8.0
1.2.2 安装语言包(en)
注意下载与自己spacy对应版本的en_core_web_sm:
https://github.com/explosion/spacy-models/tags
https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.2.0/en_core_web_sm-3.2.0.tar.gz
1.2.3 安装 en_core_web_sm-3.2.0.tar.gz
pip install en_core_web_sm-3.2.0.tar.gz
# en_core_web_xx,xx代表模型大小{sm:小型,md:中型…}
1.2.4 增加软连接
python -m spacy download en
1.2.5 成功
2 与PyTorch深度结合的文本处理库torchtext
🚀torchtext是一个用于文本预处理的库,使用起来也十分简便。
这是torchtext的github链接:https://github.com/pytorch/text
2.1 torchtext库简介
torchtext是一个可以与PyTorch深度结合的文本处理库。它可以方便地对文本进行预处理,如截断补齐、构建词表等。
torchtext对数据的处理主要包Field、Dataset和迭代器这3部分。
2.1.1 ⭐Field
指定要如何处理某个字段,比如指定分词方法,是否转成小写,起始字符,结束字符,补全字符以及词典等。
2.1.2 ⭐Dataset
用于加载数据,torchtext的Dataset是继承自pytorch的Dataset,提供了一个可以下载压缩数据并解压的方法(支持.zip, .gz, .tgz)。splits方法可以同时读取训练集,验证集,测试集。TabularDataset可以很方便的读取CSV, TSV, or JSON格式的文件
2.1.3 ⭐迭代器
迭代器:返回模型所需要的、处理后的数据,主要分为Iterator、Bucketlerator、BPTTIterator这3种。
迭代器的3种类型具体如下。
iterator:标准迭代器。Bucketlerator:相比于标准迭代器,会将类似长度的样本当作一批来处理。因为在文本处理中经常需要将每一批样本长度补齐为当前批中最长序列的长度,所以当样本长度差别较大时,使用Bucketlerator可以提高填充效率。除此之外,我们还可以在Field中通过fx_length参数来对样本进行截断补齐操作。BPTTIterator :基于时间的反向传播(Back-Prepagation Through Time,BPTT)算法的迭代器,一般用于语言模型中。
2.2 torchtext库及其内置数据集与调用库的安装
为了方便文本处理,torchtext库又内置了一些常用的文本数据集,并集成了一些常用的其他文本处理库。在使用时,可以利用torchtext库中提供的API进行内置数据集的下载和其他文本处理库的间接调用。
2.2.1 安装torchtext
pip install torchtext==0.9.0
2.2.2 查看torchtext库的内置数据集
安装好torchtext库后,可以在如下路径中查看torchtext库的内置数据集:本地Anaconda的虚拟环境路径\Lb\site-packages\txt\datasets\__init__.Py
2.2.3 安装torchtext库的调用模块
安装torchtext库的调用模块在使用torchtext库的过程中,如果还要间接使用其他的文本处理库,则需要额外下载并安装。
2.3 torchtext库中的内置预训练词向量
torchtext库中内置若干个预训练词向量,可以在模型中直接拿来对本地的权重进行初始化。