文本实用工具和数据集,用于通用的深度学习,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 LineNumberReader。如果查询行为不正确,则返回readLine()   java包含了一个使用AndroidX的工具栏,这让我的应用程序崩溃了   JVM设置通过“java jar”运行应用程序的最佳实践   java如何获取ImageButton宽度   java Oracle SQLLDR实用程序无响应   列出Java获取对象的arrayList中最常见的元素   java使用带有FlowLayout的getContentpane对布局应用更改,但不起作用为什么?   在java中,我可以在画布上绘制画布吗?   编译游戏代码时发生java异常错误   从firestore获取java Webview失败   java将TableLayout中单元格的内容向右对齐   java无法在发布模式下启动活动(使用proguard安卓optimize配置)   java允许在线程期间进行GUI更新。睡觉   java如何对以变量为列表的列表进行排序   API URL上的java Google云端点异常