Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧠 psych-ai-toolkit

PyPI version Python License: MIT GitHub stars DOI Open In Colab

The first open-source Python library bridging Organizational Psychology and Artificial Intelligence research.

Built from peer-reviewed research · Designed for researchers by a researcher

📚 Documentation · 🚀 Quick Start · 📊 Module 1: Bibliometric · 🗺️ Roadmap · 📝 Cite


🔬 About This Project

psych-ai-toolkit operationalizes research methods from peer-reviewed publications into reusable Python tools for the academic and HR-tech communities.

Built by Muhammad Inzamam Khan — Postgraduate Researcher at Universitas Indonesia (MS in Industrial & Organizational Psychology), this toolkit grew directly from real research challenges encountered while conducting bibliometric analyses, meta-analyses, and AI literacy studies.

Why This Exists

"I spent weeks manually processing bibliometric data for my AI Literacy in Education paper. I built this so no researcher ever has to do that again."

Built From Peer-Reviewed Research

Publication Module
Khan et al. (2024). GenAI in HRM. Asian Journal of Logistics Management, 3(2), 104-125. bibliometric, hr_ai_readiness
Khan et al. (2025). Organizational Culture & IWB. Journal of Psychological Perspective, 7(1). meta_analysis
Khan & Hussain (2025). PsyCap & Job Burnout Meta-Analysis. (Under Review) meta_analysis
Khan, M.I. (2025). AI Literacy in Education: Bibliometric Analysis. (Ongoing) bibliometric

🚀 Quick Start

Install

pip install psych-ai-toolkit
# or clone for latest version:
git clone https://github.com/inzamamkhan/psych-ai-toolkit.git
cd psych-ai-toolkit && pip install -r requirements.txt

Run in 30 Seconds

from psych_ai_toolkit import BibliometricAnalyzer

# Load your Scopus / WoS / Google Scholar export
analyzer = BibliometricAnalyzer("your_data.csv")

# See a full summary
analyzer.summary()

# Generate everything: charts, tables, HTML report
analyzer.full_report("output/")

Output:

✅ Data loaded: 347 records | Columns mapped: ['title', 'year', 'authors', 'keywords', ...]

=======================================================
  📊 BIBLIOMETRIC SUMMARY — psych-ai-toolkit
=======================================================
  📄 Total Records     : 347
  📅 Year Range        : (2015, 2024)
  📖 Years Covered     : 10
  📚 Unique Journals   : 48
  👥 Unique Authors    : 892
  🔢 Total Citations   : 14,382
  📈 Avg Citations     : 41.4
  🏆 H-Index           : 38
=======================================================

✨ Report complete! 24 outputs saved to: output/

📊 Module 1: Bibliometric Analysis

Status: ✅ Released (v1.0.0)

The most comprehensive Python bibliometric toolkit for psychological and AI-related research. Supports Scopus, Web of Science, and Google Scholar exports with automatic column detection.

Features

Feature Description
Publication Trend Annual + cumulative growth charts
Author Analysis Prolific authors, collaboration pairs, co-authorship networks
Keyword Analysis Frequency, co-occurrence matrix, word cloud, network maps
Journal Analysis Top sources, Bradford's Law zone classification
Citation Metrics H-index, total citations, most-cited papers, citation-by-year
Lotka's Law Author productivity distribution with theoretical overlay
Network Visualization Interactive HTML + static matplotlib networks
Auto HTML Report Self-contained report with embedded charts & tables

API Reference

from psych_ai_toolkit import BibliometricAnalyzer
from psych_ai_toolkit.bibliometric import CoOccurrenceNetwork, ReportGenerator

# ── Load Data ──────────────────────────────────────────────────────────
analyzer = BibliometricAnalyzer("scopus_export.csv")  # auto-detects Scopus/WoS/custom

# ── Summary ────────────────────────────────────────────────────────────
stats = analyzer.summary()
# Returns: total_records, year_range, unique_journals, unique_authors,
#          total_citations, avg_citations, h_index

# ── Publication Trend ──────────────────────────────────────────────────
trend = analyzer.publication_trend(cumulative=True)
# Returns: DataFrame [Year, Publications, Cumulative]

# ── Authors ────────────────────────────────────────────────────────────
top_authors = analyzer.top_authors(n=10)
# Returns: DataFrame [Author, Publications, Total Citations]

pairs = analyzer.author_collaboration_pairs(min_papers=2)
# Returns: DataFrame [Author 1, Author 2, Collaborations]

# ── Keywords ───────────────────────────────────────────────────────────
kw_freq = analyzer.keyword_frequency(n=30)
# Returns: DataFrame [Keyword, Frequency]

cooc_matrix = analyzer.keyword_cooccurrence_matrix(top_n=25)
# Returns: symmetric DataFrame (co-occurrence counts)

