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()