viv commited on
Commit
c83a37d
Β·
verified Β·
1 Parent(s): f57d52f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +36 -27
app.py CHANGED
@@ -1,42 +1,51 @@
1
  import gradio as gr
2
- from transformers import AutoTokenizer, AutoModelForTokenClassification, AutoConfig
 
3
 
4
- # Load configuration manually if it's missing in the repository
5
- try:
6
- config = AutoConfig.from_pretrained("viv/UD_Greek-GUD")
7
- except OSError:
8
- # Fallback: Create a configuration manually
9
- config = AutoConfig.from_dict({
10
- "model_type": "bert", # Change this based on your model type
11
- "hidden_size": 768,
12
- "num_attention_heads": 12,
13
- "num_hidden_layers": 12,
14
- "vocab_size": 30000,
15
- "max_position_embeddings": 512,
16
- "type_vocab_size": 2,
17
- "hidden_act": "gelu",
18
- "layer_norm_eps": 1e-12,
19
- "initializer_range": 0.02
20
- })
21
 
22
- # Load model and tokenizer with the provided or fallback config
23
- tokenizer = AutoTokenizer.from_pretrained("viv/UD_Greek-GUD")
24
- model = AutoModelForTokenClassification.from_pretrained("viv/UD_Greek-GUD", config=config)
 
 
25
 
26
  # Prediction function
27
  def predict(text):
 
28
  inputs = tokenizer(text, return_tensors="pt")
29
- outputs = model(**inputs)
30
- # Process and return predictions
31
- return outputs.logits.argmax(-1).tolist()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
  # Gradio Interface
34
  interface = gr.Interface(
35
  fn=predict,
36
  inputs="text",
37
- outputs="text",
38
- title="UD Greek GUD Model",
39
- description="Analyze text using the UD Greek GUD model.",
40
  )
41
 
42
  # Launch interface
 
1
  import gradio as gr
2
+ import torch
3
+ from transformers import AutoTokenizer
4
 
5
+ # Define model paths
6
+ models_path = "./models"
7
+ tokenizer_path = f"{models_path}/el_new_tokenizer.pt"
8
+ lemmatizer_path = f"{models_path}/el_new_nocharlm_lemmatizer.pt"
9
+ tagger_path = f"{models_path}/el_new_transformer_tagger.pt"
10
+ parser_path = f"{models_path}/el_new_transformer_parser.pt" # Updated parser model path
 
 
 
 
 
 
 
 
 
 
 
11
 
12
+ # Load models
13
+ tokenizer = torch.load(tokenizer_path) # Load tokenizer
14
+ lemmatizer_model = torch.load(lemmatizer_path) # Load lemmatizer
15
+ tagger_model = torch.load(tagger_path) # Load POS tagger
16
+ parser_model = torch.load(parser_path) # Load dependency parser
17
 
18
  # Prediction function
19
  def predict(text):
20
+ # Tokenize input
21
  inputs = tokenizer(text, return_tensors="pt")
22
+
23
+ # Perform lemmatization
24
+ lemma_outputs = lemmatizer_model(**inputs)
25
+ lemmas = lemma_outputs.logits.argmax(-1).tolist() # Process lemmatizer output
26
+
27
+ # Perform POS tagging
28
+ pos_outputs = tagger_model(**inputs)
29
+ pos_tags = pos_outputs.logits.argmax(-1).tolist() # Process tagger output
30
+
31
+ # Perform dependency parsing
32
+ dep_outputs = parser_model(**inputs)
33
+ dep_parse = dep_outputs.logits.argmax(-1).tolist() # Process parser output
34
+
35
+ # Return results
36
+ return {
37
+ "lemmas": lemmas,
38
+ "pos_tags": pos_tags,
39
+ "dep_parse": dep_parse,
40
+ }
41
 
42
  # Gradio Interface
43
  interface = gr.Interface(
44
  fn=predict,
45
  inputs="text",
46
+ outputs="json",
47
+ title="Greek NLP Pipeline",
48
+ description="Perform lemmatization, POS tagging, and dependency parsing for Greek text using custom models.",
49
  )
50
 
51
  # Launch interface