Skip to main content

NLP Lab Experiments

Notebook-ready implementations of the seven complete NLP lab programs supplied in the lab manual. The examples are adapted to run in Jupyter Notebook and Google Colab, with malformed indentation and syntax corrected and code comments removed from the inserted programs.

Install the plnlab distribution; the Python import name remains NLP.

Install

pip install plnlab

Use in Jupyter or Google Colab

%pip install plnlab
import NLP
NLP.p1()

Run the setup and call in one cell. Calling p1() replaces that cell's input with the program source. Review and run the replacement cell yourself. The package checks and installs the known third-party dependency needed by that experiment when it is missing. It does not install packages during import or run the program automatically.

The replacement removes the install command and NLP.p1() call when they are in the same cell, leaving the program source as the only code in that cell. If installation was run in a separate earlier cell, that cell is left alone; there is no shared IPython API for safely identifying and deleting an arbitrary earlier cell in all supported frontends.

Programs

Call Program
NLP.p1() Text preprocessing: tokenization, filtration, script validation, stop-word removal, and stemming
NLP.p2() Unigram, bigram, and trigram probability estimates
NLP.p3() Minimum edit distance with test cases and a dynamic-programming table
NLP.p4() Top-down and bottom-up parsing from a context-free grammar
NLP.p5() Add-one-smoothed Naive Bayes movie-review classification
NLP.p6() NLTK corpora, custom corpus, frequency distributions, POS tags, dictionaries, and word segmentation
NLP.p7() WordNet synonyms and antonyms for “active”

The manual includes an eighth experiment prompt about low-resource machine translation, but it does not include a corresponding program listing. This release contains the seven program listings that were provided.

Release

Build distributions from this directory:

python -m build

Upload using a PyPI API token stored in the PYPI_API_TOKEN environment variable:

TWINE_USERNAME=__token__ TWINE_PASSWORD="$PYPI_API_TOKEN" python -m twine upload dist/*

Do not put the token in source code, notebook cells, or shell history.

Release files for plnlab 0.1

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

Source distribution (sdist)

Source distribution for plnlab 0.1
File Size Uploaded
plnlab-0.1.tar.gz 10.3 kB Details

Built distribution (wheel)

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

Total release size: 19.9 kB

Release files / plnlab-0.1.tar.gz

Download URL plnlab-0.1.tar.gz
Size 10.3 kB
Tags Source
SHA-256 checksum
How to use checksums
55dac427dfab2fb26ccc9411a2e7ad9bc9230f02ea0548f858b48265d26c8cc9
BLAKE2b-256 checksum
How to use checksums
60e6376af6ea9ce5cfeda0fe20f51ae4c199b3b14e2d5e86fa81cc77cfc61985
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.11

Release files / plnlab-0.1-py3-none-any.whl

Download URL plnlab-0.1-py3-none-any.whl
Size 9.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8b1e47681a7ac56dd5d93b37decd9771e848bbe6132d680b5b34218f96d9c462
BLAKE2b-256 checksum
How to use checksums
72fe01ff32a54c0a1ad56e2be1b49a8d6386d7cab978757e3eb4268d40664743
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.11

Release history Release notifications | RSS feed

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

This release

0.1 This release

2 release files

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