CoolFace
Apppublic

arman77mxx/Valida-Pdf-Mx

sourceHugging Faceupdated 2y agoView on Hugging Face
1likes
code-modelo-mx.py62 linesDownload Raw Back to root
1# De mexico para el mundo, arman77mx@gmail.com2import PyPDF23import os4import re5from sklearn.feature_extraction.text import TfidfVectorizer6from sklearn.model_selection import train_test_split7from sklearn.svm import SVC8from sklearn.metrics import classification_report9import pickle10 11# Función para extraer texto de un PDF12def extract_text_from_pdf(pdf_path):13    with open(pdf_path, 'rb') as file:14        reader = PyPDF2.PdfReader(file)15        text = ''16        for page in reader.pages:17            text += page.extract_text()18    return text19 20# Directorios de PDFs etiquetados21pdf_dirs = {22    'si-firma': '/content/si-firma',23    'no-firma': '/content/no-firma'24}25 26# Extracción y etiquetado de textos27data = []28labels = []29 30for label, pdf_dir in pdf_dirs.items():31    for pdf_file in os.listdir(pdf_dir):32        if pdf_file.endswith('.pdf'):33            pdf_path = os.path.join(pdf_dir, pdf_file)34            text = extract_text_from_pdf(pdf_path)35            text = re.sub(r'\s+', ' ', text).strip()  # Preprocesamiento básico36            data.append(text)37            labels.append(label)38 39# Vectorización de textos40vectorizer = TfidfVectorizer()41X = vectorizer.fit_transform(data)42y = labels43 44# División de datos en entrenamiento y prueba45X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)46 47# Entrenamiento del modelo48model = SVC(kernel='linear')49model.fit(X_train, y_train)50 51# Evaluación del modelo52y_pred = model.predict(X_test)53print(classification_report(y_test, y_pred))54 55# Guardar el vectorizador56with open('vectorizer.pkl', 'wb') as file:57    pickle.dump(vectorizer, file)58 59# Guardar el modelo60with open('model.pkl', 'wb') as file:61    pickle.dump(model, file)62