import spacy import gradio as gr from spacy import displacy from pdfminer.high_level import extract_text nlp = spacy.load("en_cv_info_extr") colors = {} for label in nlp.get_pipe('ner').labels: colors[label] = "linear-gradient(90deg, #aa9cfc, #fc9ce7)" options = {"ents": list(nlp.get_pipe('ner').labels), "colors": colors} def resume_ner(file): resume = extract_text(file.name) doc = nlp(resume) html = displacy.render(doc, style="ent", page=True, options=options) html = ( "
" + html + "
" ) return html demo = gr.Interface( resume_ner, gr.File(file_types=[".pdf"]), ["html"], ) demo.launch()