Enhance percentage handling to accept raw numbers without % symbol
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 45/100
Línea de trabajo
Empieza trazando los puntos de entrada de parse y verify con LatexExtractionConfig y ExprExtractionConfig, usando los ejemplos del issue como referencia de comportamiento. Actualiza el manejo de porcentajes para que "$28\%$" y "28" se comparen como equivalentes, conservando las formas de palabra como "percent" y "percentage", y después añade o ejecuta cobertura para los tres ejemplos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description:
Currently, the verification system correctly handles:
"$28\%$" vs "28 percent" → True (word forms work)
"$28\%$" vs "28" → False (strict % symbol required)
We should modify the behavior so that:
"$28\%$" vs "28" → True (treat raw numbers as percentages)
While maintaining existing support for word forms ("percent", "percentage", etc.)
Example Code:
from math_verify import parse, verify, LatexExtractionConfig, ExprExtractionConfig
# https://huggingface.co/datasets/t-tech/T-math
def accuracy_reward(latex1: str, latex2: str, strict: bool = True) -> bool:
"""
Compare two LaTeX expressions for semantic equivalence, normalizing both before comparison.
Args:
latex1 (str): First LaTeX expression.
latex2 (str): Second LaTeX expression.
strict (bool): Whether to enforce strict variable matching (default: True).
Returns:
bool: True if the expressions are semantically equivalent, False otherwise.
"""
# Ensure both inputs are treated as LaTeX
def ensure_latex(s):
s = s.strip()
if not (s.startswith("$") and s.endswith("$")):
return f"${s}$"
return s
extraction_configs = [LatexExtractionConfig(), ExprExtractionConfig()]
parsed1 = parse(ensure_latex(latex1), extraction_configs)
parsed2 = parse(ensure_latex(latex2), extraction_configs)
return verify(parsed1, parsed2, strict=strict)
accuracy_reward("$28\\%$", "28 percentage")
accuracy_reward("$28\\%$", "28")
- Lenguaje dominante
- Python
- Estrellas
- 1.2k
- Forks
- 65
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de huggingface/Math-Verify
-
verify() raises ValueError comparing chained relations of different lengthPosiblemente ocupada @chetana1410 la tomó hace 3 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
huggingface/Math-Verify#93 ·
-
A period inside the math delimiters (`$\frac{1}{3}.$`) makes correct answers fail and can make wrong ones passPosiblemente ocupada @MohammadHijjawi97 la tomó hace 26 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
huggingface/Math-Verify#85 ·
-
evaluate_model_outputs.py: rows whose gold cannot be extracted are dropped from the accuracy denominator, so the printed accuracy disagrees with the is_correct column the script writesPosiblemente ocupada @shaurya416 la tomó hace 31 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
huggingface/Math-Verify#83 ·
-
verify() rejects a not-equal written in the other orderPosiblemente ocupada @chetana1410 la tomó hace 3 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 35/100
huggingface/Math-Verify#100 ·
-
verify() rejects an absolute-value inequality that is the same intervalPosiblemente ocupada @chetana1410 la tomó hace 3 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
huggingface/Math-Verify#98 ·
Todos los issues de huggingface/Math-Verify
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
pydot/pydot#601 · 4 comentarios ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
letsencrypt/cp-cps#361 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
CI: startup_failure because callers grant fewer permissions than ledger-app-workflows@v1 declaresPosiblemente ocupada @maykonmichel la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
LedgerHQ/app-boilerplate-rust#227 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
linuxmint/mintupdate#1107 ·