# ── Journals ───────────────────────────────────────────────────────────
journals = analyzer.top_journals(n=10)
# Returns: DataFrame [Journal, Publications, Total Citations]

bradford = analyzer.bradfords_law()
# Returns: DataFrame with Zone column (Core / Zone 2 / Zone 3)

# ── Citations ──────────────────────────────────────────────────────────
cited = analyzer.most_cited_papers(n=10)
cite_trend = analyzer.citation_by_year()

# ── Lotka's Law ────────────────────────────────────────────────────────
lotka = analyzer.lotkas_law()

# ── Network Analysis ───────────────────────────────────────────────────
net = CoOccurrenceNetwork(analyzer)
net.plot_keyword_network(top_n=25, save_path="keyword_network.png")
net.plot_author_network(top_n=30, save_path="author_network.png")
net.export_interactive_network("keyword", top_n=25, save_path="interactive.html")
net_stats = net.network_statistics()

# ── HTML Report ────────────────────────────────────────────────────────
report = ReportGenerator(analyzer)
report.generate_html_report(
    output_dir="output/",
    title="AI Literacy in Education: Bibliometric Analysis 2015–2024",
    author_name="Muhammad Inzamam Khan",
    affiliation="Universitas Indonesia"
)

# ── Full Pipeline (everything above in one call) ───────────────────────
analyzer.full_report("output/")

Supported Data Sources

Source Export Format Auto-Detected
Scopus CSV
Web of Science CSV / TXT
Google Scholar (via Publish or Perish) CSV
Custom CSV (with Title, Year, Authors)

🗺️ Roadmap

Module Description Status
Module 1: Bibliometric Publication analysis, keyword networks, Bradford & Lotka laws ✅ Released
Module 2: Meta-Analysis Effect sizes (Cohen's d, Hedges' g), forest plots, funnel plots, heterogeneity 🔨 Building
Module 3: AI Literacy Scorer Survey scoring, dimensional profiles, norm benchmarking 📅 Q2 2025
Module 4: HR AI Readiness Organizational assessment, NLP on responses, risk scoring 📅 Q3 2025
Streamlit Dashboard Interactive web app for all modules 📅 Q2 2025

📁 Repository Structure

psych-ai-toolkit/
│
├── 📦 psych_ai_toolkit/
│   ├── bibliometric/
│   │   ├── analyzer.py           ← Core engine (BibliometricAnalyzer)
│   │   ├── visualizations.py     ← 10 publication-ready charts
│   │   ├── network.py            ← Keyword & author networks (NetworkX)
│   │   └── report.py             ← Auto HTML report generator
│   └── __init__.py
│
├── 📊 datasets/
│   └── sample/
│       ├── ai_literacy_sample.csv  ← 200-record demo dataset
│       └── generate_sample_data.py ← Dataset generator
│
├── 📓 notebooks/
│   └── 01_bibliometric_demo.ipynb  ← Full walkthrough
│
├── 🧪 tests/
│   └── test_bibliometric.py
│
├── requirements.txt
├── setup.py
└── README.md

🧪 Testing

python -m pytest tests/ -v

🤝 Contributing

Contributions welcome! Especially:

  • New visualization types
  • Support for additional export formats (PubMed, Lens.org)
  • Translations / multilingual support
  • Module 2 (Meta-Analysis) development

See CONTRIBUTING.md for guidelines.


📄 Documentation

Full documentation available at psych-ai-toolkit.readthedocs.io


📝 Citation

If you use psych-ai-toolkit in your research, please cite:

@software{khan2025psychaitoolkit,
  author       = {Khan, Muhammad Inzamam},
  title        = {psych-ai-toolkit: An Open-Source Python Library for 
                  AI-Augmented Psychological Research},
  year         = {2025},
  version      = {1.0.0},
  url          = {https://github.com/inzamamkhan/psych-ai-toolkit},
  note         = {Universitas Indonesia}
}

Also consider citing the foundational papers:

@article{khan2024genai,
  author  = {Khan, M.I. and Parahyanti, E. and Hussain, S.},
  title   = {The Role of Generative AI in Human Resource Management},
  journal = {Asian Journal of Logistics Management},
  volume  = {3},
  number  = {2},
  pages   = {104--125},
  year    = {2024},
  doi     = {10.14710/ajlm.2024.24671}
}

📬 Contact

Muhammad Inzamam Khan
MS Industrial & Organizational Psychology | Universitas Indonesia
📧 muhammad.inzamam@ui.ac.id
🔗 LinkedIn
🎓 Google Scholar | ResearchGate


Made with ❤️ for the research community

⭐ If this toolkit helped your research, please star the repo!

About

An open-source Python library bridging Organizational Psychology & AI research — Bibliometrics, Meta-Analysis, AI Literacy, HR AI Readiness

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages