Spaces:
Running
Running
import gradio as gr | |
from interfaces.cap import demo as cap_demo | |
from interfaces.manifesto import demo as manifesto_demo | |
from interfaces.sentiment import demo as sentiment_demo | |
from interfaces.emotion import demo as emotion_demo | |
from interfaces.ner import demo as ner_demo | |
from interfaces.ner import download_models as download_spacy_models | |
from spacy import glossary | |
entities = ["CARDINAL", "DATE", "EVENT", "FAC", "GPE", "LANGUAGE", "LAW", "LOC", "MONEY", "NORP", "ORDINAL", "ORG", "PERCENT", "PERSON", "PRODUCT", "QUANTITY", "TIME", "WORK_OF_ART"] | |
ent_dict = glossary.GLOSSARY | |
ent_sum = [f'{ent} = <i>{ent_dict[ent]}</i>' for ent in entities ] | |
with gr.Blocks() as demo: | |
gr.Markdown( | |
f""" | |
<style> | |
.list {{ | |
display: grid; | |
grid-template-columns: 1fr 1fr 1fr; | |
}} | |
</style> | |
<div style="display: block; text-align: left; padding:0; margin:0;"> | |
<h1 style="text-align: center">Babel Machine Demo</h1> | |
<p>This is a demo for text classification using language models finetuned on data labeled by <a href="https://www.comparativeagendas.net/">CAP</a>, <a href="https://manifesto-project.wzb.eu/">Manifesto Project</a>, sentiment, and emotion coding systems.<br> | |
For the coding of complete datasets, please visit the official <a href="https://babel.poltextlab.com/">Babel Machine</a> site.<br> | |
Please note that named entity inputs are case sensitive.<br> | |
For named entity recognition the following labels are used:</p> | |
<ul class="list"> | |
<li class="list-item"> {'</li class="list-item"> <li>'.join(ent_sum)} </li> | |
</ul> | |
</div> | |
""" | |
gr.TabbedInterface( | |
interface_list=[cap_demo, manifesto_demo, sentiment_demo, emotion_demo, ner_demo], | |
tab_names=["CAP", "Manifesto", "Sentiment (3)", "Emotions (8)", "Named Entity Recognition"], | |
) | |
if __name__ == "__main__": | |
download_spacy_models() | |
demo.launch() | |
# TODO: add all languages & domains |