anushka37/Abstract_decoder
0
1import joblib2import gradio as gr3import tensorflow as tf4import spacy5import numpy as np6 7# Load spaCy model8nlp = spacy.load("en_core_web_sm")9 10# Load the model11model = tf.keras.models.load_model('skimlit_tribrid_model.keras')12 13# Load label encoder14label_encoder = joblib.load('label_encoder.joblib')15label_classes = list(label_encoder.classes_)16 17def predict_abstract_sections(abstract):18 # (Your existing preprocessing code)19 20 # Make predictions21 pred_probs = model.predict({22 "line_number_inputs": processed_data["line_number_inputs"],23 "total_lines_inputs": processed_data["total_lines_inputs"],24 "token_inputs": processed_data["token_inputs"],25 "char_inputs": processed_data["char_inputs"]26 })27 28 # Convert predictions to labels using label_encoder29 pred_classes = [label_classes[np.argmax(prob)] for prob in pred_probs]30 31 # Format output32 output = []33 for line, pred_class in zip(processed_data["lines"], pred_classes):34 output.append(f"{pred_class}: {line}")35 36 return "\n".join(output)37 38# Create Gradio Interface39iface = gr.Interface(40 fn=predict_abstract_sections,41 inputs=gr.Textbox(lines=10, placeholder="Paste your abstract here..."),42 outputs=gr.Textbox(label="Abstract Line Classifications"),43 title="SkimLit: Abstract Line Classifier",44 description="Classify lines in a scientific abstract into different sections"45)46 47# Launch the interface48if __name__ == "__main__":49 iface.launch()