Update app.py
Browse files
app.py
CHANGED
@@ -27,32 +27,26 @@ def load_model():
|
|
27 |
return trainer, model, tokenizer
|
28 |
|
29 |
def align_word_ids(texts):
|
|
|
|
|
|
|
30 |
|
31 |
-
|
32 |
-
|
33 |
-
tokenized_inputs = tokenizer(texts, padding='max_length', max_length=218, truncation=True)
|
34 |
|
35 |
-
|
|
|
|
|
|
|
36 |
|
37 |
-
previous_word_idx = None
|
38 |
label_ids = []
|
39 |
|
40 |
-
|
41 |
-
|
42 |
-
if
|
43 |
-
label_ids.append(
|
44 |
-
|
45 |
-
elif word_idx != previous_word_idx:
|
46 |
-
try:
|
47 |
-
label_ids.append(1)
|
48 |
-
except:
|
49 |
-
label_ids.append(-100)
|
50 |
else:
|
51 |
-
|
52 |
-
label_ids.append(1 if label_all_tokens else -100)
|
53 |
-
except:
|
54 |
-
label_ids.append(-100)
|
55 |
-
previous_word_idx = word_idx
|
56 |
|
57 |
return label_ids
|
58 |
|
|
|
27 |
return trainer, model, tokenizer
|
28 |
|
29 |
def align_word_ids(texts):
|
30 |
+
# Utilisez le tokenizer pour obtenir les tokens de chaque mot
|
31 |
+
tokenized_inputs = tokenizer(texts, padding='max_length', max_length=218, truncation=True, return_tensors="pt")
|
32 |
+
input_ids = tokenized_inputs["input_ids"][0]
|
33 |
|
34 |
+
# Créez une liste pour stocker les IDs correspondant à chaque mot
|
35 |
+
word_ids = []
|
|
|
36 |
|
37 |
+
for i, input_id in enumerate(input_ids):
|
38 |
+
# Si le token est un token de début de mot, ajoutez son ID à la liste
|
39 |
+
if tokenizer.decode(input_id) == tokenizer.decode(tokenizer.encode(tokenizer.decode(input_id), add_special_tokens=False)):
|
40 |
+
word_ids.append(i)
|
41 |
|
|
|
42 |
label_ids = []
|
43 |
|
44 |
+
# Parcourez les word_ids pour étiqueter les tokens de début de mot comme 1
|
45 |
+
for i in range(len(input_ids)):
|
46 |
+
if i in word_ids:
|
47 |
+
label_ids.append(1)
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
else:
|
49 |
+
label_ids.append(-100) # -100 pour les tokens qui ne sont pas le début d'un mot
|
|
|
|
|
|
|
|
|
50 |
|
51 |
return label_ids
|
52 |
|