This repository contains a data pipeline that processes text into monolingual and parallel corpora for Natural Language Processing (NLP) applications.
| language | monolingual corpus | parallel corpus |
|---|---|---|
| Abkhaz (ab) | 1,470,480 | 205,665 |
| West Circassian (ady) | - | - |
| East Circassian (kbd) | - | - |
The corpuses are located at data/processed/<LANG_CODE>
How to use sparse checkout to exclude data/ due to it's huge size, and selectively download folders later:
bash repo.sh clone https://github.com/Caucasus-Rosetta/Lingua-Corpus.git <target_dir>
The repository is cloned to <target_dir>, excluding data/.bash repo.sh download <path/to/folder>. i.e data/raw/abbash repo.sh cleanup <path/to/folder> to remove the folder.To add a new folder to data/, you need to use the --sparse, i.e git add -A --sparse
Lingua-Corpus/
├── src/
│ ├── extraction/
│ ├── processing/
│ └── utils/
├── data/
│ ├── raw/
│ ├── interim/
│ ├── processed/
│ └── stats/
├── .gitignore
├── README.md
├── CODE_OF_CONDUCT.md
└── LICENSE
src/: This directory contains all the source code for your project.
extraction/: Code for extracting text from PDFs and HTML files.processing/: Scripts for cleaning and preprocessing the extracted text.utils/: Utility functions used across different parts of the project.This separation allows for better organization and modularity of your code.
data/: This directory stores all your data files.
raw/: Original, unmodified PDF and HTML files.interim/: Partially processed data, useful for debugging or checkpointing.processed/: Fully processed, analysis-ready data.stats/: Statistics of the processed data.This structure clearly separates data at different stages of your pipeline.
.gitignore: Files and directories that typically we want to exclude.
README.md: Provides an overview of the project, setup instructions, and other essential information.
CODE_OF_CONDUCT.md: Provides an overview of code of conduct for the project.
LICENSE: The license of the code of the project.
This structure follows several best practices:
This structure is particularly well-suited for data pipeline projects because it accommodates the different stages of data processing (raw, interim, processed) and separates the code for each stage of the pipeline (extraction, processing).
The data pipeline consists of two stages, extraction and processing.
The data acquisition process involves extracting information from various sources, employing diverse techniques to ensure comprehensive coverage.
parse_dictionary.py script.hunalign is employed to perform heuristic text alignment across pages, optimizing the alignment process.Extraction acquires data in it's raw form, then semi-processes and moves it to interim
The folders that matter in the extraction stage:
├── src/
│ └── extraction/ # code acquires data in it's raw form,
│ # then semi-processes and moves it to interim
└── data/
├── raw/ # raw data
└── interim/ # semi-processed data
Data Refinement:
The folders that matter in the processing stage:
├── src/
│ └── processing/ # code for processing, cleaning and transforming
│ # interim data into processed data along with analysis
└── data/
├── processed/ # processed data
└── stats/ # statistics of the processed data
I propose utilizing Bayesian with multifidelity Optimization methodology. The black box function involves the process of extraction, transformation, and processing to prepare the data for training neural network models, then validate accuracy by human evaluators (high fidelity). Inputs are derived from heuristics. The Gaussian processes and acquisition score policy are done manually, the desired global optimum is 95% accuracy.
I propose the following approach:
Reference image from Bayesian Optimization in Action by Quan Nguyen
Python
86.8%
Shell
13.2%
This repository contains a data pipeline that processes text into monolingual and parallel corpora for Natural Language Processing (NLP) applications.
| language | monolingual corpus | parallel corpus |
|---|---|---|
| Abkhaz (ab) | 1,470,480 | 205,665 |
| West Circassian (ady) | - | - |
| East Circassian (kbd) | - | - |
The corpuses are located at data/processed/<LANG_CODE>
How to use sparse checkout to exclude data/ due to it's huge size, and selectively download folders later:
bash repo.sh clone https://github.com/Caucasus-Rosetta/Lingua-Corpus.git <target_dir>
The repository is cloned to <target_dir>, excluding data/.bash repo.sh download <path/to/folder>. i.e data/raw/abbash repo.sh cleanup <path/to/folder> to remove the folder.To add a new folder to data/, you need to use the --sparse, i.e git add -A --sparse
Lingua-Corpus/
├── src/
│ ├── extraction/
│ ├── processing/
│ └── utils/
├── data/
│ ├── raw/
│ ├── interim/
│ ├── processed/
│ └── stats/
├── .gitignore
├── README.md
├── CODE_OF_CONDUCT.md
└── LICENSE
src/: This directory contains all the source code for your project.
extraction/: Code for extracting text from PDFs and HTML files.processing/: Scripts for cleaning and preprocessing the extracted text.utils/: Utility functions used across different parts of the project.This separation allows for better organization and modularity of your code.
data/: This directory stores all your data files.
raw/: Original, unmodified PDF and HTML files.interim/: Partially processed data, useful for debugging or checkpointing.processed/: Fully processed, analysis-ready data.stats/: Statistics of the processed data.This structure clearly separates data at different stages of your pipeline.
.gitignore: Files and directories that typically we want to exclude.
README.md: Provides an overview of the project, setup instructions, and other essential information.
CODE_OF_CONDUCT.md: Provides an overview of code of conduct for the project.
LICENSE: The license of the code of the project.
This structure follows several best practices:
This structure is particularly well-suited for data pipeline projects because it accommodates the different stages of data processing (raw, interim, processed) and separates the code for each stage of the pipeline (extraction, processing).
The data pipeline consists of two stages, extraction and processing.
The data acquisition process involves extracting information from various sources, employing diverse techniques to ensure comprehensive coverage.
parse_dictionary.py script.hunalign is employed to perform heuristic text alignment across pages, optimizing the alignment process.Extraction acquires data in it's raw form, then semi-processes and moves it to interim
The folders that matter in the extraction stage:
├── src/
│ └── extraction/ # code acquires data in it's raw form,
│ # then semi-processes and moves it to interim
└── data/
├── raw/ # raw data
└── interim/ # semi-processed data
Data Refinement:
The folders that matter in the processing stage:
├── src/
│ └── processing/ # code for processing, cleaning and transforming
│ # interim data into processed data along with analysis
└── data/
├── processed/ # processed data
└── stats/ # statistics of the processed data
I propose utilizing Bayesian with multifidelity Optimization methodology. The black box function involves the process of extraction, transformation, and processing to prepare the data for training neural network models, then validate accuracy by human evaluators (high fidelity). Inputs are derived from heuristics. The Gaussian processes and acquisition score policy are done manually, the desired global optimum is 95% accuracy.
I propose the following approach:
Reference image from Bayesian Optimization in Action by Quan Nguyen
Python
86.8%
Shell
13.2%