Spaces:
Runtime error
Runtime error
import gradio as gr | |
import pandas as pd | |
import spacy | |
import concepcy | |
LIST_RELATIONS = ["RelatedTo", "FormOf", "IsA", "PartOf", "HasA", "UserFor", "CapableOf", "AtLocation", "Causes", | |
"HasSubevent", "HasFirstSubevent", "HasLastSubevent", "HasPrerequisite", "HasProperty", | |
"MotivatedByGoal", "ObstructedBy", "Desires", "CreatedBy", "Synonym", "Antonym", "DistinctFrom", | |
"DerivedFrom", "SymbolOf", "DefinedAs", "MannerOf", "LocatedNear", "HasContext", "SimilarTo", | |
"EtymologicallyRelatedTo", "EtymologicallyDerivedFrom", "CausesDesire", "MadeOf", "ReceivesAction", | |
"ExternalURL"] | |
nlp = spacy.load("en_core_web_sm") | |
nlp.add_pipe( | |
"concepcy", | |
config={ | |
"relations_of_interest": LIST_RELATIONS, | |
"filter_missing_text": True, | |
"filter_edge_weight": 2, | |
} | |
) | |
def greet(text, relations, to_enrich): | |
doc = nlp(text) | |
outs0, outs1 = [], [] | |
if "document" in to_enrich: | |
outs0 = [] | |
for relation in relations: | |
for r in doc._.get(relation.lower()).values(): | |
outs0.extend([[relation, elt["text"]] for elt in r]) | |
if "token" in to_enrich: | |
for token in doc: | |
for relation in relations: | |
rels = token._.get(relation.lower()) | |
if len(rels) > 0: | |
print(rels) | |
print([[token.text, relation, r["text"]] for r in rels]) | |
outs1.extend([[token.text, relation, r["text"]] for r in rels]) | |
return pd.DataFrame(outs0, columns=["relation", "text"]), pd.DataFrame(outs1, columns=["word", "relation", "text"]) | |
iface = gr.Interface( | |
fn=greet, | |
title="Playground for <a href='https://github.com/JulesBelveze/concepcy'>concepCy</a>", | |
description="This demo enables you to play around with SpaCy's concepCy wrapper, a wrapper for ConceptNet!" | |
"To get started: enter a piece of text, check the relations you are interested in and if you want to " | |
"retrieve relations at a document-level and/or token-level.\n" | |
"Relations will be displayed as tables on the right hand side! Have fun!\n", | |
inputs=[ | |
gr.Textbox(placeholder="Enter sentence here...", lines=5, value="I love eating pizzas"), | |
gr.CheckboxGroup(choices=LIST_RELATIONS, value=["IsA"]), | |
gr.CheckboxGroup(choices=["document", "token"], value=["document"]) | |
], | |
outputs=[ | |
gr.Dataframe(headers=["relation", "text"], label="Document-level relations"), | |
gr.Dataframe(headers=["word", "relation", "text"], label="Token-level relations") | |
] | |
) | |
iface.launch() | |