Actualización del 2025-06-15 a las 16:43:02

This commit is contained in:
jlimolina 2025-06-15 16:43:02 +02:00
parent 273bc4e02e
commit d23754d3b8
7 changed files with 333 additions and 63 deletions

49
download_models.py Normal file
View file

@ -0,0 +1,49 @@
import nltk
import logging
import ssl
# Soluciona problemas de certificado SSL en algunas configuraciones de sistema al descargar
try:
_create_unverified_https_context = ssl._create_unverified_context
except AttributeError:
pass
else:
ssl._create_default_https_context = _create_unverified_https_context
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(message)s')
# Lista de paquetes de NLTK que newspaper3k puede necesitar.
# 'punkt' y 'punkt_tab' son para tokenización, 'stopwords' para el resumen.
PACKAGES = ['punkt', 'punkt_tab', 'stopwords']
def download_nltk_data():
"""
Descarga los paquetes de NLTK necesarios para newspaper3k.
"""
for package in PACKAGES:
try:
logging.info(f"Verificando si el paquete '{package}' de NLTK está disponible...")
# Determina la ruta correcta para la verificación
if package.startswith('punkt'):
path = f'tokenizers/{package}'
else:
path = f'corpora/{package}'
nltk.data.find(path)
logging.info(f"El paquete '{package}' ya está descargado.")
except LookupError:
logging.info(f"El paquete '{package}' no se encontró. Iniciando descarga...")
try:
# El parámetro quiet=True evita el diálogo interactivo
nltk.download(package, quiet=True)
logging.info(f"Paquete '{package}' descargado con éxito.")
except Exception as e:
logging.error(f"Ocurrió un error durante la descarga del paquete '{package}': {e}")
import sys
sys.exit(1)
if __name__ == '__main__':
download_nltk_data()