Linhz commited on
Commit
281978e
1 Parent(s): 90210ac

Update Model/MultimodelNER/Ner_processing.py

Browse files
Files changed (1) hide show
  1. Model/MultimodelNER/Ner_processing.py +95 -95
Model/MultimodelNER/Ner_processing.py CHANGED
@@ -1,95 +1,95 @@
1
- def format_predictions(words, predictions):
2
- '''
3
- Chuyển đổi danh sách từ và dự đoán sang định dạng (word, label)
4
- '''
5
- formatted = []
6
- for word, label in zip(words, predictions):
7
- formatted.append((word, label))
8
- return formatted
9
-
10
- def process_predictions(predictions):
11
- '''
12
- Tách các từ có dấu gạch dưới thành các từ riêng biệt với cùng nhãn
13
- '''
14
- formatted = []
15
- for word, label in predictions:
16
- if '_' in word:
17
- formatted.append((word.replace('_', ' '), label))
18
- else:
19
- formatted.append((word, label))
20
- return formatted
21
-
22
-
23
- def combine_entities(predictions):
24
- combined = []
25
- temp_entity = []
26
- temp_label = None
27
-
28
- for word, label in predictions:
29
- if label.startswith('B-'):
30
- if temp_entity:
31
- combined.append((' '.join(temp_entity), temp_label))
32
- temp_entity = []
33
- temp_entity.append(word)
34
- temp_label = label
35
- elif label.startswith('I-') and temp_label and label[2:] == temp_label[2:]:
36
- temp_entity.append(word)
37
- else:
38
- if temp_entity:
39
- combined.append((' '.join(temp_entity), temp_label))
40
- temp_entity = []
41
- temp_label = None
42
- combined.append((word, label))
43
-
44
- if temp_entity:
45
- combined.append((' '.join(temp_entity), temp_label))
46
-
47
- return combined
48
-
49
-
50
-
51
-
52
- def remove_B_prefix(entities):
53
- modified_entities = []
54
- for word, label in entities:
55
- if label.startswith('B-'):
56
- label = label[2:] # Loại bỏ phần 'B-' khỏi nhãn
57
- modified_entities.append((word, label))
58
- return modified_entities
59
-
60
-
61
- def combine_i_tags(tokens_labels):
62
- combined = []
63
- current_combination = []
64
- current_label = None
65
-
66
- for token, label in tokens_labels:
67
- if label.startswith('I-'):
68
- label = label[2:] # Remove the 'I-' prefix
69
- if current_label is None:
70
- current_label = label
71
- current_combination.append(token)
72
- elif current_label == label:
73
- current_combination.append(token)
74
- else:
75
- combined.append((' '.join(current_combination), current_label))
76
- current_combination = [token]
77
- current_label = label
78
- else:
79
- if current_combination:
80
- combined.append((' '.join(current_combination), current_label))
81
- current_combination = []
82
- current_label = None
83
- combined.append((token, label))
84
-
85
- if current_combination:
86
- combined.append((' '.join(current_combination), current_label))
87
-
88
- return combined
89
-
90
- tokens_labels = [('Dân', 'O'), ('trí', 'O'), ('Chức', 'O'), ('vô', 'O'), ('địch', 'O'), ('Euro 2008', 'EVENT-SPORT'), ('đầy', 'O'), ('thuyết', 'O'), ('phục', 'O'), ('của', 'O'), ('Tây Ban Nha', 'LOCATION'), ('trên', 'O'), ('đất', 'O'), ('Áo', 'LOCATION'), ('và', 'O'), ('Thụy Sĩ', 'PERSON'), ('đã', 'O'), ('mở', 'O'), ('ra', 'O'), ('kỷ', 'O'), ('nguyên', 'O'), ('vinh', 'O'), ('quanh', 'O'), ('của', 'O'), ('La', 'ORGANIZATION'), ('Furia', 'I-ORGANIZATION-SPORTS'), ('Roja', 'I-ORGANIZATION-SPORTS'), (',', 'O'), ('với', 'O'), ('lối', 'O'), ('chơi', 'O'), ('tiqui', 'O'), ('taka', 'O'), ('đầy', 'O'), ('biến', 'O'), ('ảo', 'O'), ('.', 'O'), ('Trong', 'O'), ('quá', 'O'), ('khứ', 'O'), (',', 'O'), ('Tây Ban Nha', 'LOCATION'), ('nổi', 'O'), ('tiếng', 'O'), ('với', 'O'), ('biệt', 'O'), ('danh', 'O'), ('Vua', 'O'), ('vòng', 'O'), ('loại', 'O'), ('.', 'O'), ('Họ', 'O'), ('thường', 'O'), ('thi', 'O'), ('đấu', 'O'), ('rất', 'O'), ('tốt', 'O'), ('ở', 'O'), ('vòng', 'O'), ('loại', 'O'), ('nhưng', 'O'), ('lại', 'O'), ('chưa', 'O'), ('bao', 'O'), ('giờ', 'O'), ('chứng', 'O'), ('minh', 'O'), ('được', 'O'), ('sức', 'O'), ('mạnh', 'O'), ('ở', 'O'), ('vòng', 'O'), ('chung', 'O'), ('kết', 'O'), ('giải', 'O'), ('đấu', 'O'), ('lớn', 'O'), ('.', 'O'), ('Lần', 'O'), ('duy', 'O'), ('nhất', 'O'), ('họ', 'O'), ('lên', 'O'), ('ngôi', 'O'), ('là', 'O'), ('ở', 'O'), ('kỳ', 'O'), ('Euro', 'EVENT-SPORT'), ('1964', 'O'), ('.', 'O')]
91
-
92
- combined_tokens_labels = combine_i_tags(tokens_labels)
93
- print(combined_tokens_labels)
94
-
95
-
 
