United States Patent
Johnston et al.
Patent No.: US 10,057,733 B2
Date of Patent: Aug. 21, 2018
What is claimed:
- A system for interpreting natural language to send communications, the system comprising:
- a processor;
- a memory coupled to the processor; and
- a mobile application component including processor-executable instructions stored in the memory and operable on the processor to:
- receive a natural language message including a plurality of words;
- compare one or more words of the plurality of words to either a small data list or a medium data list, the small data list including a plurality of keywords and the medium data list including a plurality of key value pairs;
- in response to the natural language message including a word that matches one or more keywords of the small data list, match the natural language message to a function, wherein the word includes a first character length that is within a configurable number of characters of a keyword length;
- in response to the natural language message including a paired value of a key value pair in the medium data list, match the natural language message to a label of the key value pair, wherein the paired value includes a second character length that is within a configurable number of characters of a paired value length;
- receive a plurality of message variations, the plurality of message variations based on a response scenario corresponding to the natural language message, each of the message variations including a plurality of response words; and
- automatically send a communication from a single mobile device to a plurality of mobile devices, the communication including the response scenario corresponding to the natural language message and the single mobile device executing the mobile application component.
- The system of claim 1, wherein the mobile application component includes further processor-executable instructions stored in the memory and operable on the processor to determine a sequence of the natural language message in a series of natural language messages, wherein the received natural language message is received in response to at least one previous message of the series of natural language messages sent using the processor.
- The system of claim 2, wherein the mobile application component includes further processor-executable instructions stored in the memory and operable on the processor to match the natural language message to the label based on the sequence.
- The system of claim 3, wherein both the small data list and the medium data list are stored on a single mobile device, the single mobile device including the processor and the memory storing the mobile application component.
- The system of claim 2, wherein the mobile application component includes further processor-executable instructions stored in the memory and operable on the processor to:
- determine an amount of time between a first natural language message of the series of natural language messages and a second natural language message of the series of natural language messages, wherein the system receives the first natural language message before the second natural language message; and
- assign a correlation score to the second natural language message based on the amount of time.
- The system of claim 5, wherein the mobile application component includes further processor-executable instructions stored in the memory and operable on the processor to, in response to the natural language message including neither the word that matches one or more keywords of the small data list nor the paired value of the key value pair in the medium data list, at least one of:
- send the natural language message to a trained machine learning API via a network; and
- match the natural language message to a value of a large data list stored remotely from the memory.
- The system of claim 2, wherein the mobile application component includes further processor-executable instructions stored in the memory and operable on the processor to, in response to receiving an indication that one or more of the function or the label of the key value pair is incorrect, add the indication to one or more of the small data list and the medium data list.
- The system of claim 1, wherein the label corresponds to another function.
- The system of claim 1, wherein the mobile application component includes further processor-executable instructions stored in the memory and operable on the processor to store a manual response to the natural language message in one or more of the small data list and the medium data list.
- The system of claim 1, wherein the plurality of response words includes one or more of a text message acronym, a slang word, a typo, and a grammar error.
- The system of claim 1, wherein the server component includes further processor-executable instructions stored in the server memory and operable on the server processor to:
- receive a first plurality of message variations from a first source;
- send the first plurality of message variations to a plurality of second sources; and
- receive a second plurality of message variations from the plurality of second sources, the second plurality of message variations based on the first plurality of message variations;
- wherein the plurality of message variations includes both the first plurality of message variations and the second plurality of message variations.
- The system of claim 11, wherein the server component includes processor-executable instructions stored in the server memory and operable on the server processor to assign a plurality of synonyms to each of the plurality of response words.
- The system of claim 12, wherein the server component includes processor-executable instructions stored in the server memory and operable on the server processor to create a response data set by removing one or more of the plurality of synonyms based on a review of the plurality of synonyms, the response data set including a plurality of words and phrases.
- The system of claim 13, wherein the server component includes processor-executable instructions stored in the server memory and operable on the server processor to send the response word data set to a web-based machine-learning system to assign a confidence value of a plurality of confidence values to each word and each phrase of the response data set, each confidence value measuring a likelihood that each word and each phrase matches the label of the key value pair.
- The system of claim 14, wherein the server component includes processor-executable instructions stored in the server memory and operable on the server processor to, in response to receiving an indication that the confidence value accurately corresponds to the label of the key value pair:
- store the word or phrase as a keyword in the small data list; and
- store the word or phrase as a paired value in the medium data list.
- A method for interpreting natural language to send communications based on instructions stored in a memory of a mobile computing device and operable on a processor of the mobile computing device, the method comprising:
- receiving a natural language message at the computing device, the natural language message including a plurality of words;
- comparing one or more words of the plurality of words to a small data list stored on the computing device, the small data list including a plurality of keywords;
- in response to the natural language message including a word that matches one or more keywords of the small data list stored on the computing device, match the natural language message to a function, wherein the word includes a first character length that is within a configurable number of characters of a keyword length;
- in response to the natural language message including a paired value of a key value pair in a medium data list, match the natural language message to a label of the key value pair, wherein the paired value includes a second character length that is within a configurable number of characters of a paired value length;
- receiving a plurality of message variations, the plurality of message variations based on a response scenario corresponding to the natural language message, each of the message variations including a plurality of response words; and
- automatically sending a communication from a single mobile device to a plurality of mobile devices, wherein the communication includes the response scenario corresponding to the natural language message.
- The method of claim 16, wherein the paired value of the key value pair is not a member of the small data list and the medium data list is stored remotely from the computing device.
- The method of claim 16, wherein, in response to the natural language message including neither the word that matches one or more keywords of the small data list nor the paired value of the key value pair in the medium data list, sending the natural language message to a trained machine learning API via a network.
- The method of claim 16, further comprising:
- receiving a first plurality of message variations from a first source;
- sending the first plurality of message variations to a plurality of second sources; and
- receiving a second plurality of message variations from the plurality of second sources, the second plurality of message variations based on the first plurality of message variations;
- wherein the plurality of message variations includes both the first plurality of message variations and the second plurality of message variations.
- The method of claim 19, further comprising:
- assigning a plurality of synonyms to each of the plurality of response words; and
- creating a response data set by removing one or more of the plurality of synonyms based on a review of the plurality of synonyms, the response data set including a plurality of words and phrases.
- The method of claim 20, further comprising sending the response word data set to a web-based machine-learning system to assign a confidence value of a plurality of confidence values to each word and each phrase of the response data set, each confidence value measuring a likelihood that one or more of a corresponding word and phrase matches either one or more keywords of the small data list or one or more paired values of the medium data list.
- The method of claim 21, further comprising, in response to receiving an indication that the confidence value accurately corresponds to the word or phrase of the response data:
- storing the word or phrase as a keyword in the small data list; and
- storing the word or phrase as a paired value in the medium data list.
- The method of claim 22, further comprising, in response to receiving an indication that the confidence value accurately corresponds to the word or phrase of the response data:
- storing the word or phrase as a keyword in the small data list; and
- storing the word or phrase as a paired value in the medium data list.