NSS_model / app.py
MYox's picture
Update app.py
4b81b74
from nltk import download
from nltk.tokenize import sent_tokenize
from setfit import SetFitModel
import gradio as gr
import os
download('punkt')
inf_model = SetFitModel.from_pretrained("MYox/NSS_multi-label_8_sent_v3_1")
features = (['Teaching & learning', 'Support', 'Communication', 'Organisation & timetable',
'Assessment & feedback', 'Career & placement', 'Health, wellbeing & social life', 'Facilities & technology'])
def get_doc_topics(d):
t = inf_model(d)
return [f for i, f in enumerate(features) if t[0][i]]
def get_comment_topics(comment):
sent_topics = []
for s in sent_tokenize(comment):
sent_topics.append(get_doc_topics([s]))
output = []
for x in sent_topics:
for y in x:
if y not in output:
output.append(y)
return '; '.join(output)
app = gr.Interface(
title='NSS Topic Generator',
fn=get_comment_topics,
inputs=gr.Textbox(lines=4, placeholder='Type comment here or choose example, below', label='Comment'),
outputs=gr.Textbox(lines=4, label='Generated Topics'),
allow_flagging='never',
examples = ([["Lots of support, especially when revising for exams. Lecturers always respond to emails very quickly!"],
["Loved everything. Met lots of new people and really enjoyed placements."],
["I thought the lectures were sometimes boring but the library was great!"]
])
)
app.launch()