|
import gradio as gr |
|
from spacy import displacy |
|
|
|
from transformers import AutoTokenizer, AutoModelForTokenClassification,pipeline |
|
tokenizer = AutoTokenizer.from_pretrained("ShishuTripathi/AdverseDrugExtraction") |
|
model = AutoModelForTokenClassification.from_pretrained("ShishuTripathi/AdverseDrugExtraction").to('cpu') |
|
adr_ner_model = pipeline(task="ner", model=model, tokenizer=tokenizer,grouped_entities=True) |
|
|
|
def get_adr_from_text(sentence): |
|
tokens = adr_ner_model(sentence) |
|
entities = [] |
|
|
|
for token in tokens: |
|
label = token["entity_group"] |
|
if label != "O": |
|
token["label"] = label |
|
entities.append(token) |
|
|
|
params = [{"text": sentence, |
|
"ents": entities, |
|
"title": None}] |
|
|
|
html = displacy.render(params, style="ent", manual=True, options={ |
|
"colors": { |
|
"DRUG": "#f08080", |
|
"ADR": "#9bddff", |
|
}, |
|
}) |
|
return html |
|
|
|
exp=["Abortion, miscarriage or uterine hemorrhage associated with misoprostol (Cytotec), a labor-inducing drug.", |
|
"Addiction to many sedatives and analgesics, such as diazepam, morphine, etc.", |
|
"Birth defects associated with thalidomide", |
|
"Bleeding of the intestine associated with aspirin therapy", |
|
"Cardiovascular disease associated with COX-2 inhibitors (i.e. Vioxx)", |
|
"Deafness and kidney failure associated with gentamicin (an antibiotic)", |
|
"Having fever after taking paracetamol"] |
|
|
|
desc="An adverse drug reaction (ADR) can be defined as an appreciably harmful or unpleasant reaction resulting from an intervention related to the use of a medicinal product.\ |
|
The goal of this project is to extracts the adverse drug reaction from unstructured text with the Drug." |
|
|
|
inp=gr.inputs.Textbox(lines=5, placeholder=None, default="", label="text to extract adverse drug reaction and drug mention") |
|
out=gr.outputs.HTML(label=None) |
|
|
|
iface = gr.Interface(fn=get_adr_from_text, inputs=inp, outputs=out,examples=exp,article=desc,title="Adverse Drug Reaction Xtractor",theme="huggingface",layout='horizontal') |
|
iface.launch() |