Git06-Ue03 / Ü3_gradio.py
jeme213's picture
Upload Ü3_gradio.py
b013737
# ----------------------------------- gradio aufsetzen ----------------------------------------------------------
# 1. gradio mit pip install gradio installieren (Terminal)
# 2. Funktion schreiben die den Code aus Ü3_spacy.py benutzt (vorher spacy aufsetzen --> .py-Datei)
import gradio as gr
import spacy
nlp_en = spacy.load("en_core_web_sm")
nlp_de = spacy.load("de_core_news_sm")
# Funktion schreiben die einen Text nimmt (Eng/Deu) und seine Entitäten ausgibt
def get_named_entitites (sentence, language):
"""
Sucht mit spacy nach Entitäten im angegebenen Satz.
Parameters:
sentence (str): Der auf Entitäten zu überprüfende Satz.
language (str): Sprache des Satzes - "German" oder "English" zulässig.
Returns:
str: Im Text erkannte Entitäten + Bedäutung.
"""
if language not in ["German", "English"]:
raise ValueError('language muss "German" oder "English" sein')
if not isinstance(sentence, str):
raise ValueError('sentence muss ein string sein')
if language == "German":
doc = nlp_de(sentence)
if language == "English":
doc = nlp_en(sentence)
#entities = [[ent.text, ent.label_, spacy.explain(ent.label_)] for ent in doc.ents]
entities = ['{} --> {} == {}'.format(ent.text, ent.label_, spacy.explain(ent.label_)) for ent in doc.ents]
return(entities)
get_named_entitites(sentence='Ich esse gerne Eierreis im Mensa U-boot', language="German") #Funktion funktioniert, spacy eher weniger
# Gradio Anwendung basteln
demo = gr.Interface(fn=get_named_entitites,
inputs = ['text', gr.Radio(["German", "English"], label = "Language", info = "What is the language of your sentence? (Ger/Eng)")],
outputs = "text")
demo.launch()
# 3. Requirements-File mit pip freeze > requirements.txt erstellen