import torchtext
from torchtext import data
import spacy
from spacy.symbols import ORTH
# my_tok = spacy.load('en_core_web_lg')
# def spacy_tok(x):
#     return [tok.text for tok in my_tok.tokenizer(x)]
spacy_tok = lambda x: x.split() # 由于spacy没有下载成功所以用这个代替
TEXT = data.Field(lower=True, tokenize=spacy_tok)

如果我们想将"don’t" 改成 “do” and “'nt”,则需要

my_tok.tokenizer.add_special_case("don't", [{ORTH: "do"}, {ORTH: "n't"}])

下载Wiki数据集

from torchtext.datasets import WikiText2
train, valid, test = WikiText2.splits(TEXT) # loading custom datasets requires passing in the field, but nothing else.

整个语料库都放在了一个sample中,所以:

len(train) # 1

开始创建词库(vocabulary),这次我们使用预先计算好的embedding,我们将使用GloVe vectors(200 dimensions)。当然也有很多其他已经处理好的embedding。

TEXT.build_vocab(train, vectors="glove.6B.200d")

使用BPTTIterator来构建错位句子,注意第一维度是句子,第二维度是batch,所有的句子都错位(offset)1

train_iter, valid_iter, test_iter = data.BPTTIterator.splits((train, valid, test),batch_size=32,bptt_len=30, # this is where we specify the sequence lengthdevice=0,repeat=False)b = next(iter(train_iter)); vars(b).keys()
dict_keys(['batch_size', 'dataset', 'train', 'text', 'target'])>>> b.text[:5, :3]
Variable containing:9    953      010    324   59099     11  2001412   5906     273872  10434      2>>> b.target[:5, :3]
Variable containing:10    324   59099     11  2001412   5906     273872  10434      23892      3  10780

参考:
http://mlexplained.com/2018/02/15/language-modeling-tutorial-in-torchtext-practical-torchtext-part-2/

Language modeling tutorial in torchtext相关推荐

  1. 6-斯坦福大学自然语言处理第四课“语言模型(Language Modeling)

    一.课程介绍 斯坦福大学于2012年3月在Coursera启动了在线自然语言处理课程,由NLP领域大牛Dan Jurafsky 和 Chirs Manning教授授课: https://class.c ...

  2. Chapter1-7_Speech_Recognition(Language Modeling)

    文章目录 1 为什么需要Language Model 2 N-gram 3 Continuous LM 3 NN-based LM 4 RNN-based LM 5 合并LAS和LM 5.1 shal ...

  3. 【读论文】Character-Level Language Modeling with Deeper Self-Attention(Vanilla Transformer)

    当初读这篇论文的目的只有1个:在读Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context这篇文章时,关于infe ...

  4. 论文笔记-Vanilla Transformer:Character-Level Language Modeling with Deeper Self-Attention

    论文笔记-Vanilla Transformer:Character-Level Language Modeling with Deeper Self-Attention 1. 介绍 2. Chara ...

  5. 青源Seminar丨NAACL专场:Language Modeling Summarization

    NAACL是自然语言处理领域的顶级学术会议,为了进一步促进国际间学术交流,青源会将于8月4日上午09:00-12:20举办「青源Seminar丨NAACL专场线上分享会」,召集人为青源研究组成员.耶鲁 ...

  6. Paper简读 - ProGen: Language Modeling for Protein Generation

    欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/12 ...

  7. LLMs:《PaLM: Scaling Language Modeling with Pathways》翻译与解读

    LLMs:<PaLM: Scaling Language Modeling with Pathways>翻译与解读 导读:这项工作介绍了Pathways Language Model(Pa ...

  8. Masked Language Modeling用于光谱分类模型

    Masked Language Modeling(MLM)是一种自然语言处理任务,它的目的是预测句子中被"mask"(隐藏)的词的潜在值.为了训练MLM模型,我们通常会在输入句子中 ...

  9. Causal Language Modeling和Conditional Generation有什么区别

    和ChatGPT一起学习! 因果语言建模(Causal Language Modeling,简称CLM)和条件生成(Conditional Generation)是自然语言处理(NLP)和深度学习中的 ...

最新文章

  1. 形态学滤波:腐蚀与膨胀(浅谈)
  2. c++调用python操作mongo
  3. php中unset函数是在哪一章_php函数可以分为哪三种
  4. 算法与数据结构(part4)--顺序表
  5. c# 修改xslt并转为html,c#使用XSLT将xml文档转换为html文档
  6. 平均每个员工2000万!苹果为啥买下这家刚成立3年的AI创业公司?
  7. Pure Pursuit纯跟踪算法Python/Matlab算法实现
  8. 【声传播】——多层介质平面波的反射问题
  9. 【Hadoop】HDFS Short Circuit Local Reads(HDFS短路读取)
  10. 汇编语言:程序如下,编写code段中的代码,将a段和b段中的数据一次相加,结果放到c段中
  11. 剑指 Offer 55 - I. 二叉树的深度
  12. 通过注册表修改我的文档等系统文件夹默认位置
  13. 云计算乱局:你真的懂,什么叫做云吗?(一)
  14. element ui输入地内容明明符合规则还是校验报错
  15. 计算机故障诊断知识,故障诊断
  16. Coprime Triples——CodeChef - COPRIME3
  17. 第三阶段:1.数据分析:2.定性定量数据分析
  18. sql小数转换为百分数_这么齐全的数学单位换算表?寒假赶紧存下为孩子考试助力!...
  19. 暑期实训项目(2)--推特爬虫数据处理
  20. 【架构】分布式服务架构与微服务架构

热门文章

  1. DataGridView插入图片
  2. 计算机大作业visio选题,大作业一 用Visio绘网络结构图
  3. 计算机学院科技活动策划,计算机学院科技创新活动策划书(7页)-原创力文档...
  4. Python统计一个字符串中所有字符在另一个字符串出现的总次数
  5. Python版插入排序算法
  6. LeetCode-69 x的平方根
  7. 多系统引导工具支持Linux,多系统引导工具(BootThink)
  8. 力扣98. 验证二叉搜索树(JavaScript)
  9. oracle客户端 centos,Centos7-安装oracle客户端11.2.0.4
  10. dump文件 修复iat_内存溢出如何Dump文件