@@ -2262,21 +2262,12 @@ class SlotExtractor {
22622262 private fun inferMetricFromContext (text : String ): String? {
22632263 // Pre-compiled regex patterns for better performance
22642264 val inferencePatterns = mapOf (
2265- " steps" to listOf (
2266- Regex (" \\ b(?:walk|walked|walking|stroll|strolling|strolled|hike|hiking|hiked|trek|trekking|trekked|march|marching|marched|wander|wandering|wandered|amble|ambling|ambled|pace|pacing|paced)\\ b(?!\\ s+(?:distance|far|km|miles?|kilometers?))" , RegexOption .IGNORE_CASE ),
2267- Regex (" \\ bhow\\ s+(?:much|many).*(?:walk|walked|stroll|hike|move|moved|step)\\ b" , RegexOption .IGNORE_CASE ),
2268- Regex (" \\ bsteps?\\ b|\\ bfootsteps?\\ b|\\ bfoot\\ s+steps?\\ b" , RegexOption .IGNORE_CASE ),
2269- Regex (" \\ b(?:count|counting|total|number).*(?:steps?|walk)\\ b" , RegexOption .IGNORE_CASE ),
2270- Regex (" \\ b(?:daily|today'?s|my)\\ s+(?:steps?|walk|walking)\\ b" , RegexOption .IGNORE_CASE ),
2271- Regex (" \\ bstep\\ s+(?:count|counter|goal|target|total)\\ b" , RegexOption .IGNORE_CASE ),
2272- Regex (" \\ bhow\\ s+(?:active|much\\ s+activity)\\ b" , RegexOption .IGNORE_CASE ),
2273- Regex (" \\ bmovement\\ b|\\ bactivity\\ s+level\\ b" , RegexOption .IGNORE_CASE ),
2274- Regex (" \\ bgait\\ b|\\ btread\\ b|\\ bstride\\ b" , RegexOption .IGNORE_CASE )
2275- ),
22762265 " distance" to listOf (
2277- Regex (" \\ bhow\\ s+far \\ b| \\ bhow \\ s+much \\ s+distance \\ b| \\ bhow \\ s+long \\ s+ (?:of \\ s+)?(?:a \\ s+)? distance\\ b" , RegexOption .IGNORE_CASE ),
2278- Regex (" \\ b (?:walk|walked|walking|run|ran|running|jog|jogged|jogging|hike|hiked|hiking) \\ s+(?:distance|far|length) \\ b" , RegexOption .IGNORE_CASE ),
2266+ Regex (" \\ bhow\\ s+(?:much|many) \\ s+distance\\ b" , RegexOption .IGNORE_CASE ),
2267+ Regex (" \\ bhow \\ s+far \\ b| \\ bhow \\ s+long \\ s+ (?:of \\ s+)? (?:a \\ s+)?distance \\ b" , RegexOption .IGNORE_CASE ),
22792268 Regex (" \\ bdistance.*(?:walk|walked|run|ran|travel|travelled|traveled|cover|covered)\\ b" , RegexOption .IGNORE_CASE ),
2269+ Regex (" \\ bhow\\ s+(?:much|many).*distance.*(?:walk|walked|run|ran|travel|travelled|traveled|cover|covered)\\ b" , RegexOption .IGNORE_CASE ),
2270+ Regex (" \\ b(?:walk|walked|walking|run|ran|running|jog|jogged|jogging|hike|hiked|hiking)\\ s+(?:distance|far|length)\\ b" , RegexOption .IGNORE_CASE ),
22802271 Regex (" \\ bkilometers?\\ b|\\ bkilometres?\\ b|\\ bmiles?\\ b|\\ bkm\\ b|\\ bmi\\ b|\\ bmeters?\\ b|\\ bmetres?\\ b" , RegexOption .IGNORE_CASE ),
22812272 Regex (" \\ bhow\\ s+(?:much|many)\\ s+(?:km|miles?|meters?)\\ b" , RegexOption .IGNORE_CASE ),
22822273 Regex (" \\ b(?:total|overall|entire)\\ s+distance\\ b" , RegexOption .IGNORE_CASE ),
@@ -2285,6 +2276,17 @@ class SlotExtractor {
22852276 Regex (" \\ bjourney\\ s+length\\ b|\\ btrip\\ s+distance\\ b" , RegexOption .IGNORE_CASE ),
22862277 Regex (" \\ bhow\\ s+long\\ s+(?:of\\ s+)?(?:a\\ s+)?(?:walk|run|hike)\\ b" , RegexOption .IGNORE_CASE )
22872278 ),
2279+ " steps" to listOf (
2280+ Regex (" \\ b(?:walk|walked|walking|stroll|strolling|strolled|hike|hiking|hiked|trek|trekking|trekked|march|marching|marched|wander|wandering|wandered|amble|ambling|ambled|pace|pacing|paced)\\ b(?!\\ s+(?:distance|far|km|miles?|kilometers?))" , RegexOption .IGNORE_CASE ),
2281+ Regex (" \\ bhow\\ s+(?:much|many)(?!.*distance).*(?:walk|walked|stroll|hike|move|moved|step)\\ b" , RegexOption .IGNORE_CASE ),
2282+ Regex (" \\ bsteps?\\ b|\\ bfootsteps?\\ b|\\ bfoot\\ s+steps?\\ b" , RegexOption .IGNORE_CASE ),
2283+ Regex (" \\ b(?:count|counting|total|number).*(?:steps?|walk)(?!.*distance)\\ b" , RegexOption .IGNORE_CASE ),
2284+ Regex (" \\ b(?:daily|today'?s|my)\\ s+(?:steps?|walk|walking)\\ b" , RegexOption .IGNORE_CASE ),
2285+ Regex (" \\ bstep\\ s+(?:count|counter|goal|target|total)\\ b" , RegexOption .IGNORE_CASE ),
2286+ Regex (" \\ bhow\\ s+(?:active|much\\ s+activity)\\ b" , RegexOption .IGNORE_CASE ),
2287+ Regex (" \\ bmovement\\ b|\\ bactivity\\ s+level\\ b" , RegexOption .IGNORE_CASE ),
2288+ Regex (" \\ bgait\\ b|\\ btread\\ b|\\ bstride\\ b" , RegexOption .IGNORE_CASE )
2289+ ),
22882290 " heart rate" to listOf (
22892291 Regex (" \\ bheart\\ s+rate\\ b|\\ bheartrate\\ b|\\ bheart\\ s+beat\\ b|\\ bheartbeat\\ b" , RegexOption .IGNORE_CASE ),
22902292 Regex (" \\ bpulse\\ b|\\ bpulse\\ s+rate\\ b|\\ bheart\\ s+rhythm\\ b" , RegexOption .IGNORE_CASE ),
0 commit comments