ShippedApplied AI · 2025

Open-source AI tooling

Academic Metrics

Academic Metrics turns publication metadata and abstracts into structured research data. Its classification pipeline recursively walks a three-level taxonomy and treats off-taxonomy model output as a correctness failure to repair, not a string to quietly accept.

My role

Package co-author · pipeline and classification engineering

System map

Publication data
Abstract analysis
Taxonomy traversal
Constrained retry
Structured output
Applied AI
Taxonomy
Three-level NSF hierarchy
Collection
Crossref + DOI enrichment
Outputs
MongoDB, JSON, and Excel
01

From publications to comparable data

The package collects publication records through Crossref, enriches incomplete metadata, deduplicates articles, and coordinates classification and export through one pipeline. The goal is reusable structured data rather than a one-off dashboard.

02

Classification through a real taxonomy

The classifier does not ask for an unconstrained topic label. It traverses the NSF NCSES hierarchy one level at a time, carrying the selected parent into the next decision so every leaf has a valid path.

Before classification, separate stages extract methods, analyze sentence structure, and summarize the abstract. Those outputs give the classifier a smaller and more explicit evidence surface.

03

Reject invalid labels at generation time

When the model returns a label outside the allowed children, the retry path tokenizes the rejected output and applies logit bias against those tokens. The system actively prevents the same invalid answer from recurring instead of dropping the record or normalizing it after the fact.

04

A package, not a hidden pipeline

Academic Metrics ships as an installable Python package with a CLI, storage adapters, export paths, and full Sphinx documentation. The web demo is a separate collaborator-owned consumer; the reusable package is the project presented here.

The LLM stages run through an earlier embedded version of ChainComposer. Academic Metrics was its production proving ground: the classifier declares method extraction, sentence analysis, summarization, recursive classification, and theme recognition across three managers, then carries named outputs into later prompts. That implementation was later extracted and published as its own package.

Connected work

Engineering choices

The decisions that shaped it.

The implementation details matter because each one closes a specific failure mode or keeps an important boundary visible.

01

Traverse instead of classify flat

Each model decision sees only valid children of the current taxonomy node, reducing an open-ended labeling problem.

02

Make retries corrective

Rejected labels change the next decoding attempt through token-level bias rather than merely repeating the prompt.

03

Separate package from presentation

Collection, classification, and export remain reusable without coupling the system to one dashboard.

Where it landed

A documented, installable pipeline for collecting and classifying research publications with an explicit validity mechanism around unreliable model output.

Next case study

ChainComposer

Keep reading