Clémentine commited on
Commit
0322f30
·
1 Parent(s): 000658b

updated graph

Browse files
app/src/content/chapters/human-evaluation/using-human-annotators.mdx CHANGED
@@ -4,6 +4,7 @@ title: "Using human annotators"
4
 
5
  import bestAnnotationPractices from '../../assets/image/best_annotation_practices.png';
6
  import Image from '../../../components/Image.astro';
 
7
  import Note from "../../../components/Note.astro";
8
  import Sidenote from "../../../components/Sidenote.astro";
9
  import Accordion from "../../../components/Accordion.astro";
@@ -12,12 +13,7 @@ import Accordion from "../../../components/Accordion.astro";
12
 
13
  I suggest reading Section 3 of this [review](https://aclanthology.org/2024.cl-3.1/) of good practices in data annotation quality. If you want production level quality and have the means to implement all of these methods, go ahead!
14
 
15
- <Note title="Comprehensive annotation guide" emoji="📚" variant="info">
16
-
17
- For production-level quality, read Section 3 of this [comprehensive review](https://aclanthology.org/2024.cl-3.1/) of data annotation best practices. The diagram below summarizes key principles.
18
- </Note>
19
-
20
- <Image src={bestAnnotationPractices} alt="Best annotation practices diagram" />
21
 
22
  However, important guidelines (no matter your project size) are the following, once you defined your task and scoring guidelines.
23
 
 
4
 
5
  import bestAnnotationPractices from '../../assets/image/best_annotation_practices.png';
6
  import Image from '../../../components/Image.astro';
7
+ import HtmlEmbed from "../../../components/HtmlEmbed.astro";
8
  import Note from "../../../components/Note.astro";
9
  import Sidenote from "../../../components/Sidenote.astro";
10
  import Accordion from "../../../components/Accordion.astro";
 
13
 
14
  I suggest reading Section 3 of this [review](https://aclanthology.org/2024.cl-3.1/) of good practices in data annotation quality. If you want production level quality and have the means to implement all of these methods, go ahead!
15
 
16
+ <HtmlEmbed src="d3-quality-management.html" frameless />
 
 
 
 
 
17
 
18
  However, important guidelines (no matter your project size) are the following, once you defined your task and scoring guidelines.
19
 
app/src/content/embeds/d3-quality-management.html ADDED
@@ -0,0 +1,254 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="d3-quality-management"></div>
2
+
3
+ <style>
4
+ .d3-quality-management {
5
+ font-family: var(--default-font-family);
6
+ background: transparent;
7
+ border: none;
8
+ border-radius: 0;
9
+ padding: 0;
10
+ width: 100%;
11
+ margin: 0 auto;
12
+ position: relative;
13
+ }
14
+
15
+ .d3-quality-management .quality-grid {
16
+ display: grid;
17
+ grid-template-columns: repeat(3, 1fr);
18
+ gap: var(--spacing-4);
19
+ margin-bottom: var(--spacing-4);
20
+ }
21
+
22
+ .d3-quality-management .quality-card {
23
+ background: oklch(from var(--primary-color) calc(l + 0.4) c h / 0.35);
24
+ border: 1px solid oklch(from var(--primary-color) calc(l + 0.15) c h / 0.6);
25
+ border-radius: 16px;
26
+ padding: var(--spacing-4) var(--spacing-5);
27
+ text-align: left;
28
+ display: flex;
29
+ flex-direction: column;
30
+ justify-content: flex-start;
31
+ align-items: flex-start;
32
+ min-height: 160px;
33
+ transition: all 0.3s ease;
34
+ cursor: pointer;
35
+ }
36
+
37
+ .d3-quality-management .quality-card:hover {
38
+ transform: translateY(-2px);
39
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
40
+ border-color: var(--primary-color);
41
+ }
42
+
43
+ /* Dark mode adjustments for better readability */
44
+ [data-theme="dark"] .d3-quality-management .quality-card {
45
+ background: oklch(from var(--primary-color) calc(l + 0.3) c h / 0.25);
46
+ border-color: oklch(from var(--primary-color) calc(l + 0.1) c h / 0.65);
47
+ }
48
+
49
+ [data-theme="dark"] .d3-quality-management .quality-card:hover {
50
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
51
+ }
52
+
53
+ .d3-quality-management .category-title {
54
+ font-size: 18px;
55
+ font-weight: 600;
56
+ color: var(--primary-color);
57
+ margin-bottom: var(--spacing-3);
58
+ line-height: 1.2;
59
+ letter-spacing: -0.01em;
60
+ position: relative;
61
+ z-index: 1;
62
+ }
63
+
64
+ /* Dark mode adjustments for better readability */
65
+ [data-theme="dark"] .d3-quality-management .category-title {
66
+ color: oklch(from var(--primary-color) calc(l + 0.1) calc(c * 1.2) h);
67
+ }
68
+
69
+ .d3-quality-management .category-items {
70
+ list-style: none;
71
+ padding: 0;
72
+ margin: 0;
73
+ font-size: 13px;
74
+ color: var(--text-color);
75
+ line-height: 1.6;
76
+ font-weight: 500;
77
+ position: relative;
78
+ z-index: 1;
79
+ }
80
+
81
+ .d3-quality-management .category-items li {
82
+ padding-left: 1.6em;
83
+ position: relative;
84
+ margin-bottom: var(--spacing-1);
85
+ }
86
+
87
+ .d3-quality-management .category-items li::before {
88
+ content: "•";
89
+ position: absolute;
90
+ left: 0.4em;
91
+ top: 0;
92
+ color: var(--primary-color);
93
+ font-weight: 600;
94
+ }
95
+
96
+ /* Dark mode adjustments for better readability */
97
+ [data-theme="dark"] .d3-quality-management .category-items {
98
+ color: var(--text-color);
99
+ }
100
+
101
+ .d3-quality-management .bottom-row {
102
+ display: grid;
103
+ grid-template-columns: repeat(2, 1fr);
104
+ gap: var(--spacing-4);
105
+ }
106
+
107
+ .d3-quality-management .caption {
108
+ margin-top: var(--spacing-4);
109
+ font-size: 13px;
110
+ color: var(--muted-color);
111
+ line-height: 1.5;
112
+ font-style: italic;
113
+ }
114
+
115
+ @media (max-width: 1024px) {
116
+ .d3-quality-management .quality-grid {
117
+ grid-template-columns: repeat(2, 1fr);
118
+ }
119
+
120
+ .d3-quality-management .bottom-row {
121
+ grid-template-columns: 1fr;
122
+ }
123
+ }
124
+
125
+ @media (max-width: 768px) {
126
+ .d3-quality-management {
127
+ padding: var(--spacing-3) 0;
128
+ }
129
+
130
+ .d3-quality-management .quality-grid {
131
+ grid-template-columns: 1fr;
132
+ gap: var(--spacing-3);
133
+ }
134
+
135
+ .d3-quality-management .bottom-row {
136
+ grid-template-columns: 1fr;
137
+ gap: var(--spacing-3);
138
+ }
139
+
140
+ .d3-quality-management .quality-card {
141
+ min-height: 140px;
142
+ padding: var(--spacing-3) var(--spacing-4);
143
+ }
144
+ }
145
+ </style>
146
+
147
+ <script>
148
+ (() => {
149
+ const bootstrap = () => {
150
+ const scriptEl = document.currentScript;
151
+ let container = scriptEl ? scriptEl.previousElementSibling : null;
152
+ if (!(container && container.classList && container.classList.contains('d3-quality-management'))) {
153
+ const candidates = Array.from(document.querySelectorAll('.d3-quality-management'))
154
+ .filter((el) => !(el.dataset && el.dataset.mounted === 'true'));
155
+ container = candidates[candidates.length - 1] || null;
156
+ }
157
+
158
+ if (!container) return;
159
+
160
+ if (container.dataset) {
161
+ if (container.dataset.mounted === 'true') return;
162
+ container.dataset.mounted = 'true';
163
+ }
164
+
165
+ // Data structure for quality management categories
166
+ const categories = [
167
+ {
168
+ title: 'Annotation Process',
169
+ items: [
170
+ 'Iterative Annotation',
171
+ 'Careful Data Selection',
172
+ 'Annotation Scheme',
173
+ 'Guideline Design',
174
+ 'Pilot Study',
175
+ 'Validation Step'
176
+ ]
177
+ },
178
+ {
179
+ title: 'Annotators',
180
+ items: [
181
+ 'Workforce Selection',
182
+ 'Qualification Test',
183
+ 'Annotator Training',
184
+ 'Annotator Debriefing',
185
+ 'Monetary Incentive'
186
+ ]
187
+ },
188
+ {
189
+ title: 'Quality Estimation',
190
+ items: [
191
+ 'Error Rate',
192
+ 'Control Questions',
193
+ 'Agreement'
194
+ ]
195
+ },
196
+ {
197
+ title: 'Quality Improvement',
198
+ items: [
199
+ 'Correction',
200
+ 'Updated Guidelines',
201
+ 'Filtering',
202
+ 'Annotator Feedback',
203
+ 'Annotator Deboarding'
204
+ ]
205
+ },
206
+ {
207
+ title: 'Adjudication',
208
+ items: [
209
+ 'Manual Curation',
210
+ 'Majority Voting',
211
+ 'Probabilistic Aggregation'
212
+ ]
213
+ }
214
+ ];
215
+
216
+ // Create the quality management structure
217
+ const topRowHtml = categories.slice(0, 3).map(cat => `
218
+ <div class="quality-card">
219
+ <div class="category-title">${cat.title}</div>
220
+ <ul class="category-items">
221
+ ${cat.items.map(item => `<li>${item}</li>`).join('')}
222
+ </ul>
223
+ </div>
224
+ `).join('');
225
+
226
+ const bottomRowHtml = categories.slice(3).map(cat => `
227
+ <div class="quality-card">
228
+ <div class="category-title">${cat.title}</div>
229
+ <ul class="category-items">
230
+ ${cat.items.map(item => `<li>${item}</li>`).join('')}
231
+ </ul>
232
+ </div>
233
+ `).join('');
234
+
235
+ container.innerHTML = `
236
+ <div class="quality-grid">
237
+ ${topRowHtml}
238
+ </div>
239
+ <div class="bottom-row">
240
+ ${bottomRowHtml}
241
+ </div>
242
+ <div class="caption">
243
+ <strong>Figure 1:</strong> Data annotation best practices recommended by the comprehensive review at aclanthology.org/2024.cl-3.1 - check out their Section 3.
244
+ </div>
245
+ `;
246
+ };
247
+
248
+ if (document.readyState === 'loading') {
249
+ document.addEventListener('DOMContentLoaded', bootstrap, { once: true });
250
+ } else {
251
+ bootstrap();
252
+ }
253
+ })();
254
+ </script>