Skip to main content

Explainable Leaderboards for Natural Language Processing

Project description

ExplainaBoard: An Explainable Leaderboard for NLP

Introduction | Web Tool | API Tool | Download | Paper | Video | Bib



License GitHub stars PyPI Code Style Integration Tests

What is ExplainaBoard?

When developing a natural language processing (NLP or AI) system, often one of the hardest things is to understand where your system is working and where it is failing, and deciding what to do next. ExplainaBoard is a tool that inspects your system outputs, identifies what is working and what is not working, and helps inspire you with ideas of where to go next.

It offers a number of different ways with which you can evaluate and understand your data:

  1. Single-system Analysis: What is a system good or bad at?
  2. Pairwise Analysis: Where is one system better (worse) than another?
  3. Data Bias Analysis: What are the characteristics of different evaluated datasets?
  4. Common Errors: What are common mistakes that top-5 systems made?
  5. Fine-grained Error Analysis: where do errors occur?
  6. System Combination: Is there potential complementarity between different systems?

How do you get started?

  1. Browse Outputs Online: We provide an online interface where you can browse and understand outputs from various state-of-the-art systems.
  2. Upload Your Own Outputs: You can also upload your own system outputs through the online interace, and we will process them so you can view them alongside other systems.
  3. Run Your Own Analyses Offline: You can follow the installation instructions below then view CLI instructions for supported tasks. We also plan to support command-line upload to the web interface soon!
  4. Access ExplainaBoard Programmatically: ExplainaBoard can also be accessed programmatically through a library.

Web-based Toolkit

We have deployed ExplainaBoard as a Web toolkit, which includes 9 NLP tasks and will be more, 40 datasets and 300 systems. Detailed information is as follows.

Installation

Method 1 - Standard Use: Simple installation from PyPI (Python 3 only)

pip install --upgrade pip  # recommending the newest version of pip.
pip install explainaboard
python -m spacy download en_core_web_sm  # if you plan to use the TextClassificationProcessor

Method 2 - Development: Install from the source and develop locally (Python 3 only)

# Clone current repo
git clone https://github.com/neulab/ExplainaBoard.git
cd ExplainaBoard

# Install the required dependencies and dev dependencies
pip install ."[dev]"
pre-commit install
  • Testing: To run tests, you can run python -m unittest.
  • Linting and Code Style: This project uses flake8 (linter) and black (formatter). They are enforced in the pre-commit hook and in the CI pipeline.
    • run python -m black . to format code
    • run flake8 to lint code
    • You can also configure your IDE to automatically format and lint the files as you are writing code.
    • There are various ways to skip formatting or linting if you find it necessary. The following are some examples (please refer to official documentation for more options)
      • # noqa signals flake8 to ignore the current line. (flake8: noqa ignores the current file.)
      • lines between # fmt: on and # fmt: off are skipped by black.

Then, you can perform analyses on your favorite tasks.

Acknowledgement

ExplainaBoard is developed by Carnegie Mellon University, Inspired Cognition Inc., and other collaborators.

We thanks all authors who share their system outputs with us: Ikuya Yamada, Stefan Schweter, Colin Raffel, Yang Liu, Li Dong. We also thank Vijay Viswanathan, Yiran Chen, Hiroaki Hayashi for useful discussion and feedback about ExplainaBoard.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

explainaboard-0.8.10.tar.gz (90.5 kB view details)

Uploaded Source

Built Distribution

explainaboard-0.8.10-py2.py3-none-any.whl (124.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file explainaboard-0.8.10.tar.gz.

File metadata

  • Download URL: explainaboard-0.8.10.tar.gz
  • Upload date:
  • Size: 90.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for explainaboard-0.8.10.tar.gz
Algorithm Hash digest
SHA256 b8bfc1cf6498faf99f5ccfbc368711cb76d1685ecbe0c8567a952d9be080c5ca
MD5 20d57e857d9f766fbed47c5d87148aeb
BLAKE2b-256 4038a5187567ee35980107ec2fbc01e861f230772578975801d59801900c4193

See more details on using hashes here.

File details

Details for the file explainaboard-0.8.10-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for explainaboard-0.8.10-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 470df88aa7de66f806a07adee1f62f51c5819d3522d454cf387f6f6988b02138
MD5 d5b6e3fc7ecebaffd5ab09a291a3c0b1
BLAKE2b-256 48ab0a7849658517656332b0212ed4e700ab0647a2a49d4b740e95c41720a843

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page