Metadata-Version: 2.4
Name: pubmlp
Version: 0.6.0
Summary: Multimodal publication classifier with LLM and deep learning
Author-email: Mikyung Shin <shin.mikyung@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://mshin77.github.io/pubmlp
Project-URL: Repository, https://github.com/mshin77/pubmlp
Project-URL: Documentation, https://mshin77.github.io/pubmlp
Project-URL: Issues, https://github.com/mshin77/pubmlp/issues
Keywords: systematic-review,screening,transformer,classification,bibliometrics
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Education
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Text Processing
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: torch>=2.3.0
Requires-Dist: transformers<6.0,>=4.30.0
Requires-Dist: sentence-transformers<6.0,>=2.2.0
Requires-Dist: scikit-learn>=1.3.0
Requires-Dist: pandas>=2.0.0
Requires-Dist: numpy>=1.24.0
Requires-Dist: tqdm>=4.65.0
Requires-Dist: matplotlib>=3.7.0
Requires-Dist: seaborn>=0.12.0
Provides-Extra: screening
Requires-Dist: openpyxl>=3.1.0; extra == "screening"
Requires-Dist: nltk>=3.8.0; extra == "screening"
Requires-Dist: iterative-stratification>=0.1.7; extra == "screening"
Provides-Extra: benchmark
Requires-Dist: synergy-dataset>=1.0; extra == "benchmark"
Provides-Extra: fulltext
Requires-Dist: pdfplumber>=0.11; extra == "fulltext"
Provides-Extra: test
Requires-Dist: pubmlp[screening]; extra == "test"
Requires-Dist: pytest>=7.0; extra == "test"
Dynamic: license-file

<img src="https://raw.githubusercontent.com/mshin77/pubmlp/main/logo.svg" alt="pubmlp Logo" align="right" width="220px"/>

[![PyPI version](https://img.shields.io/pypi/v/pubmlp)](https://pypi.org/project/pubmlp/)
[![Python versions](https://img.shields.io/pypi/pyversions/pubmlp)](https://pypi.org/project/pubmlp/)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue)](https://opensource.org/licenses/MIT)

Multimodal publication classifier with LLM and deep learning. Fuses transformer embeddings from [Hugging Face](https://huggingface.co/docs/transformers) with tabular features through a multilayer perceptron (MLP) on [PyTorch](https://pytorch.org/) for human-in-the-loop screening. Screen by matched rules, by semantic similarity through [sentence-transformers](https://www.sbert.net/), by the classifier with active learning, or by a language model as a second rater. Read exports in every format [bibliometrix](https://www.bibliometrix.org/) accepts, extract page-anchored evidence with [pdfplumber](https://github.com/jsvine/pdfplumber), and report SAFE stopping and [PRISMA 2020](https://www.prisma-statement.org/) Item 8.

## Installation

```bash
pip install pubmlp
```

With optional dependencies:

```bash
pip install "pubmlp[screening]"  # regex and semantic screening, stratified sampling
pip install "pubmlp[fulltext]"   # PDF reading with page-anchored evidence
pip install "pubmlp[benchmark]"  # SYNERGY benchmark datasets
```

From GitHub:

```bash
pip install git+https://github.com/mshin77/pubmlp.git
```

## Getting Started

See [Quick Start](https://mshin77.github.io/pubmlp/getting-started.html) and [Screening Workflow](https://mshin77.github.io/pubmlp/vignettes/screening-workflow.html) for tutorials.

## Citation

- Shin, M. (2026). *pubmlp: Multimodal publication classifier with LLM and deep learning* (Python package version 0.6.0) [Computer software]. <https://github.com/mshin77/pubmlp>

## Reference

- Shin, M., & McKenna, J. (2026). Exploring the research landscape on single-case design methodology using technology through text mining and large language models. *Journal of Behavioral Education*. https://doi.org/10.1007/s10864-026-09630-1