1
+ def format_predictions(words, predictions):
2
+ '''
3
+ Chuyển đổi danh sách từ và dự đoán sang định dạng (word, label)
4
+ '''
5
+ formatted = []
6
+ for word, label in zip(words, predictions):
7
+ formatted.append((word, label))
8
+ return formatted
9
+
10
+ def process_predictions(predictions):
11
+ '''
12
+ Tách các từ có dấu gạch dưới thành các từ riêng biệt với cùng nhãn
13
+ '''
14
+ formatted = []
15
+ for word, label in predictions:
16
+ if '_' in word:
17
+ formatted.append((word.replace('_', ' '), label))
18
+ else:
19
+ formatted.append((word, label))
20
+ return formatted
21
+
22
+
23
+ def combine_entities(predictions):
24
+ combined = []
25
+ temp_entity = []
26
+ temp_label = None
27
+
28
+ for word, label in predictions:
29
+ if label.startswith('B-'):
30
+ if temp_entity:
31
+ combined.append((' '.join(temp_entity), temp_label))
32
+ temp_entity = []
33
+ temp_entity.append(word)
34
+ temp_label = label
35
+ elif label.startswith('I-') and temp_label and label[2:] == temp_label[2:]:
36
+ temp_entity.append(word)
37
+ else:
38
+ if temp_entity:
39
+ combined.append((' '.join(temp_entity), temp_label))
40
+ temp_entity = []
41
+ temp_label = None
42
+ combined.append((word, label))
43
+
44
+ if temp_entity:
45
+ combined.append((' '.join(temp_entity), temp_label))
46
+
47
+ return combined
48
+
49
+
50
+
51
+
52
+ def remove_B_prefix(entities):
53
+ modified_entities = []
54
+ for word, label in entities:
55
+ if label.startswith('B-'):
56
+ label = label[2:] # Loại bỏ phần 'B-' khỏi nhãn
57
+ modified_entities.append((word, label))
58
+ return modified_entities
59
+
60
+
61
+ def combine_i_tags(tokens_labels):
62
+ combined = []
63
+ current_combination = []
64
+ current_label = None
65
+
66
+ for token, label in tokens_labels:
67
+ if label.startswith('I-'):
68
+ label = label[2:] # Remove the 'I-' prefix
69
+ if current_label is None:
70
+ current_label = label
71
+ current_combination.append(token)
72
+ elif current_label == label:
73
+ current_combination.append(token)
74
+ else:
75
+ combined.append((' '.join(current_combination), current_label))
76
+ current_combination = [token]
77
+ current_label = label
78
+ else:
79
+ if current_combination:
80
+ combined.append((' '.join(current_combination), current_label))
81
+ current_combination = []
82
+ current_label = None
83
+ combined.append((token, label))
84
+
85
+ if current_combination:
86
+ combined.append((' '.join(current_combination), current_label))
87
+
88
+ return combined
89
+
90
+ # tokens_labels = [('Dân', 'O'), ('trí', 'O'), ('Chức', 'O'), ('vô', 'O'), ('địch', 'O'), ('Euro 2008', 'EVENT-SPORT'), ('đầy', 'O'), ('thuyết', 'O'), ('phục', 'O'), ('của', 'O'), ('Tây Ban Nha', 'LOCATION'), ('trên', 'O'), ('đất', 'O'), ('Áo', 'LOCATION'), ('và', 'O'), ('Thụy Sĩ', 'PERSON'), ('đã', 'O'), ('mở', 'O'), ('ra', 'O'), ('kỷ', 'O'), ('nguyên', 'O'), ('vinh', 'O'), ('quanh', 'O'), ('của', 'O'), ('La', 'ORGANIZATION'), ('Furia', 'I-ORGANIZATION-SPORTS'), ('Roja', 'I-ORGANIZATION-SPORTS'), (',', 'O'), ('với', 'O'), ('lối', 'O'), ('chơi', 'O'), ('tiqui', 'O'), ('taka', 'O'), ('đầy', 'O'), ('biến', 'O'), ('ảo', 'O'), ('.', 'O'), ('Trong', 'O'), ('quá', 'O'), ('khứ', 'O'), (',', 'O'), ('Tây Ban Nha', 'LOCATION'), ('nổi', 'O'), ('tiếng', 'O'), ('với', 'O'), ('biệt', 'O'), ('danh', 'O'), ('Vua', 'O'), ('vòng', 'O'), ('loại', 'O'), ('.', 'O'), ('Họ', 'O'), ('thường', 'O'), ('thi', 'O'), ('đấu', 'O'), ('rất', 'O'), ('tốt', 'O'), ('ở', 'O'), ('vòng', 'O'), ('loại', 'O'), ('nhưng', 'O'), ('lại', 'O'), ('chưa', 'O'), ('bao', 'O'), ('giờ', 'O'), ('chứng', 'O'), ('minh', 'O'), ('được', 'O'), ('sức', 'O'), ('mạnh', 'O'), ('ở', 'O'), ('vòng', 'O'), ('chung', 'O'), ('kết', 'O'), ('giải', 'O'), ('đấu', 'O'), ('lớn', 'O'), ('.', 'O'), ('Lần', 'O'), ('duy', 'O'), ('nhất', 'O'), ('họ', 'O'), ('lên', 'O'), ('ngôi', 'O'), ('là', 'O'), ('ở', 'O'), ('kỳ', 'O'), ('Euro', 'EVENT-SPORT'), ('1964', 'O'), ('.', 'O')]
91
+
92
+ # combined_tokens_labels = combine_i_tags(tokens_labels)
93
+ # print(combined_tokens_labels)
94
+
95
+