Update app.py
Browse files
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 |
-
|
86 |
-
|
87 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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'):
|