Getting Started#
Installation#
pip install mathipy
With optional dependencies:
# Readability analysis (textstat, nltk)
pip install mathipy[nlp]
# Visual analysis (opencv, pillow)
pip install mathipy[vision]
# OCR via vision LLMs (httpx)
pip install mathipy[ocr]
# Document parsing (python-docx, pdfplumber)
pip install mathipy[documents]
# All features
pip install mathipy[all]
From GitHub:
pip install git+https://github.com/mshin77/mathipy.git[all]
Basic Usage#
Readability Analysis#
from mathipy import ReadabilityAnalyzer
analyzer = ReadabilityAnalyzer()
result = analyzer.analyze("Solve for x: 2x + 5 = 15. What is the value of x?")
print(f"Grade Level: {result['flesch_kincaid_grade']:.1f}")
print(f"Reading Ease: {result['flesch_reading_ease']:.1f}")
Math Content Analysis#
from mathipy import MathContentAnalyzer
analyzer = MathContentAnalyzer()
result = analyzer.analyze("Solve 2x + 5 = 15 for x")
print(f"Domain: {result['domain_classification']['primary']}")
print(f"Math density: {result['math_density']:.2f}")
Cognitive Load Estimation#
from mathipy import CognitiveLoadEstimator
estimator = CognitiveLoadEstimator()
result = estimator.estimate("Solve 2x + 5 = 15 for x")
print(f"Total load: {result['total_cognitive_load']:.2f}")
print(f"Intrinsic: {result['intrinsic_cognitive_load']:.2f}")
Visual Feature Extraction#
from mathipy import VisualFeatureExtractor
extractor = VisualFeatureExtractor()
features = extractor.extract("math_problem.png")
print(f"Complexity: {features['complexity_score']['level']}")
print(f"Shapes found: {features['structural_elements']['shapes']}")
Multimodal OCR#
Requires a GEMINI_API_KEY or OPENAI_API_KEY in your .env file.
from mathipy import MultimodalOCR
ocr = MultimodalOCR(provider="gemini")
result = ocr.extract("math_problem.png")
print(result["full_text"])
print(result["math_expressions"])