Python 中用于文本分类的主动学习。
安装 | 快速开始 | 贡献 | [更新日志][changelog] | [文档][documentation_main]
Small-Text 提供最先进的用于文本分类的主动学习。 提供了多种预实现的查询策略、初始化策略和停止标准, 这可以轻松组合使用以构建主动学习实验或应用。
特点
- 提供统一的主动学习接口,因此您可以 轻松将查询策略与 sklearn、Pytorch 或 transformers 提供的分类器混合搭配使用。
- 支持基于 GPU 的 Pytorch 模型并集成 transformers, 因此您可以使用最先进的文本分类模型进行主动学习。
- 支持 GPU 但不是必需的。如果仅使用 CPU 的情况下, 轻量级安装只需最小的依赖集。
- 多种经过科学评价的组件均已预先实现并可直接使用(查询策略、初始化策略和停止标准)。
什么是主动学习?
主动学习 允许您在标记数据较少或没有标记数据的情况下, 高效地为监督学习标记训练数据。
新闻
-
版本 1.4.0 ([v1.4.0][changelog_1.4.0]) - 2024年6月9日
- 新查询策略:AnchorSubsampling(也叫 AnchorAL)。 特别感谢 Pietro Lesci 的通信和代码审查。
-
2024年6月更新
- Version 2.0.0 正在进行中,并且应很快准备就绪。
-
版本 1.3.3 ([v1.3.3][changelog_1.3.3]) - 2023年12月29日
- 错误修复版本。
-
版本 1.3.2 ([v1.3.2][changelog_1.3.2]) - 2023年8月19日
- 错误修复版本。
-
论文被 EACL 2023 接收 🎉
- 介绍 small-text 的[论文][paper_arxiv]已被 EACL 2023 接收。五月在会议上见!
- 更新:论文被授予 EACL 最佳系统演示奖。感谢您的支持!
[完整的更改列表,请查看更新日志。][changelog]
安装
Small-Text 可以通过 pip(或 conda)轻松安装:
pip install small-text
该命令仅安装必要的依赖项,结果为[精简安装][documentation_install]。
对于通过 pip 完成的完整安装,您只需包含 transformers
额外需求:
pip install small-text[transformers]
对于缺少额外需求功能的 conda,完整安装可通过以下方式实现:
conda install "torch>=1.6.0" "torchtext>=0.7.0" transformers small-text
该库要求 Python 3.7 或更新版本。要使用 GPU, 需要 CUDA 10.1 或更新版本。 有更多安装信息可以在[文档][documentation_install]中找到。
快速开始
快速入门,请参见提供的二分类、PyTorch多类别分类和基于Transformer的多类别分类示例,或查看笔记本。
笔记本
展示
- [教程:👂 使用Small-Text进行文本分类的主动学习][argilla_al_tutorial](从[argilla][argilla]界面方便地使用Small-Text。)
更多展示内容可以在[文档][documentation_showcase]中查看。
🎀 想分享您的使用案例吗? 无论是论文、实验、实际应用、论文、数据集或其他,请告诉我们,我们会将其添加到[展示部分][documentation_showcase],甚至是这里。
文档
阅读最新的文档[在这里][documentation_main]。值得注意的页面包括:
- [查询策略概述][documentation_query_strategies]
- [可重复性说明][documentation_reproducibility_notes]
替代方案
贡献
欢迎贡献。详情请参阅CONTRIBUTING.md。
鸣谢
此软件由莱比锡大学NLP小组的Christopher Schröder (@chschroeder)创建,该小组是Webis研究网络的一部分。该项目由萨克森州发展银行(SAB)在项目编号100335729的资助下完成。
引用
Small-Text在EACL23系统演示论文"Small-Text: Active Learning for Text Classification in Python"中有详细介绍,可以引用如下:
@inproceedings{schroeder2023small-text,
title = "Small-Text: Active Learning for Text Classification in Python",
author = {Schr{\"o}der, Christopher and M{\"u}ller, Lydia and Niekler, Andreas and Potthast, Martin},
booktitle = "Proceedings of the 17th Conference of the European Chapter of the Association for Computational Linguistics: System Demonstrations",
month = may,
year = "2023",
address = "Dubrovnik, Croatia",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2023.eacl-demo.11",
pages = "84--95"
}
许可
MIT许可证 [documentation_main]: https://small-text.readthedocs.io/en/v1.4.0/ [documentation_install]: https://small-text.readthedocs.io/en/v1.4.0/install.html [documentation_query_strategies]: https://small-text.readthedocs.io/en/v1.4.0/components/query_strategies.html [documentation_showcase]: https://small-text.readthedocs.io/en/v1.4.0/showcase.html [documentation_reproducibility_notes]: https://small-text.readthedocs.io/en/v1.4.0/reproducibility_notes.html [changelog]: https://small-text.readthedocs.io/en/latest/changelog.html [changelog_1.3.2]: https://small-text.readthedocs.io/en/latest/changelog.html#version-1-3-2-2023-08-19 [changelog_1.3.3]: https://small-text.readthedocs.io/en/latest/changelog.html#version-1-3-3-2023-12-29 [changelog_1.4.0]: https://small-text.readthedocs.io/en/latest/changelog.html#version-1-4-0-2024-06-09 [argilla]: https://github.com/argilla-io/argilla [argilla_al_tutorial]: https://docs.argilla.io/en/latest/tutorials/notebooks/training-textclassification-smalltext-activelearning.html [paper_arxiv]: https://arxiv.org/abs/2107.10314