| | from typing import Literal |
| |
|
| | Room = Literal[ |
| | "living_room", |
| | "kitchen", |
| | "bedroom", |
| | "bathroom", |
| | "hallway", |
| | "office", |
| | "storage", |
| | "any", |
| | "unknown", |
| | ] |
| |
|
| | OBJECT_ROOM_RULES = { |
| | "remote": "living_room", |
| | "tivi": "living_room", |
| | "sofa": "living_room", |
| | "ghế sofa": "living_room", |
| | "bàn ăn": "kitchen", |
| | "cơm điện": "kitchen", |
| | "tủ lạnh": "kitchen", |
| | "bếp": "kitchen", |
| | "chăn": "bedroom", |
| | "gối": "bedroom", |
| | "giường": "bedroom", |
| | "khăn tắm": "bathroom", |
| | "phòng tắm": "bathroom", |
| | "bàn chải": "bathroom", |
| | "giày": "hallway", |
| | "chìa khóa": "hallway", |
| | "bàn làm việc": "office", |
| | "máy tính": "office", |
| | "laptop": "office", |
| | "máy hút bụi": "storage", |
| | } |
| |
|
| | def map_object_to_room(text: str) -> Room: |
| | """Infer a typical room for a given Vietnamese object phrase.""" |
| | t = text.lower() |
| | for key, room in OBJECT_ROOM_RULES.items(): |
| | if key in t: |
| | return room |
| | if "điện thoại" in t or "phone" in t: |
| | return "any" |
| | return "unknown" |
| |
|
| | if __name__ == "__main__": |
| | tests = [ |
| | "điều khiển tivi", |
| | "chăn bông", |
| | "giày thể thao", |
| | "bàn làm việc", |
| | "điện thoại của tôi", |
| | ] |
| | for t in tests: |
| | print(t, "->", map_object_to_room(t)) |
| |
|