Spaces:
Running
Running
File size: 1,860 Bytes
b1c2932 7a079bf b1c2932 55f9cc5 b1c2932 55f9cc5 b1c2932 55f9cc5 b1c2932 7a079bf b1c2932 7a079bf b1c2932 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
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"""
<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>
<li> {'</li> <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 |