将准备好的训练数据传递到NLP模型。

chariot的Python项目详细描述


战车

PyPI versionBuild Statuscodecov

将准备好的训练数据传送到NLP模型。

  • 准备数据集
    • 您可以通过chazutsu准备典型的nlp数据集。
  • 生成并运行预处理
  • 格式化批处理
    • 从预处理的数据集中对批进行采样并格式化以训练模型(填充等)。
    • 您可以通过chakin使用预先训练的词向量。

cariot使您能够集中精力训练您的模型!

chariot flow

安装

pip install chariot

准备数据集

您可以使用chazutsu下载各种数据集。

importchazutsufromchariot.storageimportStoragestorage=Storage("your/data/root")r=chazutsu.datasets.MovieReview.polarity().download(storage.data_path("raw"))df=storage.chazutsu(r.root).data()df.head(5)

然后

	polarity	review
0	0	synopsis : an aging master art thief , his sup...
1	0	plot : a separated , glamorous , hollywood cou...
2	0	a friend invites you to a movie . this film wo...

Storage类管理cookie-cutter datascience之后的目录结构。

Project root
  └── data
       ├── external     <- Data from third party sources (ex. word vectors).
       ├── interim      <- Intermediate data that has been transformed.
       ├── processed    <- The final, canonical datasets for modeling.
       └── raw          <- The original, immutable data dump.

生成并运行预处理

构建预处理管道

所有预处理器都在chariot.transformer定义。
变压器通过扩展scikit-learn ^{}来实现。
因此,transformer的api对您很熟悉。你可以混合scikit-learn's preprocessors

importchariot.transformerasctfromchariot.preprocessorimportPreprocessorpreprocessor=Preprocessor()preprocessor\
    .stack(ct.text.UnicodeNormalizer())\
    .stack(ct.Tokenizer("en"))\
    .stack(ct.token.StopwordFilter("en"))\
    .stack(ct.Vocabulary(min_df=5,max_df=0.5))\
    .fit(train_data)preprocessor.save("my_preprocessor.pkl")loaded=Preprocessor.load("my_preprocessor.pkl")

战车内备有6种变形金刚。

  • 文本预处理器
    • 在标记化之前预处理文本。
    • TextNormalizer:规范文本(替换某些字符等)。
    • TextFilter:过滤文本(删除文本stc中的一些跨距)。
  • 标记器
  • 令牌预处理器
    • 标记化后规范化/过滤标记。
    • TokenNormalizer:规范化标记(降低、原始形式等)。
    • TokenFilter:过滤标记(仅提取名词等)。
  • 词汇
    • 制作词汇表并将标记转换为索引。
  • 格式化程序
    • 格式化(预处理)数据以训练模型。
  • 发电机
    • 生成目标数据以训练(语言)模型。

为数据集构建预处理

当您想对每个数据集列进行预处理时,可以使用DatasetPreprocessor

fromchariot.dataset_preprocessorimportDatasetPreprocessorfromchariot.transformer.formatterimportPaddingdp=DatasetPreprocessor()dp.process("review")\
    .by(ct.text.UnicodeNormalizer())\
    .by(ct.Tokenizer("en"))\
    .by(ct.token.StopwordFilter("en"))\
    .by(ct.Vocabulary(min_df=5,max_df=0.5))\
    .by(Padding(length=pad_length))\
    .fit(train_data["review"])dp.process("polarity")\
    .by(ct.formatter.CategoricalLabel(num_class=3))preprocessed=dp.preprocess(data)# DatasetPreprocessor has multiple preprocessor.# Because of this, save file format is `tar.gz`.dp.save("my_dataset_preprocessor.tar.gz")loaded=DatasetPreprocessor.load("my_dataset_preprocessor.tar.gz")

用战车训练您的模特

chariot具有训练模型的功能。

formatted=dp(train_data).preprocess().format().processedmodel.fit(formatted["review"],formatted["polarity"],batch_size=32,validation_split=0.2,epochs=15,verbose=2)
forbatchindp(train_data.preprocess().iterate(batch_size=32,epoch=10):model.train_on_batch(batch["review"],batch["polarity"])

您可以通过chakin使用预先训练的词向量。

fromchariot.storageimportStoragefromchariot.transformer.vocabularyimportVocabulary# Download word vectorstorage=Storage("your/data/root")storage.chakin(name="GloVe.6B.50d")# Make embedding matrixvocab=Vocabulary()vocab.set(["you","loaded","word","vector","now"])embed=vocab.make_embedding(storage.data_path("external/glove.6B.50d.txt"))print(embed.shape)# (len(vocab.count), 50)

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

推荐PyPI第三方库


热门话题
java这算是人工智能吗?   java@OnDelete(级联)不处理双向映射(hibernate)   java我怎样才能在基元类型(int)上修复这个等式   java如何初始化PrintWriter数组?   arraylist如何使用java添加敌人   java如何处理2019年的背景地理围栏?   java是否有一个XPath表达式可用于在CDATA区域中导航XML?   Kotlin(Android Studio)中的java选项卡式活动   安卓 java。lang.IllegalArgumentException:provider=网络   广播控制流和主流的java排序   java Apache Nifi无法启动Nifi实例   java我正在尝试将内容作为字符串放入ListView   java阻止mozilla会话还原   java在春季选择引用哪个bean?