Skip to main content

LangHuAn

Language Human Annotations, a frontend for tagging AI project labels, drived by pandas dataframe data.

From Chinese word 琅嬛[langhuan] (Legendary realm where god curates books)

Here's a 5 minutes youtube video explaining how langhuan works

Introduction Video

Installation

pip install langhuan

Minimun configuration walk through

langhuan start a flask application from pandas dataframe 🐼 !

Simplest configuration for NER task 🚀

from langhuan import NERTask

app = NERTask.from_df(
    df, text_col="description",
    options=["institution", "company", "name"])
app.run("0.0.0.0", port=5000)

Simplest configuration for Classify task 🚀

from langhuan import ClassifyTask

app = ClassifyTask.from_df(
    df, text_col="comment",
    options=["positive", "negative", "unbiased", "not sure"])
app.run("0.0.0.0", port=5000)

classification image

Frontend

You can visit following pages for this app.

Tagging

http://[ip]:[port]/ is for our hard working taggers to visit.

Admin

http://[ip]:[port]/admin is a page where you can 👮🏽‍♂️:

  • See the progress of each user.
  • Force save the progress, (or it will only save according to save_frequency, default 42 entries)
  • Download the tagged entries

Advanced settings

Validation

You can set minimun verification number: cross_verify_num, aka, how each entry will be validated, default is 1

If you set cross_verify_num to 2, and you have 5 taggers, each entry will be seen by 2 taggers

app = ClassifyTask.from_df(
    df, text_col="comment",
    options=["positive", "negative", "unbiased", "not sure"],
    cross_verify_num=2,)

Preset the tagging

You can set a column in dataframe, eg. called guessed_tags, to preset the tagging result.

Each cell can contain the format of tagging result, eg.

{"tags":[
    {"text": "Genomicare Bio Tech", "offset":32, "label":"company"},
    {"text": "East China University of Politic Science & Law", "offset":96, "label":"company"},
    ]}

Then you can run the app with preset tag column

app = NERTask.from_df(
    df, text_col="description",
    options=["institution", "company", "name"],
    preset_tag_col="guessed_tags")
app.run("0.0.0.0", port=5000)

Order strategy

The order of which text got tagged first is according to order_strategy.

Default is set to "forward_match", you can try pincer or trident order strategies

Assume the order_by_column is set to the prediction of last batch of deep learning model:

  • trident means the taggers tag the most confident positive, most confident negative, most unsure ones first.

Load History

If your service stopped, you can recover the progress from cache.

Previous cache will be at $HOME/.cache/langhuan/{task_name}

You can change the save_frequency to suit your task, default is 42 entries.

app = NERTask.from_df(
    df, text_col="description",
    options=["institution", "company", "name"],
    save_frequency=128,
    load_history=True,
    task_name="task_NER_210123_110327"
    )

Admin Control

This application assumes internal use within organization, hence the mininum security. If you set admin_control, all the admin related page will require adminkey, the key will appear in the console prompt

app = NERTask.from_df(
    df, text_col="description",
    options=["institution", "company", "name"],
    admin_control=True,
    )

From downloaded data => pytorch dataset

For downloaded NER data tags, you can create a dataloader with the json file automatically:

Gunicorn support

This is a light weight solution. When move things to gunicorn, multithreads is acceptable, but multiworkers will cause chaos.

gunicorn --workers=1 --threads=5 app:app

Compatibility 💍

Well, this library hasn't been tested vigorously against many browsers with many versions, so far

  • compatible with chrome, firefox, safari if version not too old.

Metadata

Release files for langhuan 0.1.12

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for langhuan 0.1.12
File Size Uploaded Provenance
langhuan-0.1.12.tar.gz 736.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for langhuan 0.1.12
File Interpreter ABI Platform
langhuan-0.1.12-py3-none-any.whl Python 3 none any Details

Total release size: 1.5 MB

Release files / langhuan-0.1.12.tar.gz

Download URL langhuan-0.1.12.tar.gz
Size 736.0 kB
Tags Source
SHA-256 checksum
How to use checksums
17b90e7282c3f848d685b164e18b42419ede9b015352ece1838e72283612825e
BLAKE2b-256 checksum
How to use checksums
e9ab5bb42a04d5bb5d16d089fb90f3a621147c03c65f393528ca9c0fb1653e05
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.4

Release files / langhuan-0.1.12-py3-none-any.whl

Download URL langhuan-0.1.12-py3-none-any.whl
Size 745.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0c60f961109244112b8ddc18b57aba818e699590efafe145343fe120ff530bcb
BLAKE2b-256 checksum
How to use checksums
142919ffb9e518873306b32b90107cd6bf68a1d775ecc3d4b8bff8da7642f8f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.4

Security for langhuan 0.1.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page