IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    NLP学习笔记(4) - Torchtext加载内置数据集及分词工具

    52txr发表于 2024-05-21 16:20:00
    love 0

    本文首先讲解了TorchText库的安装,建议新建一个虚拟环境来学习NLP,并在安装pytorch的时候,一并安装TorchText。本教程使用的是PyTorch 1.11+torchtext 0.12.0环境。接着,介绍了TorchText内置的数据集,包括文本分类数据集、语言模型、机器翻译、序列标注和问答等。然后,讲解了torchtext中的分词工具,如get_tokenizer函数,它支持多种分词规则,如basic_english、spacy、moses、toktok、revtok和subword等。通过示例展示了如何使用basic_english规则进行分词。

    TorchText库的安装

    小陶个人建议新建一个虚拟环境来学习NLP。并且在安装pytorch的时候,一并安装TorchText。

    本教程使用的是PyTorch 1.11+torchtext 0.12.0环境。

    本教程使用的环境

    pip install torchtext==0.12.0 torchdata transformers -i https://pypi.tuna.tsinghua.edu.cn/simple

    TorchText库的版本与Torch的版本是强关联的。适配关系如下(来源于torchtext的官方文档:GitHub - pytorch/text: Models, data loaders and abstractions for language processing, powered by PyTorch)

    PyTorch versiontorchtext versionSupported Python version
    nightly buildmain>=3.8, <=3.11
    2.3.00.18.0>=3.8, <=3.11
    2.2.00.17.0>=3.8, <=3.11
    2.1.00.16.0>=3.8, <=3.11
    2.0.00.15.0>=3.8, <=3.11
    1.13.00.14.0>=3.7, <=3.10
    1.12.00.13.0>=3.7, <=3.10
    1.11.00.12.0>=3.6, <=3.9
    1.10.00.11.0>=3.6, <=3.9
    1.9.10.10.1>=3.6, <=3.9
    1.90.10>=3.6, <=3.9
    1.8.10.9.1>=3.6, <=3.9
    1.80.9>=3.6, <=3.9
    1.7.10.8.1>=3.6, <=3.9
    1.70.8>=3.6, <=3.8
    1.60.7>=3.6, <=3.8
    1.50.6>=3.5, <=3.8

    内置的数据集

    在torchtext的数据集中,里面有很多的数据集。具体可以用下面的代码测试一下。

    在本文中,将使用IMDB数据集进行演示。

    torchtext的数据集

    里面一些数据集的介绍可以看看这篇文章:PyTorch torchtext中带有的自然语言处理数据集

    文本分类数据集

    1.AG_News

    2.SogouNews

    3.DBpedia

    4.YelpReviewPolarity

    5.YelpReviewFull

    6.YahooAnswers

    7.AmazonReviewPolarity

    8.AmazonReviewFull

    9.IMDB

    语言模型

    1.WikiText-2

    2.WikiTest103

    3.PennTreebank

    机器翻译

    1.Multi30k

    2.IWSLT2016

    3.IWSLT2017

    序列标注

    1.UDPOS

    2.CoNLL2000Chunking

    问答

    1.SQuAD 1.0

    2.SQuAD 2.0

    无监督学习

    1.EnWik9

    分词工具

    在torchtext中,里面提供了一个get_tokenizer分词工具。

    get_tokenizer函数的作用是创建一个分词器,分词器支持’basic_english’,‘spacy’,‘moses’,‘toktok’,‘revtok’,'subword’等规则。其中basic_english是可以直接使用的,spacy需要使用到spacy模块,moses需要使用到sacremoses模块,toktok需要使用到nltk模块,revtok和subword需要使用到revtok模块。

    以basic_english来举个例子展示一下用法:

    # 分词工具
    from torchtext.data.utils import get_tokenizer
    
    # 实体化
    tokenizer = get_tokenizer('basic_english')
    
    tokenizer('You are so handsome') #自动转为小写

    分词的结果



沪ICP备19023445号-2号
友情链接