sami606713 commited on
Commit
d76e366
·
verified ·
1 Parent(s): 12d2673

Create app.py

Browse files

web app for report summerization

Files changed (1) hide show
  1. app.py +61 -0
app.py ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import torch
3
+ from peft import PeftModel, PeftConfig
4
+ from transformers import AutoModelForSeq2SeqLM,AutoTokenizer,AutoTokenizer
5
+
6
+
7
+ # Process text fun
8
+ def process_text(text):
9
+ # Remove extra white space from the text
10
+ text = " ".join(text.split())
11
+
12
+ # Remove special characters
13
+ text = re.sub(r"[^a-zA-Z0-9.]+", " ", text)
14
+
15
+ # Remove multiple full stops
16
+ text = re.sub(r"\.{2,}", ".", text)
17
+
18
+ return text
19
+
20
+ # Load model
21
+ def load_model():
22
+ config = PeftConfig.from_pretrained("sami606713/medical_report_summarizer")
23
+ base_model = AutoModelForSeq2SeqLM.from_pretrained("facebook/bart-large-cnn")
24
+ model = PeftModel.from_pretrained(base_model, "sami606713/medical_report_summarizer")
25
+ return model
26
+
27
+ # Load tokenizer
28
+ def load_tokenizer():
29
+ tokenizer=AutoTokenizer.from_pretrained("sami606713/medical_report_summarizer")
30
+ return tokenizer
31
+
32
+ # Summerize text
33
+ def summerize_text(text):
34
+ # process the text
35
+ text=process_text(text)
36
+ # tokenize the text
37
+ tokenizer=load_tokenizer()
38
+ inputs = tokenizer(test_report, max_length=1000, truncation=True, padding='max_length', return_tensors='pt')
39
+
40
+ # Generate the output idx
41
+ model=load_model()
42
+ summary_ids = model.generate(**inputs, max_length=300)
43
+ predicted_summary = tokenizer.decode(summary_ids[0], skip_special_tokens=True)
44
+ return predicted_summary
45
+
46
+ # set the page layout
47
+ st.set_page_config(page_title="Medical Report Summerization",
48
+ page_icon="🩺", layout="wide")
49
+
50
+ # Set the title of the app
51
+ st.title('Medical Report Summerization')
52
+
53
+ # Add a pdf file uploader
54
+ # uploaded_file = st.file_uploader("Upload a PDF file", type=["pdf"])
55
+ # if uploaded_file is not None:
56
+ # st.write(uploaded_file)
57
+
58
+ text=st.text_area("Enter report here:\n",height=250)
59
+ if st.button("Summarize"):
60
+ result=summerize_text(text)
61
+ st.write(f"*{result}*")