当前位置:   article > 正文

Torchtext下的AG_NEWS数据集进行分类(官方文档代码)_自然语言处理之ag_news新闻分类

自然语言处理之ag_news新闻分类

原链接:Text classification with the torchtext library — PyTorch Tutorials 1.11.0+cu102 documentation

 (1)导入数据集(经常会出现数据集下载失败的情况),有大佬的网盘:https://pan.baidu.com/s/1Rz_XoaTZWSRiHGOwkACosQ,提取码:j0no 

下载完直接放到当前打开jupyter notebook的目录下,地址就到AG_NEWS.data文件夹即可

(现在的版本好像要加上root=‘地址’,不然会报错)

  1. import torch
  2. from torchtext.datasets import AG_NEWS
  3. path = r'E:\Notebook\自然语言处\Text_classification_with_the_torchtext_library\AG_NEWS.data'
  4. train_iter = iter(AG_NEWS(root=path, split='train'))

 (2)构建词汇表

  1. from torchtext.data.utils import get_tokenizer #导入分词工具
  2. from torchtext.vocab import build_vocab_from_iterator #使用迭代器构建词表
  3. tokenizer = get_tokenizer('basic_english') #创建分词器对象,采用英文分词
  4. train_iter = AG_NEWS(root=path, split='train') #获取数据集,并生成迭代器
  5. def yield_tokens(data_iter):
  6. for _, text in data_iter: #获取每一条的标签label和内容text
  7. yield tokenizer(text) #对获取内容分词,并返回。yield返回一个迭代器对象
  8. #将未能识别的单词设置为<unk>
  9. vocab = build_vocab_from_iterator(yield_tokens(train_iter), specials=["<unk>"])
  10. #设置<unk>的索引为默认索引,一旦遇到不能识别单词,转为<unk>的索引值
  11. vocab.set_default_index(vocab['<unk>'])

 (3)获取每条数据的label和text

  1. text_pipeline = lambda x: vocab(tokenizer(x)) #获取每一条的text的索引表示
  2. label_pipeline = lambda x: int(x) - 1 #获取对应的label
  3. #演示
  4. text_pipeline('here is the an example')
  5. >>> [475, 21, 2, 30, 5297]
  6. label_pipeline('10')
  7. >>> 9
<
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/445872
推荐阅读
相关标签
  

闽ICP备14008679号