Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
skweak: A software toolkit for weak supervision applied to NLP tasks
| Date | Stars |
|---|---|
| 2026-07-24 | 925 |
| 2026-07-25 | 924 |
| 2026-07-28 | 924 |
| 2026-07-30 | 924 |
| 2026-08-06 | 924 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
# skweak: Weak supervision for NLP [](https://github.com/NorskRegnesentral/skweak/blob/main/LICENSE.txt) [](https://github.com/NorskRegnesentral/skweak/stargazers)   <br> <p align="center"> <img alt="skweak logo" src="https://raw.githubusercontent.com/NorskRegnesentral/skweak/main/data/skweak_logo.jpg"/> </p><br> **Skweak is no longer actively maintained** (if you are interested to take over the project, give us a shout). Labelled data remains a scarce resource in many practical NLP scenarios. This is especially the case when working with resource-poor languages (or text domains), or when using task-specific labels without pre-existing datasets. The only available option is often to collect and annotate texts by hand, which is expensive and time-consuming. `skweak` (pronounced `/skwi:k/`) is a Python-based software toolkit that provides a concrete solution to this problem using weak supervision. `skweak` is built around a very simple idea: Instead of annotating texts by hand, we define a set of _labelling functions_ to automatically label our documents, and then _aggregate_ their results to obtain a labelled version of our corpus. The labelling functions may take various forms, such as domain-specific heuristics (like pattern-matching rules), gazetteers (based on large dictionaries), machine learning models, or even annotations from crowd-workers. The aggregation is done using a statistical model that automatically estimates the relative accuracy (and confusions) of each labelling function by comparing their predictions with one another. `skweak` can be applied to both sequence labelling and text classification, and comes with a complete API that makes it possible to create, apply and aggregate labelling functions with just a few lines of code. The toolkit is also tightly integrated with [SpaCy](http://www.spacy.io), which makes it easy to incorporate into existing NLP pipelines. Give it a try! <br> **Full Paper**:<br> Pierre Lison, Jeremy Barnes and Aliaksandr Hubin (2021), "[skweak: Weak Supervision Made Easy for NLP](https://aclanthology.org/2021.acl-demo.40/)", *ACL 2021 (System demonstrations)*. **Documentation & API**: See the [Wiki](https://github.com/NorskRegnesentral/skweak/wiki) for details on how to use `skweak`. <br> https://user-images.githubusercontent.com/11574012/114999146-e0995300-9ea1-11eb-8288-2bb54dc043e7.mp4 <br> ## Dependencies - `spacy` >= 3.0.0 - `hmmlearn` >= 0.3.0 - `pandas` >= 0.23 - `numpy` >= 1.18 You also need Python >= 3.6. ## Install The easiest way to install `skweak` is through `pip`: ```shell pip install skweak ``` or if you want to install from the repo: ```shell pip install --user git+https://github.com/NorskRegnesentral/skweak ``` The above installation only includes the core library (not the additional examples in `examples`). Note: some examples and tests may require trained spaCy pipelines. These can be downloaded automatically using the syntax (for the pipeline `en_core_web_sm`) ```shell python -m spacy download en_core_web_sm ``` ## Basic Overview <br> <p align="center"> <img alt="Overview of skweak" src="https://raw.githubusercontent.com/NorskRegnesentral/skweak/main/data/skweak_procedure.png"/> </p><br> Weak supervision with `skweak` goes through the following steps: - **Start**: First, you need raw (unlabelled) data from your text domain. `skweak` is build on top of [SpaCy](http://www.spacy.io), and operates with Spacy `Doc` objects, so you first need to convert your documents to `Doc` objects using SpaCy. - **Step 1**: Then, we need to define a range of labelling functions that will take those documents and annotate spans with labels. Those labell
Excerpt of 8,032 characters
Read on GitHub132
György Orosz · @ec-doris · Hungary
11
6
4
Ruan Chaves · Brazil
2
1
1
1
1
Would you bet a product on this? Bounded 0–100 and slow moving.
matched fp:120b8abdce20b1a2, topic:natural-language-processing, topic:spacy, readme:text classification
matched fp:120b8abdce20b1a2, topic:training-data, readme:datasets, readme:corpus