viv's picture
Update app.py
85daa4b verified
import gradio as gr
import torch
from transformers import AutoTokenizer, AutoModelForTokenClassification
# Define the Hugging Face repository paths for each model
tokenizer_repo = "viv/UD_Greek-GUD"
lemmatizer_repo = "viv/UD_Greek-GUD" # Adjust this path if necessary
tagger_repo = "viv/UD_Greek-GUD" # Adjust this path if necessary
parser_repo = "viv/UD_Greek-GUD" # Adjust this path if necessary
# Load models using the Hugging Face model hub
tokenizer = AutoTokenizer.from_pretrained(tokenizer_repo)
lemmatizer_model = torch.load("models/el_new_nocharlm_lemmatizer.pt")
tagger_model = torch.load("models/el_new_transformer_tagger.pt")
parser_model = torch.load("models/el_new_transformer_parser.pt")
# Prediction function
def predict(text):
# Tokenize input
inputs = tokenizer(text, return_tensors="pt")
# Perform lemmatization
lemma_outputs = lemmatizer_model(**inputs)
lemmas = lemma_outputs.logits.argmax(-1).tolist() # Process lemmatizer output
# Perform POS tagging
pos_outputs = tagger_model(**inputs)
pos_tags = pos_outputs.logits.argmax(-1).tolist() # Process tagger output
# Perform dependency parsing
dep_outputs = parser_model(**inputs)
dep_parse = dep_outputs.logits.argmax(-1).tolist() # Process parser output
# Return results
return {
"lemmas": lemmas,
"pos_tags": pos_tags,
"dep_parse": dep_parse,
}
# Gradio Interface
interface = gr.Interface(
fn=predict,
inputs="text",
outputs="json",
title="Greek NLP Pipeline",
description="Perform lemmatization, POS tagging, and dependency parsing for Greek text using custom models.",
)
# Launch interface
interface.launch()