pytorch的文本实用程序和数据集
torchtext的Python项目详细描述
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目录。