vonewman commited on
Commit
67c7e19
·
1 Parent(s): 90fbaa4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -3
app.py CHANGED
@@ -79,14 +79,32 @@ def predict_ner_labels(model, tokenizer, sentence):
79
 
80
  id2tag = {0: 'O', 1: 'B-LOC', 2: 'B-PER', 3: 'I-PER', 4: 'B-ORG', 5: 'I-DATE', 6: 'B-DATE', 7: 'I-ORG', 8: 'I-LOC'}
81
 
 
82
  def tag_sentence(text):
83
  trainer, model, tokenizer = load_model()
 
 
84
  predictions = predict_ner_labels(model, tokenizer, text)
85
- df = pd.DataFrame(predictions, columns=['tag'])
86
- df['word'] = text.split()
87
- df['probability'] = 100.0 # Vous pouvez ajuster cette valeur selon vos besoins
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  return df
89
 
 
90
  st.title("📘 Named Entity Recognition Wolof")
91
 
92
  with st.form(key='my_form'):
 
79
 
80
  id2tag = {0: 'O', 1: 'B-LOC', 2: 'B-PER', 3: 'I-PER', 4: 'B-ORG', 5: 'I-DATE', 6: 'B-DATE', 7: 'I-ORG', 8: 'I-LOC'}
81
 
82
+
83
  def tag_sentence(text):
84
  trainer, model, tokenizer = load_model()
85
+
86
+ # Utilisez votre modèle pour prédire les tags
87
  predictions = predict_ner_labels(model, tokenizer, text)
88
+
89
+ # Obtenez les probabilités associées aux prédictions
90
+ # Vous devrez adapter cette partie en fonction de la sortie de votre modèle
91
+ inputs = tokenizer(text, truncation=True, return_tensors="pt")
92
+ outputs = model(**inputs)
93
+ probs = torch.nn.functional.softmax(outputs.logits, dim=-1)
94
+
95
+ # Calcul des probabilités que le tag prédit soit correct
96
+ word_tags = []
97
+ for i, tag in enumerate(predictions):
98
+ tag_id = id2tag.index(tag)
99
+ prob = np.round(probs[0, i, tag_id].item() * 100, 2)
100
+ word_tags.append((tokenizer.decode(inputs['input_ids'][0][i].item()), tag, prob))
101
+
102
+ # Créez un DataFrame avec les colonnes dans l'ordre spécifié
103
+ df = pd.DataFrame(word_tags, columns=['word', 'tag', 'probability'])
104
+
105
  return df
106
 
107
+
108
  st.title("📘 Named Entity Recognition Wolof")
109
 
110
  with st.form(key='my_form'):