Metadata-Version: 2.1
Name: nlpatl
Version: 0.0.2
Summary: Natural language processing active learning library for deep neural networks
Home-page: https://github.com/makcedward/nlpatl
Author: Edward Ma
Author-email: makcedward@gmail.com
License: MIT
Keywords: deep learning,neural network,machine learning,nlp,natural language processing,text,active learning,data labeling,ai,ml
Platform: UNKNOWN
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: scipy (>=1.7.0)
Requires-Dist: numpy (>=1.16.2)
Requires-Dist: scikit-learn (>=1.0.1)
Requires-Dist: transformers (>=4.11.3)
Provides-Extra: all
Requires-Dist: scipy ; extra == 'all'
Requires-Dist: numpy ; extra == 'all'
Requires-Dist: transformers ; extra == 'all'
Requires-Dist: scikit-learn ; extra == 'all'
Requires-Dist: xgboost ; extra == 'all'
Requires-Dist: datasets ; extra == 'all'
Requires-Dist: torch ; extra == 'all'
Requires-Dist: torchvision ; extra == 'all'
Requires-Dist: torchaudio ; extra == 'all'
Requires-Dist: tensorflow ; extra == 'all'
Requires-Dist: Pillow ; extra == 'all'
Requires-Dist: sphinx-rtd-theme ; extra == 'all'
Requires-Dist: sentence-transformers ; extra == 'all'
Provides-Extra: image
Requires-Dist: Pillow (>=8.2.0) ; extra == 'image'
Provides-Extra: text
Requires-Dist: transformers (>=4.11.3) ; extra == 'text'
Requires-Dist: sentence-transformers (>=2.1.0) ; extra == 'text'

# NLPatl (NLP Active Learning)
This python library helps you to perform Active Learning in NLP. NLPatl built on top of transformers, scikit-learn and other machine learning package. It can be applied into both cold start scenario (no any labeled data) and limited labeled data scenario.

The goal of NLPatl is to make use of the state-of-the-art (SOTA) NLP models to estimate the most valueable data and making use of subject matter experts (SMEs) by having them to label limited amount data. 

<br><p align="center"><img src="https://github.com/makcedward/nlpatl/blob/master/res/architecture.png"/></p>
At the beginning, you have unlabeled (and limited labeled data) only. NLPatl apply transfer learning to convert your texts into vectors (or embeddings). After that, vectors go through unsupervised learning or supervised learning to estimate the most uncertainty (or valuable) data. SMEs perform label on it and feedback to models until accumulated enough high quailty data.

# Installation
```
pip install nlpatl
```
or
```
pip install git+https://github.com/makcedward/nlpatl.git
```

# Examples
* [Quick tour for text input](https://colab.research.google.com/drive/1dr1GY_vO_oOMixj4clzcMR7jLsNpbbvg#scrollTo=CRxkM-D76s19)
* [Quick tour for image input](https://colab.research.google.com/drive/1xBG4ZCw9LTS-UmdBwg4eRnUbd6lo-Dv6?usp=sharing)
* [Custom Embeddings, Classification, Clustering and Learning function](https://colab.research.google.com/drive/1IB2OWzgoPCIOjjqhjX9boyK17K3bpgmz?usp=sharing)

# Release
0.0.2, Dec 17, 2021
* [Completed] Transformers supports Tensorflow
* [Completed] Performance tuning during clustering
* [Completed] Support multi-label
* [Completed] Custom Embeddings, Classification, Clustering, Scoring(Learning) function
* [Completed] Support TorchVision for image embeddings
* [Completed] Support SentenceTransformers
* [Completed] Add Least Confidence Sampling and Most Confidence Sampling
* [Completed] Add Semi-supervised learning
* [Completed] Add Farthest (Clustering) Sampling, Mismatch (Uncertainity) Sampling
* [Completed] Add Mismatch-farthest Learning

# Citation
```latex
@misc{ma2021nlpatl,
  title={Active Learning for NLP},
  author={Edward Ma},
  howpublished={https://github.com/makcedward/nlpatl},
  year={2021}
}
```

