文本实用工具和数据集,用于通用的深度学习,fork from torchtext,但使用numpy存储数据集以供更通用的使用。

pytexttool的Python项目详细描述


此存储库包括:

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

它是TorchText的一个分支,但对数据集使用numpy ndarray而不是torch.tensor或variable,以便使它成为NLP用户更通用的工具箱。

安装

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

pip install pytexttool

可选要求

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

pip install spacy
python -m spacy download en

或者,您可以使用NLTK中的摩西标记器。您必须安装nltk并下载所需的数据:

pip install nltk
python -m nltk.downloader perluniprops nonbreaking_prefixes

数据

数据模块提供以下功能:

  • 能够以声明方式描述如何加载“普通”格式的自定义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
  • 语言建模:抽象类+wikitext-2
  • 机器翻译:抽象类+multi30k,iwslt,wmt14
  • 序列标记(例如pos/ner):抽象类+udpos

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

  • 回答问题:班

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

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

推荐PyPI第三方库


热门话题
java如何通过解决错误“活动无法转换为片段”将片段传递给类构造函数?   Java中清理Code39条码数据的regex帮助   将java转换为C++   java无法在Android Studio中生成签名的apk,出现错误   从数学方程出发   MySQL和Java内存问题   如何强制Java抛出算术异常?   java为什么JDBC将零端口视为空(默认)端口?   java如何在没有“changelog主题”的情况下加入KStream和KTable   排序我尝试合并两个排序的数组,但得到的是java。lang.ArrayIndexOutofBounds异常:5无法找出原因   如何在java中求大长度矩阵的逆?   基于maven构建的java生成类路径字符串   java每20个字符分割一个字符串,然后将每个部分打印到控制台   将字符串数字字转换为字符串数字:Java   在特定区域使用混合类型的java填充字节数组   尽管java类在开关块中实例化,但它只能调用接口方法