Spaces:
Build error
Build error
import gradio as gr | |
from fastcoref import FCoref | |
import spacy | |
from spacy import displacy | |
import torch | |
from random import randint | |
import os | |
# Run OS scripts to download Ukrainian spaCy | |
os.system("python -m spacy download uk_core_news_md") | |
nlp = spacy.load('uk_core_news_md') | |
device = 'cuda:0' if torch.cuda.is_available() else 'cpu' | |
model_path = "artemkramov/coref-ua" | |
model = FCoref(model_name_or_path=model_path, device=device, nlp=nlp) | |
default = "Мій друг дав мені свою машину та ключі до неї; крім того, він дав мені його книгу. Я з радістю її читаю." | |
def random_color(): | |
rand = lambda: randint(100, 255) | |
return '#%02X%02X%02X' % (rand(), rand(), rand()) | |
def corefer(text): | |
preds = model.predict(texts=[text]) | |
clusters = preds[0].get_clusters(as_strings=False) | |
doc = nlp(text) | |
doc.spans["sc"] = [] | |
colors = {"Cluster {}".format(i): random_color() for i in range(len(clusters))} | |
for i, cluster in enumerate(clusters): | |
for sp in cluster: | |
doc.spans["sc"] += [doc.char_span(sp[0], sp[1], "Cluster {}".format(i))] | |
return displacy.render(doc, style="span", options={"colors": colors}, page=True) | |
iface = gr.Interface(fn=corefer, | |
inputs=gr.Textbox(label="Enter Text To Corefer", lines=2, value=default), | |
outputs="html", allow_flagging="never") | |
iface.launch() | |