This repository contains the code for the paper Text Classification with Born's Rule. The classifier is implemented in python and available on PyPI. The documentation is available here.
Install via pip
with:
pip install bornrule
The package implements three versions of the classifier. The classification algorithm is compatible with the scikit-learn ecosystem. The neural version is compatible with pytorch. The SQL version supports in-database classification.
from bornrule import BornClassifier
- Use it as any other
sklearn
classifier - Supports both dense and sparse input and GPU-accelerated computing via
cupy
from bornrule.torch import Born
- Use it as any other
torch
layer - Supports real and complex-valued inputs. Outputs probabilities in the range [0, 1]
from bornrule.sql import BornClassifierSQL
- Equivalent to the class
BornClassifier
but for in-database classification - Supports inputs represented as json
{feature: value, ...}
All the results in the paper are obtained using Python 3.9 on a Google Cloud Virtual Machine equipped with CentOS 7, 12 vCPU Intel Cascade Lake 85 GB RAM, 1 GPU NVIDIA Tesla A100, and CUDA 11.5.
Install this package:
pip install bornrule==0.1.0
Install additional dependencies to replicate the paper:
pip install bs4==0.0.1 nltk==3.7 matplotlib==3.5.1
Install pytorch
version 1.11.0
with GPU support. For CUDA 11.5 the command is:
pip install torch==1.11.0+cu115 -f https://download.pytorch.org/whl/torch_stable.html
Install cupy
version 10.4.0
. For CUDA 11.5 the command is:
pip install cupy-cuda115==10.4.0
Run the script nips.py
:
python -u nips.py > nips.log &
The script generates a folder named results
with all the results in the paper. Additional information are saved to the log file nips.log
Emanuele Guidotti and Alfio Ferrara. Text Classification with Born's Rule. In Advances in Neural Information Processing Systems, volume 35, pages 30990–31001, 2022.
A BibTeX entry for LaTeX users is:
@inproceedings{guidotti2022text,
title = {Text Classification with Born's Rule},
author = {Guidotti, Emanuele and Ferrara, Alfio},
booktitle = {Advances in Neural Information Processing Systems},
pages = {30990--31001},
volume = {35},
year = {2022}
}