classify / app.py
manasagangotri's picture
Update app.py
c916824 verified
import gradio as gr
from modules.parse_pdf import process_pdf
from modules.classify import classify_text_multi # Importing BERT model classification
from modules.RandomForest import classify_text_rf,classify_text_rf_multi #Importing single and multi-label classification
from modules.SVM import classify_text_svm,classify_text_svm_multi #Importing single and multi-label classification
import nltk
nltk.download('wordnet')
# Check if the stopwords resource is available; if not, download it
try:
nltk.data.find('corpora/stopwords')
except LookupError:
nltk.download('stopwords')
# Function to process and classify PDF using both BERT and Random Forest models
def process_and_classify_pdf(file):
# Step 1: Process the PDF to extract and clean the text
parsed_text = process_pdf(file)
# Step 2: Classify using the existing BERT model
classification_bert = classify_text_multi(parsed_text) # Assuming this is multi-label BERT model
# Step 3: Classify using Random Forest single-label and multi-label
classification_rf_single = classify_text_rf(parsed_text)
classification_rf_multi = classify_text_rf_multi(parsed_text)
classification_svm_single=classify_text_svm(parsed_text)
classification_svm_multi=classify_text_svm_multi(parsed_text)
# Combine the results
combined_result = (
f"BERT Classification: {', '.join(classification_bert)}\n"
f"Random Forest (Single-label): {classification_rf_single}\n"
f"Random Forest (Multi-label): {', '.join(classification_rf_multi)}\n"
f"SVM (Single-label):{classification_svm_single}\n"
f"SVM (multi-label):{', '.join(classification_svm_multi)}"
)
# Step 4: Return parsed text and combined classification results
return parsed_text, combined_result
# Define Gradio interface
input_file = gr.File(label="Upload PDF")
output_text = gr.Textbox(label="Parsed Text")
output_class = gr.Textbox(label="Job Title Predictions")
# Launch Gradio interface
gr.Interface(
fn=process_and_classify_pdf,
inputs=input_file,
outputs=[output_text, output_class],
title="Resume Classification and Parsing for Intelligent Applicant Screening",
theme=gr.themes.Soft()
).launch(share=True)