1- # nlp-01-getting-started
1+ # nlp-04-api-text-data
22
33[ ![ Python 3.14+] ( https://img.shields.io/badge/python-3.14%2B-blue?logo=python )] ( # )
44[ ![ MIT] ( https://img.shields.io/badge/license-see%20LICENSE-yellow.svg )] ( ./LICENSE )
55
6- > Professional Python project for Web Mining and Applied NLP .
6+ > > Structured EVTL pipeline for reliable ingestion and transformation of JSON data from web APIs .
77
8- Web Mining and Applied NLP focus on retrieving, processing, and analyzing text from the web and other digital sources .
9- This course builds those capabilities through working projects .
8+ Web Mining and Applied NLP require reliable acquisition and processing of structured and semi-structured text data .
9+ This project implements a reproducible pipeline for working with JSON data from web APIs .
1010
11- In the age of generative AI, durable skills are grounded in real work:
12- setting up a professional environment,
13- reading and running code,
14- understanding the logic,
15- and pushing work to a shared repository.
16- Each project follows a similar structure based on professional Python projects.
17- These projects are ** hands-on textbooks** for learning Web Mining and Applied NLP.
11+ The pipeline follows an EVTL architecture:
1812
19- ## This Project
13+ - Extract data from an external API
14+ - Validate structure and content before use
15+ - Transform JSON into a structured representation
16+ - Load results into a persistent, analyzable format
2017
21- This project focuses on retrieving and processing structured text data
22- ** from web APIs in JSON format** .
18+ The emphasis is on correctness, inspectability, and repeatability:
19+ every stage has explicit inputs, outputs, and logging,
20+ and intermediate artifacts are preserved for verification.
2321
24- The goal is to acquire JSON data from an external source,
25- inspect and validate its structure,
26- transform it into a usable format,
27- and load it into a reproducible output.
22+ ## This Project
2823
29- You've likely heard of ETL or ELT.
30- We recommend EVTL.
24+ This project demonstrates how to work with JSON data retrieved from web APIs using a structured EVTL pipeline.
3125
32- In EVTL, each stage has a source, a process, and a sink.
26+ The workflow:
3327
34- - ** Extract ** acquires data
35- - ** Validate ** inspects and checks it
36- - ** Transform** reshapes it
37- - ** Load ** sends it to the chosen destination
28+ - Acquire JSON data from an external source
29+ - Inspect and validate its structure
30+ - Transform it into a tabular representation
31+ - Persist results for downstream analysis
3832
39- This project illustrates how to ** work with real API data and understand its structure before analysis ** .
33+ Each stage is implemented as a modular component with explicit inputs and outputs .
4034
4135## Key Files
4236
4337You'll work with these files as you update authorship and experiment:
4438
45- - ** src/nlp/pipeline_api_json.py** - MAIN PIPELINE SCRIPT (no changes needed)
46- - ** src/nlp/config_case.py** - Python configuration (<mark >** copy and edit** </mark > for your custom project)
47- - ** src/nlp/stage01_extract.py** - EXTRACT (no changes needed)
48- - ** src/nlp/stage02_validate_case.py** - VALIDATE (<mark >** copy and edit** </mark >)
49- - ** src/nlp/stage03_transform_case.py** - TRANSFORM (<mark >** copy and edit** </mark >)
50- - ** src/nlp/stage04_load.py** - LOAD (no changes needed)
51- - ** pyproject.toml** - <mark >** update** </mark > authorship, links, and dependencies
52- - ** zensical.toml** - <mark >** update** </mark > authorship and links
39+ ## Key Files
40+
41+ These files define the EVTL pipeline and the components you will update for your project.
42+
43+ - ** src/nlp/pipeline_api_json.py** - Main pipeline orchestrator (no changes required)
44+ - ** src/nlp/config_case.py** - Configuration for API access and paths (<mark >** copy and edit** </mark > for your project)
45+ - ** src/nlp/stage01_extract.py** - Extract stage: retrieves data from the API (no changes required)
46+ - ** src/nlp/stage02_validate_case.py** - Validate stage: inspects and verifies JSON structure (<mark >** copy and edit** </mark >)
47+ - ** src/nlp/stage03_transform_case.py** - Transform stage: converts JSON into structured data (<mark >** copy and edit** </mark >)
48+ - ** src/nlp/stage04_load.py** - Load stage: writes output to persistent storage (no changes required)
49+ - ** pyproject.toml** - Project metadata and dependencies (<mark >** update** </mark > authorship, links, and dependencies)
50+ - ** zensical.toml** - Documentation configuration (<mark >** update** </mark > authorship and links)
5351
5452## First: Follow These Instructions
5553
@@ -63,14 +61,13 @@ Follow the [step-by-step workflow guide](https://denisecase.github.io/pro-analyt
6361
6462After running the script successfully, you will see:
6563
66-
6764``` shell
6865========================
6966Pipeline executed successfully!
7067========================
7168```
7269
73- And new files will appear :
70+ The following artifacts will be created :
7471
7572- project.log - confirming successful run
7673- data/raw/case_raw.json - dump of the fetched JSON
@@ -141,8 +138,6 @@ git push -u origin main
141138
142139## Example Artifact (Output)
143140
144-
145-
146141``` text
147142START PIPELINE
148143ROOT_PATH = .
@@ -184,11 +179,22 @@ Pipeline executed successfully!
184179========================
185180```
186181
187-
188182## Enhancements
189183
190184In production systems, validation is often automated using tools
191- such as Great Expectations or Soda.
185+ such as ** Great Expectations** or ** Soda** .
186+
187+ Within the EVTL architecture, ** VALIDATE** is a key stage
188+ with a clear source, process, and sink:
189+
190+ - ** Source** : JSON data extracted from the API
191+ - ** Process** : checking structure, confirming assumptions, and identifying data quality issues
192+ - ** Sink** : validated JSON passed to the TRANSFORM stage
193+
194+ This stage ensures the data is in a ** consistent and reliable form**
195+ before transformation begins,
196+ so later steps can run without errors or unexpected results.
192197
193- In this module, validation is implemented manually to develop a
194- clear understanding of structure, assumptions, and data quality.
198+ In this project, validation is implemented directly,
199+ so all checks are visible, repeatable, and easy to review as part
200+ of the pipeline.
0 commit comments