pytorch的文本实用程序和数据集

torchtext的Python项目详细描述


https://travis-ci.org/pytorch/text.svg?branch=masterhttps://codecov.io/gh/pytorch/text/branch/master/graph/badge.svghttp://readthedocs.org/projects/torchtext/badge/?version=latest

torchtext

此存储库包括:

  • torchtext.data:文本(包括词汇和词向量)的通用数据加载器、摘要和迭代器
  • torchtext.datasets:用于普通nlp数据集的预构建加载程序

安装

确保您有python 2.7或3.5+和pytorch 0.4.0或更新版本。然后可以使用pip:

pip install torchtext

对于0.4.0之前的pytorch版本,请使用pip install torchtext==0.2.3

可选要求

如果要使用SpaCy中的英文标记器,则需要安装spacy并下载其英文模型:

pip install spacy
python -m spacy download en

或者,您可能希望使用SacreMoses(从NLTK拆分)中的Moses标记器端口。您必须安装sacremoses:

pip install sacremoses

文件

找到文档here

数据

数据模块提供以下功能:

  • 能够以声明方式描述如何加载“普通”格式的自定义NLP数据集:

    >>>pos=data.TabularDataset(...path='data/pos/pos_wsj_train.tsv',format='tsv',...fields=[('text',data.Field()),...('labels',data.Field())])...>>>sentiment=data.TabularDataset(...path='data/sentiment/train.json',format='json',...fields={'sentence_tokenized':('text',data.Field(sequential=True)),...'sentiment_gold':('labels',data.Field(sequential=False))})
  • 能够定义预处理管道:

    >>>src=data.Field(tokenize=my_custom_tokenizer)>>>trg=data.Field(tokenize=my_custom_tokenizer)>>>mt_train=datasets.TranslationDataset(...path='data/mt/wmt16-ende.train',exts=('.en','.de'),...fields=(src,trg))
  • 批处理、填充和数字化(包括构建词汇表对象):

    >>># continuing from above>>>mt_dev=datasets.TranslationDataset(...path='data/mt/newstest2014',exts=('.en','.de'),...fields=(src,trg))>>>src.build_vocab(mt_train,max_size=80000)>>>trg.build_vocab(mt_train,max_size=40000)>>># mt_dev shares the fields, so it shares their vocab objects>>>>>>train_iter=data.BucketIterator(...dataset=mt_train,batch_size=32,...sort_key=lambdax:data.interleave_keys(len(x.src),len(x.trg)))>>># usage>>>next(iter(train_iter))<data.Batch(batch_size=32,src=[LongTensor(32,25)],trg=[LongTensor(32,28)])>
  • 数据集拆分包装器(训练、验证、测试):

    >>>TEXT=data.Field()>>>LABELS=data.Field()>>>>>>train,val,test=data.TabularDataset.splits(...path='/data/pos_wsj/pos_wsj',train='_train.tsv',...validation='_dev.tsv',test='_test.tsv',format='tsv',...fields=[('text',TEXT),('labels',LABELS)])>>>>>>train_iter,val_iter,test_iter=data.BucketIterator.splits(...(train,val,test),batch_sizes=(16,256,256),>>>sort_key=lambdax:len(x.text),device=0)>>>>>>TEXT.build_vocab(train)>>>LABELS.build_vocab(train)

数据集

数据集模块当前包含:

  • 情绪分析:SST和IMDB
  • 问题分类:trec
  • 包含:snli,multinli
  • 语言建模:抽象类+wikitext-2、wikitext103、penntreebank
  • 机器翻译:抽象类+multi30k,iwslt,wmt14
  • 序列标记(例如pos/ner):抽象类+udpos,conll2000分块
  • 回答问题:20项qa babi任务
  • 文本分类:ag_u news、sogounews、dbpedia、yelpreviewpolarity、yelpreviewfull、yahooanswers、amazonreviewpolarity、amazonreviewfull

其他已计划或正在进行的工作:

  • 回答问题:班

有关数据集使用的示例,请参见test目录。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在JTable上以逗号显示值   Maven NoSuchMethodError:void com。谷歌。常见的基础先决条件。checkArgument(布尔、java.lang.String、java.lang.Object)   SonarQube是用于验证代码的Java版本   java无法获取gps位置   java NetBeans 7.0中的绑定组问题   java Android向文件内部存储添加多行   java中的Xml解析问题   java侦听器问题和符号错误   方法模式上的java正则表达式。编译()   Raspberry Pi应用程序的java信息网页   java为计算器拆分输入字符串   如何使此文件i/O Java程序在Unix中运行?   java Hibernate:奇怪的ID设置   JavaMaven/Netbeans:子模块中的开源文件   来自父活动的java更新私有ListFragment   带有构造函数的Java对象数组   java以编程方式向LinearLayout添加多个组件   java如何以编程方式设置安卓系统时间?