File size: 1,715 Bytes
a76b14b
c83a37d
85daa4b
a76b14b
85daa4b
 
 
 
 
f57d52f
85daa4b
 
 
 
 
a76b14b
f57d52f
a76b14b
c83a37d
a76b14b
c83a37d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a76b14b
f57d52f
a76b14b
 
 
c83a37d
 
 
a76b14b
 
f57d52f
a76b14b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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()