Skip to main content

sensorlm/data/captioning/
templates.rs

1//! Text templates for all three captioning levels.
2//!
3//! Each constant is a slice of format-string templates.  A random template is
4//! chosen at generation time so the model sees linguistic diversity in the
5//! training text rather than identical phrasing for every sample.
6
7// ---------------------------------------------------------------------------
8// Level 1 – Statistical (low-level) templates
9// Placeholders: {name}, {mean_val:.1}, {max_val:.1}, {min_val:.1}, {std_val:.1}
10// ---------------------------------------------------------------------------
11
12/// Templates that describe per-channel statistics (mean, max, min, std).
13pub const LOW_LEVEL_TEMPLATES: &[&str] = &[
14    "{name} mean, max, min, std are {mean_val:.1}, {max_val:.1}, {min_val:.1}, {std_val:.1}.",
15    "{name} exhibits a mean of {mean_val:.1}, with peak and minimal values reaching {max_val:.1} and {min_val:.1}, and a standard deviation of {std_val:.1}.",
16    "{name} shows a mean of {mean_val:.1}, with range {max_val:.1} to {min_val:.1} and a standard deviation of {std_val:.1}.",
17    "{name} metrics include a mean of {mean_val:.1}, a maximum of {max_val:.1}, a minimum of {min_val:.1}, and a standard deviation of {std_val:.1}.",
18    "{name} has a mean of {mean_val:.1}, a maximum of {max_val:.1}, a minimum of {min_val:.1}, and a standard deviation of {std_val:.1}.",
19    "{name} displays a mean of {mean_val:.1}, a maximum of {max_val:.1}, a minimum of {min_val:.1}, and a standard deviation of {std_val:.1}.",
20    "{name} presents a mean of {mean_val:.1}, a maximum of {max_val:.1}, a minimum of {min_val:.1}, and a standard deviation of {std_val:.1}.",
21    "{name} reports a mean of {mean_val:.1}, a maximum of {max_val:.1}, a minimum of {min_val:.1}, and a standard deviation of {std_val:.1}.",
22    "{name} average {mean_val:.1}, reaching a maximum of {max_val:.1} and a minimum of {min_val:.1}, with a standard deviation of {std_val:.1}.",
23    "{name} features a mean of {mean_val:.1}, a maximum of {max_val:.1}, a minimum of {min_val:.1}, and a standard deviation of {std_val:.1}.",
24    "The average {name} value is {mean_val:.1}, with extremes at {max_val:.1} (max) and {min_val:.1} (min), and a std of {std_val:.1}.",
25    "Statistical overview of {name}: mean = {mean_val:.1}, max = {max_val:.1}, min = {min_val:.1}, standard deviation = {std_val:.1}.",
26    "{name} data summary: average = {mean_val:.1}, highest point = {max_val:.1}, lowest point = {min_val:.1}, standard deviation = {std_val:.1}.",
27    "The {name} readings show a central value of {mean_val:.1}, a standard deviation of {std_val:.1}, and a value range of {min_val:.1}–{max_val:.1}.",
28    "Observed statistics for {name}: mean of {mean_val:.1}, standard deviation of {std_val:.1}, with values ranging from {min_val:.1} to {max_val:.1}.",
29    "The {name} sensor data has a mean of {mean_val:.1}, a standard deviation of {std_val:.1}, and its values fluctuate between {min_val:.1} and {max_val:.1}.",
30    "For the {name} measurements, the mean is {mean_val:.1}, the standard deviation is {std_val:.1}, and the data lies between {min_val:.1} and {max_val:.1}.",
31    "A summary of {name} data reveals a mean of {mean_val:.1}, a standard deviation of {std_val:.1}, a minimum of {min_val:.1}, and a maximum of {max_val:.1}.",
32    "The {name} values are characterized by a mean of {mean_val:.1}, a standard deviation of {std_val:.1}, and a range from {min_val:.1} to {max_val:.1}.",
33    "The {name} data exhibits a mean of {mean_val:.1}, a standard deviation of {std_val:.1}, and its extreme values are {min_val:.1} and {max_val:.1}.",
34];
35
36// ---------------------------------------------------------------------------
37// Level 2 – Structural (trend) templates
38// Placeholders: {sensor_name}, {trend_type}, {start}, {end}
39// ---------------------------------------------------------------------------
40
41/// Templates that describe temporal trends within a sensor channel.
42pub const TREND_TEMPLATES: &[&str] = &[
43    "From minute {start} to {end}, {sensor_name} exhibits an {trend_type} trend.",
44    "{sensor_name} is observed to be {trend_type} between minute {start} and {end}.",
45    "During minute {start} to {end}, there is a {trend_type} trend in {sensor_name}.",
46    "Data from {sensor_name} indicates a {trend_type} trend spanning minute {start} to {end}.",
47    "{sensor_name} reveals an {trend_type} trend during the interval of minute {start} to {end}.",
48    "{sensor_name} is {trend_type} throughout the period from minute {start} to minute {end}.",
49    "Over minute {start} to {end}, {sensor_name} displays a {trend_type} trend.",
50    "An {trend_type} trend in {sensor_name} data recorded between minute {start} and {end}.",
51    "{sensor_name} undergoes an {trend_type} trend in the time window of minute {start} to {end}.",
52    "{sensor_name} is {trend_type} between minutes {start}-{end}.",
53    "During the period of minute {start} to {end}, {sensor_name} is {trend_type}.",
54    "Observing a {trend_type} trend in {sensor_name} across minutes {start} to {end}.",
55    "{trend_type} trend in {sensor_name} observed between minutes {start} and {end}.",
56    "{sensor_name} exhibits {trend_type} trend during minute {start}-{end} interval.",
57    "The {sensor_name} trend from minute {start} to {end} is {trend_type}.",
58];
59
60// ---------------------------------------------------------------------------
61// Level 2 – Anomaly (peak/valley) templates
62// Placeholders: {sensor_name}, {anomaly}, {time}
63// ---------------------------------------------------------------------------
64
65/// Templates that describe significant peaks, spikes, or drops in a signal.
66pub const ANOMALY_TEMPLATES: &[&str] = &[
67    "A {anomaly} is detected for {sensor_name} at minute {time}.",
68    "At minute {time}, {sensor_name} shows a {anomaly}.",
69    "We observe a {anomaly} in {sensor_name} data at minute {time}.",
70    "Minute {time} shows a {anomaly} for the {sensor_name}.",
71    "The {sensor_name} experienced a {anomaly} at minute {time}.",
72    "A {anomaly} is recorded for {sensor_name} at minute {time}.",
73    "A {anomaly} occurs in the {sensor_name} readings at minute {time}.",
74    "Data indicates a {anomaly} for {sensor_name} at the {time}-minute mark.",
75    "A {anomaly} observed in {sensor_name} at minute {time}.",
76    "{sensor_name} displays a {anomaly} at minute {time}.",
77    "Irregular {anomaly} in {sensor_name} readings at minute {time}.",
78    "At minute {time}, an {anomaly} is present in {sensor_name}.",
79    "Unusual {anomaly} in {sensor_name} data at minute {time}.",
80    "Noteworthy {anomaly} for {sensor_name} at minute {time}.",
81    "{anomaly} event recorded for {sensor_name} at minute {time}.",
82];
83
84// ---------------------------------------------------------------------------
85// Level 3 – Semantic (activity) templates
86// Placeholders: {activity}, {start_minute}, {end_minute}
87// ---------------------------------------------------------------------------
88
89/// Templates that describe a labelled activity event.
90pub const ACTIVITY_TEMPLATES: &[&str] = &[
91    "{activity} during minutes {start_minute} to {end_minute}.",
92    "{activity} between minutes {start_minute} and {end_minute}.",
93    "{activity} was detected between minutes {start_minute} and {end_minute}.",
94    "A {activity} event was detected between minutes {start_minute} and {end_minute}.",
95    "A {activity} period between minutes {start_minute} and {end_minute}.",
96    "{activity} occurred from minute {start_minute} to {end_minute}.",
97    "Observed {activity} spanning minutes {start_minute} to {end_minute}.",
98    "{activity} was recorded between minute {start_minute} and {end_minute}.",
99    "Period of {activity} noted from minute {start_minute} until {end_minute}.",
100    "{activity} took place during the minutes {start_minute} through {end_minute}.",
101    "Identified {activity} across the timeframe of minute {start_minute} to {end_minute}.",
102    "{activity} is indicated between the {start_minute} and {end_minute} minute marks.",
103    "An instance of {activity} was identified from minute {start_minute} to {end_minute}.",
104    "{activity} state observed from minute {start_minute} up to {end_minute}.",
105    "User engaged in {activity} between minute {start_minute} and {end_minute}.",
106    "A continuous {activity} phase from minute {start_minute} to {end_minute}.",
107    "{activity} episode occurred between minute {start_minute} and {end_minute}.",
108    "From minute {start_minute} to {end_minute}, the user had a period of {activity}.",
109    "Detection of {activity} activity between minute {start_minute} and {end_minute}.",
110    "{activity} recorded within the {start_minute}-{end_minute} minute range.",
111];
112
113// ---------------------------------------------------------------------------
114// Level 3 – Mood templates
115// Placeholders: {mood}, {time}
116// ---------------------------------------------------------------------------
117
118/// Templates that describe a self-reported mood log entry.
119pub const MOOD_TEMPLATES: &[&str] = &[
120    "The person logged their mood as {mood} at minute {time}.",
121    "A mood of {mood} was logged at minute {time}.",
122    "Mood appears to be {mood} at minute {time}.",
123    "At minute {time}, the person's mood is {mood}.",
124    "Feeling {mood} was reported by the individual at minute {time}.",
125    "The individual feels {mood} at minute {time}.",
126    "Reported {mood} mood at minute {time} for the individual.",
127    "The person registered a mood of {mood} at minute {time}.",
128    "At minute {time}, the individual's feeling is {mood}.",
129    "At minute {time}, the person logs their mood as {mood}.",
130];