First, I would build a list of all possible commands (not every possible way to say a command, but the actual function itself: “kitchen light” and “turn on the light in the kitchen” is the same command) based on the actual functions available to the smart home . I assume that there is a discrete number of them in the amount of not more than a hundred. Assign each code to your identifier.
Then your work will display the input:
- English sentence
- speaker location
- time of day, day of the week
- any other input
to display the confidence level (from 0.0 to 1.0) for each team.
Then the system will execute the best match command if the confidence exceeds a certain custom threshold (say, more than 0.70).
From here it becomes a machine learning application. There are several different approaches (and, in addition, approaches can be combined together if they compete based on input characteristics).
To begin with, I will be working on the NLP book by Jurafsky / Manning from Stanford . This is a good overview of current NLP algorithms.
From there, you will get some ideas on how imaging can be learned by the machine. More importantly, how natural language can be broken down into the mathematical structure of machine learning.
After the text has been semantically analyzed, the simplest ML algorithm, to try first, will be controlled. To generate training data, there is a regular graphical interface, say a command, and then press the corresponding command manually. This creates a single supervised training case. Make some of them. Set aside a little for testing. It is also an unskilled job to help other people. You can then use them as your set for your ML algorithm.
Andrew Tomazos
source share