RemiFabre commited on
Commit
d1bec61
·
1 Parent(s): 4484c8a

Subjective ranking of emotions

Browse files
ressources/emotions_ranked.txt ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Reachy Mini moves dataset quality ranking
2
+
3
+ Excellent
4
+ ---------
5
+ - anxiety1 (clear)
6
+ - boredom2 (clear)
7
+ - dance2 (clear)
8
+ - dance3 (clear)
9
+ - downcast1 (clear)
10
+ - dying1 (clear)
11
+ - exhausted1 (clear)
12
+ - grateful1 (ambiguous)
13
+ - helpful1 (ambiguous)
14
+ - loving1 (clear)
15
+ - rage1 (clear)
16
+ - reprimand1 (clear)
17
+ - resigned1 (clear)
18
+ - sad1 (clear)
19
+ - sad2 (clear)
20
+ - scared1 (clear)
21
+ - sleep1 (clear)
22
+ - surprised1 (clear)
23
+ - thoughtful1 (clear)
24
+ - welcoming2 (clear)
25
+
26
+ OK
27
+ --
28
+ - amazed1 (clear)
29
+ - attentive1 (clear)
30
+ - attentive2 (clear)
31
+ - boredom1 (clear)
32
+ - calming1 (ambiguous)
33
+ - come1 (ambiguous)
34
+ - confused1 (clear)
35
+ - contempt1 (ambiguous)
36
+ - curious1 (ambiguous)
37
+ - dance1 (ambiguous)
38
+ - disgusted1 (clear)
39
+ - displeased1 (clear)
40
+ - displeased2 (clear)
41
+ - electric1 (ambiguous)
42
+ - fear1 (clear)
43
+ - frustrated1 (ambiguous)
44
+ - furious1 (ambiguous)
45
+ - go_away1 (ambiguous)
46
+ - helpful2 (ambiguous)
47
+ - impatient1 (ambiguous)
48
+ - impatient2 (clear)
49
+ - incomprehensible2 (ambiguous)
50
+ - indifferent1 (ambiguous)
51
+ - inquiring1 (ambiguous)
52
+ - inquiring2 (ambiguous)
53
+ - inquiring3 (ambiguous)
54
+ - irritated1 (clear)
55
+ - irritated2 (clear)
56
+ - laughing1 (clear)
57
+ - laughing2 (clear)
58
+ - lonely1 (clear)
59
+ - lost1 (ambiguous)
60
+ - no1 (clear)
61
+ - no_excited1 (clear)
62
+ - no_sad1 (clear)
63
+ - proud2 (ambiguous)
64
+ - proud3 (ambiguous)
65
+ - reprimand2 (clear)
66
+ - serenity1 (ambiguous)
67
+ - shy1 (clear)
68
+ - success1 (clear)
69
+ - success2 (clear)
70
+ - surprised2 (clear)
71
+ - thoughtful2 (clear)
72
+ - tired1 (ambiguous)
73
+ - uncertain1 (clear)
74
+ - uncomfortable1 (ambiguous)
75
+ - understanding2 (clear)
76
+ - welcoming1 (ambiguous)
77
+ - yes1 (clear)
78
+
79
+ Bad
80
+ ---
81
+ - cheerful1 (clear)
82
+ - oops1 (ambiguous)
83
+ - oops2 (ambiguous)
84
+ - reprimand3 (clear)
85
+ - understanding1 (clear)
86
+ - yes_sad1 (clear)
ressources/generate_emotions_ranked.py ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """Generate a simple quality report for the Reachy Mini moves dataset."""
3
+
4
+ from pathlib import Path
5
+
6
+ from ruamel.yaml import YAML
7
+
8
+
9
+ ROOT = Path(__file__).resolve().parent
10
+ DATASET_PATH = ROOT / "emotions.yml"
11
+ OUTPUT_PATH = ROOT / "emotions_ranked.txt"
12
+ DATASET_NAME = "Reachy Mini moves dataset"
13
+
14
+
15
+ def load_moves() -> list[dict]:
16
+ """Return the list of moves defined in emotions.yml."""
17
+ yaml = YAML(typ="safe")
18
+ with DATASET_PATH.open(encoding="utf-8") as stream:
19
+ data = yaml.load(stream) or {}
20
+ return data.get("moves", [])
21
+
22
+
23
+ def main() -> None:
24
+ categories: dict[str, list[tuple[str, str]]] = {
25
+ "excellent": [],
26
+ "ok": [],
27
+ "bad": [],
28
+ }
29
+
30
+ for move in load_moves():
31
+ quality = (move.get("quality") or "").strip().lower()
32
+ if quality not in categories:
33
+ continue
34
+
35
+ name = move.get("id") or move.get("clean_name") or "unnamed_move"
36
+ precision = (move.get("precision") or "ambiguous").strip().lower()
37
+ precision_label = "clear" if precision == "clear" else "ambiguous"
38
+ categories[quality].append((name, precision_label))
39
+
40
+ sections: list[str] = [
41
+ f"{DATASET_NAME} quality ranking",
42
+ "",
43
+ ]
44
+
45
+ quality_labels = [
46
+ ("excellent", "Excellent"),
47
+ ("ok", "OK"),
48
+ ("bad", "Bad"),
49
+ ]
50
+
51
+ for key, label in quality_labels:
52
+ sections.append(label)
53
+ sections.append("-" * len(label))
54
+ entries = sorted(categories[key], key=lambda item: item[0].lower())
55
+ if not entries:
56
+ sections.append("- None")
57
+ else:
58
+ for name, precision in entries:
59
+ sections.append(f"- {name} ({precision})")
60
+ sections.append("")
61
+
62
+ OUTPUT_PATH.write_text("\n".join(sections).strip() + "\n", encoding="utf-8")
63
+
64
+
65
+ if __name__ == "__main__":
66
+ main()