NOTE:

This currently does not figure out the command, which should be easy I just havnt gotten to it yet. Currently this takes the command and figures out the most likely item as a target for that voice command

My naming scheme for groups and items is as follows.

Main group = floor

secondary group = floor_room

item name = floor_room_item

Example:

All

->upstairs

---->upstairs_lights

------->upstairs_bedroom_one_light

------->upstairs_kitchen_light

---->upstairs_bedroom_one

------->upstairs_bedroom_one_light

---->upstairs_kitchen

->downstairs

---->downstairs_bedroom_one

---->downstairs_bathroom

->garage

->lights

->general

At the moment it just prints out the most likely items after it is done processing.

The process

chops up voice command searches top level groups and assigns points for each word in voice command found in group name most like groups then get searched - all members - and points are assigned to each item for each word in the command it contains the most likely items or groups are added to a hashmap - as long as they do not appear in the defined ignored items list the items in the previous hashmap then have their groups searched, assigning points for each word in the voice command found - using .groupNames The most likely candidates are then added to the final map and currently their names are - sorry for this in advance - println to the console.

here is the rule

some of the imports arent used… i think

This was and continues to be my everest, when I am finished it will be flawless I promise. Also please if you have any suiggestions are any ways the code can be cleaned up please do feel free to comment, it will only make it better.