MetaXtrator is an open-source AI/NLP framework for extracting software metadata from code, docs, and repos. It identifies descriptions, licenses, dependencies, contributors, and more—helping you analyze, classify, and organize software projects at scale.
Jupyter Notebook
0
15 commits
updated Dec 3, 2025
MetaXtractor — Extract README & Structured Software Metadata
MetaXtractor extracts software metadata (CodeMeta) from GitHub repositories by combining three sources:
CITATION.cff, pyproject.toml, package.json, codemeta.json)The pipeline merges these sources with this priority: GitHub API → structured files → model extraction.
Quick Summary
{repo_name}_codemeta.json, aggregated CSVs, and evaluation plots in data/analysis_results/.Requirements
git lfs install and git lfs pull after cloning.Quick Start (zsh)
# clone repo and fetch large files
git clone <https://github.com/SurMesure237/MetaXtractor>
cd MetaXtractor
git lfs install
git lfs pull
# optional: create virtual env and activate
python -m venv .venv
source .venv/bin/activate
# install common dependencies (adjust / pin versions as needed) or run the dependencies installation cell located in each notebook header
pip install -r requirements.txt
Core paths
data/dataset/dataset.jsondata/analysis_results/data/label_studio_exports/, data/evaluation_ground_truth_exports/pipelines/extraction/output/ and ../evaluation/extrated_codemeta_files/model/notebooks/ and pipelines/Notebooks
notebooks/1_repository_metadata_files_extraction.ipynb: scrape repos and save raw metadata + readmes.notebooks/2_readme_preprocessing.ipynb: clean & chunk READMEs for model input.notebooks/3_structured_metadata_files_preprocessing.ipynb: convert/normalize structured files to CodeMeta format.notebooks/4_label_studio_project_uploader.ipynb: create Label Studio projects from snippets.notebooks/5_label_studio_project_exporter.ipynb: export annotated tasks for local use.notebooks/6_ground_truth_formatter.ipynb: convert Label Studio exports into CodeMeta ground-truth JSONs.Pipelines
pipelines/extraction/model_extraction_pipeline.ipynb: batch extraction orchestration (cloning, README extraction, NER inference, merge → CodeMeta JSONs). Requires model/ and external converters for some structured-file flows.pipelines/extraction/somef_extraction_notebook.ipynb: run SOMEF and filter README-sourced fields. Useful to compare structured-file output vs README-derived metadata.pipelines/model_training/model_training.ipynb: training/fine-tuning the NER model.pipelines/evaluation/model_vs_somef_evaluation.ipynb: compare model vs SOMEF vs ground truth and generate evaluation reports/plots.15 commits
Jupyter Notebook
94.5%
Python
5.5%
MetaXtrator is an open-source AI/NLP framework for extracting software metadata from code, docs, and repos. It identifies descriptions, licenses, dependencies, contributors, and more—helping you analyze, classify, and organize software projects at scale.
Jupyter Notebook
0
15 commits
updated Dec 3, 2025
MetaXtractor — Extract README & Structured Software Metadata
MetaXtractor extracts software metadata (CodeMeta) from GitHub repositories by combining three sources:
CITATION.cff, pyproject.toml, package.json, codemeta.json)The pipeline merges these sources with this priority: GitHub API → structured files → model extraction.
Quick Summary
{repo_name}_codemeta.json, aggregated CSVs, and evaluation plots in data/analysis_results/.Requirements
git lfs install and git lfs pull after cloning.Quick Start (zsh)
# clone repo and fetch large files
git clone <https://github.com/SurMesure237/MetaXtractor>
cd MetaXtractor
git lfs install
git lfs pull
# optional: create virtual env and activate
python -m venv .venv
source .venv/bin/activate
# install common dependencies (adjust / pin versions as needed) or run the dependencies installation cell located in each notebook header
pip install -r requirements.txt
Core paths
data/dataset/dataset.jsondata/analysis_results/data/label_studio_exports/, data/evaluation_ground_truth_exports/pipelines/extraction/output/ and ../evaluation/extrated_codemeta_files/model/notebooks/ and pipelines/Notebooks
notebooks/1_repository_metadata_files_extraction.ipynb: scrape repos and save raw metadata + readmes.notebooks/2_readme_preprocessing.ipynb: clean & chunk READMEs for model input.notebooks/3_structured_metadata_files_preprocessing.ipynb: convert/normalize structured files to CodeMeta format.notebooks/4_label_studio_project_uploader.ipynb: create Label Studio projects from snippets.notebooks/5_label_studio_project_exporter.ipynb: export annotated tasks for local use.notebooks/6_ground_truth_formatter.ipynb: convert Label Studio exports into CodeMeta ground-truth JSONs.Pipelines
pipelines/extraction/model_extraction_pipeline.ipynb: batch extraction orchestration (cloning, README extraction, NER inference, merge → CodeMeta JSONs). Requires model/ and external converters for some structured-file flows.pipelines/extraction/somef_extraction_notebook.ipynb: run SOMEF and filter README-sourced fields. Useful to compare structured-file output vs README-derived metadata.pipelines/model_training/model_training.ipynb: training/fine-tuning the NER model.pipelines/evaluation/model_vs_somef_evaluation.ipynb: compare model vs SOMEF vs ground truth and generate evaluation reports/plots.15 commits
Jupyter Notebook
94.5%
Python
5.5%