TaNER / app.py
AnanthZeke's picture
Duplicate from livinNector/TaNER
1215fb7
import gradio as gr
import torch
from transformers import AutoTokenizer, AutoModelForTokenClassification
tokenizer = AutoTokenizer.from_pretrained("ai4bharat/IndicNER")
model = AutoModelForTokenClassification.from_pretrained("ai4bharat/IndicNER")
def get_ner(sentence):
tok_sentence = tokenizer(sentence, return_tensors='pt')
with torch.no_grad():
logits = model(**tok_sentence).logits.argmax(-1)
predicted_tokens_classes = [
model.config.id2label[t.item()] for t in logits[0]]
predicted_labels = []
previous_token_id = 0
word_ids = tok_sentence.word_ids()
for word_index in range(len(word_ids)):
if word_ids[word_index] == None:
previous_token_id = word_ids[word_index]
elif word_ids[word_index] == previous_token_id:
previous_token_id = word_ids[word_index]
else:
predicted_labels.append(predicted_tokens_classes[word_index])
previous_token_id = word_ids[word_index]
ner_output = []
for index in range(len(sentence.split(' '))):
ner_output.append(
(sentence.split(' ')[index], predicted_labels[index]))
return ner_output
iface = gr.Interface(get_ner,
gr.Textbox(placeholder="Enter sentence here..."),
["highlight"], description='NER Specialized for Tamil Language.',
examples=["முதல்வர் ஸ்டாலின் பட்டமளிப்பு விழாவிற்காக சிதம்பரத்திலுள்ள அண்ணாமலைப் பல்கலைகழகத்திற்கு வருகை தந்தார்.","வல்லவராயன் வந்தியதேவனும் ஆதித்திய கரிகாலனும் கடம்பூருக்குச் சென்றனர். "], title='TaNER',
article='TaNER is a model developed for NER in Tamil Language'
)
iface.launch(enable_queue=True)