Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
ARTIFICIALLY INTELLIGENT COMMUNICATION THROUGH HIERARCHICAL KEYWORD PARSING
Document Type and Number:
WIPO Patent Application WO/2018/126209
Kind Code:
A1
Abstract:
An artificially intelligent communication system includes a memory including a hierarchical keyword database which includes a top-level set including at least a first database keyword, a lower level set that includes at least a second database keyword and a set of pointers that includes a pointer pointing from the first database keyword to the lower level set. The system includes an input device that can receive communication input including an input word and a processing device, operatively coupled to the memory. The processing device includes a string-pattern matching facility and an analysis facility. The analysis facility communicates with the string-pattern matching facility to search the hierarchical keyword database to find a match between at least a portion of the input word and one of the first or second database keywords. In response to finding the match, the analysis facility can instruct the artificially intelligent communication system to perform an action.

More Like This:
Inventors:
LENK RONALD J (US)
LENK MAX (US)
Application Number:
PCT/US2017/069088
Publication Date:
July 05, 2018
Filing Date:
December 29, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
LENK RONALD J (US)
LENK MAX (US)
International Classes:
G06F7/06; G06F17/30
Foreign References:
US7836083B22010-11-16
US20110320482A12011-12-29
US20120016678A12012-01-19
Attorney, Agent or Firm:
HECHT, Kinza (US)
Download PDF:
Claims:
CLAIMS

What is claimed is:

1. An artificially intelligent communication system comprising:

a memory comprising a hierarchical keyword database, the hierarchical keyword database comprising:

at least two sets, each of the at least two sets comprising one or more respective database keywords, the at least two sets comprising:

a top-level set comprising at least a first database keyword;

a lower level set comprising at least a second database keyword; and a set of pointers comprising at least one pointer pointing from the first database keyword to the lower level set;

an input device configured to receive communication input comprising at least an input word; and

a processing device, operatively coupled to the memory, the processing device comprising a string-pattern matching facility and an analysis facility, wherein the analysis facility is configured to communicate with the string-pattern matching facility to search the hierarchical keyword database to find a match between at least a portion of the input word and one of the first database keyword or the second database keyword, and in response to finding the match, the analysis facility is configured to instruct the artificially intelligent communication system to perform an action.

2. The artificially intelligent communication system of claim 1 , wherein each of the first database keyword and the second database keyword comprises at least one of: a single word, a single symbol, a plurality of words, or a plurality of symbols and wherein the communication input comprises a string.

3. The artificially intelligent communication system of claim 1 , wherein at least one of the top- level set or the lower level set comprises one or more database keywords organized by:

string length in ascending or descending order;

string likelihood of occurrence within received communication inputs in ascending or descending order; or

a combination of the string length and the string likelihood.

4. The artificially intelligent communication system of claim 1 , wherein the input device comprises at least one of a microphone, a keyboard, a second artificially intelligent

communication system, or a computing device, wherein the input device is configured to receive at least one of voice input data, text input data, or multimedia input data from a user, and wherein the input device is configured to receive input transmitted via wired or wireless or other signals.

5. The artificially intelligent communication system of claim 1 , wherein the string-pattern matching facility is configured to determine whether a first string matches a substring within a second string.

6. The artificially intelligent communication system of claim 1 , wherein the analysis facility searches the top-level set for the match using the string-pattern matching facility. 7. The artificially intelligent communication system of claim 6, wherein the match comprises a first match, wherein the analysis facility is configured to follow the pointer pointing from the first database keyword to the lower level set and search within the lower level set for a second match using the string-pattern matching facility. 8. The artificially intelligent communication system of claim 6, wherein the analysis facility recursively follows the pointer pointing from the first database keyword to the lower level set.

9. The artificially intelligent communication system of claim 1 , wherein the match comprises a first match and wherein the input word comprises a first input word, wherein the analysis facility is configured to:

in response to finding the first match, search the hierarchical keyword database to find a second match between a second input word within the communication input and one of the top- level set, the lower level set, or another set comprised within the at least two sets of the hierarchical keyword database;

in response to finding the first match and the second match, determine whether the second match is a substring of the first match; and

in response to determining that second match is a substring of the first match, rejecting the second match.

10. The artificially intelligent communication system of claim 9, wherein the analysis facility is configured to terminate the search in response to one of: searching a bottom level set of the at least two sets of the hierarchical keyword database, or determining that no matches are found at a level set of the at least two sets of the hierarchical keyword database.

11. The artificially intelligent communication system of claim 1, further comprising a storage unit, wherein the storage unit is configured to maintain a record of keywords associated with one or more communication inputs received by the input device, wherein the one or more communication inputs comprises a previous communication input received by the input device prior to receiving the communication input.

12. The artificially intelligent communication system of claim 11, further comprising an output device, wherein the record comprises an output generated by the artificially intelligent communication system, and wherein the output is used by the analysis facility in the search.

13. The artificially intelligent communication system of claim 12, wherein the analysis facility is configured to analyze at least one of the communication input or the output and generate a response. 14. The artificially intelligent communication system of claim 1, further comprising an output device for transmitting communication output generated by the artificially intelligent communication system, wherein the output device comprises at least one of a speaker, a monitor, an electromagnetic transmitter, or a computing device, and wherein the communication output comprises a signal.

15. The artificially intelligent communication system of claim 14, wherein the action comprises transmitting the communication output generated by the artificially intelligent communication system. 16. The artificially intelligent communication system of claim 15, wherein the communication output is generated in response to analysis of the communication input by the analysis facility.

17. The artificially intelligent communication system of claim 16, further comprising a storage unit, wherein the storage unit is configured to maintain a record of keywords associated with one or more communication inputs received by the input device or the communication output generated by the artificially intelligent communication system, wherein the input device receives a second communication input in response to the communication output generated by the artificially intelligent communication system and transmitted by the output device, wherein the second communication input comprising at least a second input word, wherein the analysis facility is configured to communicate with the string-pattern matching facility to search the hierarchical keyword database to find a second match between at least a portion of the second input word and one of the first database keyword or the second database keyword or the record of keywords, and in response to finding the second match, the analysis facility is configured to instruct the artificially intelligent communication system to perform a second action.

18. The artificially intelligent communication system of claim 1, further comprising an output device in communication with the processing device, wherein the artificially intelligent communication system is configured to generate an output and provide the output to the output device and wherein the input device receives the communication input in response to the output generated by the artificially intelligent communication system.

19. A method of communicating using an artificially intelligent computing system comprising: receiving, at the artificially intelligent computing system, communication input from a device, wherein the communication comprises at least a first input word and at least a second input word;

iteratively searching a hierarchical keyword database comprising a plurality of hierarchical level sets of database keywords to determine whether the first input word matches a first database keyword;

in response to determining that a first level set of the plurality of hierarchical level sets includes the first database keyword matching at least a portion of the first input word:

ceasing searching of the hierarchical keyword database; and

determining, via a pointer, a second level set of the plurality of hierarchical level sets of database keywords, wherein the second level set comprises a second database keyword;

iteratively searching the second level set to determine whether the second input word matches the second database keyword;

in response to determining that the second level set comprises the second database keyword matching at least a portion of the second input word, ceasing searching of the hierarchical keyword database; and performing an action in response to determining that the second database keyword matches at least the portion of the second input word.

20. The method of communicating using an artificially intelligent computing system of claim 19, wherein the performing the action comprising determining that the communication input is associated with a predetermined phrase.

21. The method of communicating using an artificially intelligent computing system of claim 19, wherein the performing the action comprises appending the first input word and the second input word to a storage unit, the method further comprising:

receiving a subsequent communication input from a device, wherein the subsequent communication input comprises at least a third input word;

iteratively searching the first level set and the second level set to determine whether the third input word matches any of database keywords within the first level set or the second level set;

in response to determining that the third input word does not match any one of the database keywords within the first level set or the second level set, searching the storage unit to determine whether the third input word matches the first input word or the second input word appended to the storage unit;

in response to determining that the third input word does not match the first input word or the second input word appended to the storage unit, searching additional storage unit keywords to determine whether the third input word matches an additional storage unit keyword; in response to determining that the third input word matches the additional storage unit keyword, determining that third input word is associated with the first input word and the second input word appended to the storage unit; and

performing a second action in response to the determining that the third input word matches the additional storage unit keyword.

Description:
ARTIFICIALLY INTELLIGENT COMMUNICATION THROUGH HIERARCHICAL

KEYWORD PARSING

CROSS-REFERENCE TO RELATED APPLICATION

[0001] This application claims priority to U.S. Provisional Patent Application No. 62/441,125, filed December 30, 2016, the entire contents of which are herein incorporated by reference in their entirety.

FIELD

[0002] The present disclosure relates to an artificially intelligent communication system that is capable of communicating with humans and other systems, and more particularly, to an artificially intelligent communication system that utilizes two-way communications to understand and respond conversationally to a wide variety of differing grammar and syntax in human-type communications by either humans or systems by hierarchically parsing keywords within those communications.

BACKGROUND

[0003] Human-type communication is structurally complex. Different human languages have different methods of expressing concepts, with verbs, nouns and other parts of speech occupying differing positions within sentences. Even within a single language there are frequently multiple methods of expressing a given concept. Making things even more complicated for speech communication in particular, some languages have words that sound the same as other words but have different meaning, the correct meaning being usually extracted by the listener's understanding of the context of the speech and/or the situation and interests of the speaker. A similar problem exists in written communication with words that are spelled the same but have different meanings.

[0004] For many decades, there have been attempts to make Artificial Intelligence (AI) understand human-type communications. Such understanding would be desirable for a number of applications, such as ease of access on personal computers, automated telephone systems and more generally for devices intended for personal interaction with humans. However, AI has for the most part been unable to provide the level of understanding needed for widespread adoption due in part to the complexity of human-type communications.

[0005] Originally, AI systems attempted rudimentary understanding of human communication by finding a keyword within that communication. For example, the famous ELIZA program from the 1960s worked by simply identifying a keyword within a sentence and substituting that keyword into another, pre-specified sentence. In cases where this tactic failed, the program gave standardized, ambiguous answers. This system functioned well considering how rudimentary it was, utilizing extremely limited computer memory and processing power. However, its very simple strategy made it unable to perform well with more complex human communications or with understanding replies in a conversation.

[0006] The approach commonly used today for AI systems to understand human communications, called deep learning, is to assign probabilities to the intent of the communication by using an enormous database of previously recorded and analyzed sentences. The system computes, based on the prevalence of similar communications in its database, probabilities for a given meaning. It then selects the meaning with the highest probability, provided that that probability exceeds some threshold. If the computed probability is below that threshold, then the system may decide that no meaning can be reliably assigned to the given communication, and may give a default response.

[0007] However, this design also suffers from a number of problems. One such problem is that the size of the database and the amount of computation necessary to assign probabilities to intended human communications' meanings is so large that it appears to be impracticable to be implemented on current desktop computer systems, and thus must be transmitted over the internet to a central processing facility. This limits usability to systems capable of internet connection, and thus also raises issues about privacy. A further problem is that conversations are not really feasible in such a design. Each interaction with this design inputs a human communication to the system, followed by a system response. A follow-on question is treated as a separate communication, without consideration of previous communications. A yet further problem is that any unusual syntax, grammar or phrasing of the communication may be difficult for this type of system to interpret. A yet further problem is that this design has no capability to perform human-type communications with other, similar designs.

[0008] It would be desirable to have an AI system that could understand human-type communications approximately independently of syntax, grammar or phrasing. It would also be desirable that it could be embodied within the memory and computational resources of a desktop computer, and that it not require internet connectivity. It would also be desirable that it could use previous communications to affect understanding and probability assignments of further communication, enabling it to hold conversations. It would further be desirable that the system be capable of human-type communications with other AI systems. SUMMARY

[0009] The following presents a simplified summary of various aspects of this disclosure in order to provide a basic understanding of such aspects. This summary is not an extensive overview of the disclosure. It is intended to neither identify key or critical elements of the disclosure, nor delineate any scope of the particular implementations of the disclosure or any scope of the claims. Its sole purpose is to present some concepts of the disclosure in a simplified form as a prelude to the more detailed description that is presented later.

[00010] In an aspect of the present disclosure, an artificially intelligent communication system includes a memory including a hierarchical keyword database. The hierarchical keyword database includes at least two sets, and each of the at least two sets includes one or more respective database keywords. The at least two sets include: a top-level set including at least a first database keyword; a lower level set including at least a second database keyword; and a set of pointers including at least one pointer pointing from the first database keyword to the lower level set. The artificially intelligent communication system further includes an input device configured to receive communication input including at least an input word. The artificially intelligent communication system also includes a processing device operatively coupled to the memory. The processing device includes a string-pattern matching facility and an analysis facility. The analysis facility is configured to communicate with the string-pattern matching facility to search the hierarchical keyword database to find a match between at least a portion of the input word and one of the first database keyword or the second database keyword. In response to finding the match, the analysis facility is configured to instruct the artificially intelligent communication system to perform an action.

[00011] In some implementations, each of the first database keyword and the second database keyword includes at least one of: a single word, a single symbol, a plurality of words, or a plurality of symbols. The communication input includes a string.

[00012] In some implementations, at least one of the top-level set or the lower level set includes one or more database keywords organized by: string length in ascending or descending order; string likelihood of occurrence within received communication inputs in ascending or descending order; or a combination of the string length and the string likelihood.

[00013] In some implementations, the input device includes at least one of a microphone, a keyboard, a second artificially intelligent communication system, or a computing device. The input device is configured to receive at least one of voice input data, text input data, or multimedia input data from a user. The input device is configured to receive input transmitted via wired or wireless or other signals. [00014] In some implementations, the string-pattern matching facility is configured to determine whether a first string matches a substring within a second string.

[00015] In some implementations, the analysis facility searches the top-level set for the match using the string-pattern matching facility. In an implementation, the match includes a first match, and the analysis facility is configured to follow the pointer pointing from the first database keyword to the lower level set and search within the lower level set for a second match using the string-pattern matching facility. In an implementation, the analysis facility recursively follows the pointer pointing from the first database keyword to the lower level set.

[00016] In some implementations, the match includes a first match and the input word includes a first input word. The analysis facility is configured to: in response to finding the first match, search the hierarchical keyword database to find a second match between a second input word within the communication input and one of the top-level set, the lower level set, or another set included within the at least two sets of the hierarchical keyword database. In response to finding the first match and the second match, determine whether the second match is a substring of the first match and in response to determining that second match is a substring of the first match, rejecting the second match. In an implementation, the analysis facility is configured to terminate the search in response to one of: searching a bottom level set of the at least two sets of the hierarchical keyword database, or determining that no matches are found at a level set of the at least two sets of the hierarchical keyword database.

[00017] In some implementations, the artificially intelligent communication system includes a storage unit. The storage unit is configured to maintain a record of keywords associated with one or more communication inputs received by the input device. The one or more communication inputs includes a previous communication input received by the input device prior to receiving the communication input. In an implementation, the artificially intelligent communication system includes an output device. The record includes an output generated by the artificially intelligent communication system. The output is used by the analysis facility in the search. In an implementation, the analysis facility is configured to analyze at least one of the communication input or the output and generate a response.

[00018] In some implementations, the artificially intelligent communication system includes an output device for transmitting communication output generated by the artificially intelligent communication system. The output device includes at least one of a speaker, a monitor, an electromagnetic transmitter, or a computing device, and wherein the communication output includes a signal. In an implementation, the action includes transmitting the communication output generated by the artificially intelligent communication system. In an implementation, the communication output is generated in response to analysis of the communication input by the analysis facility.

[00019] In an implementation, the artificially intelligent communication system further includes a storage unit. The storage unit is configured to maintain a record of keywords associated with one or more communication inputs received by the input device or the communication output generated by the artificially intelligent communication system. The input device receives a second communication input in response to the communication output generated by the artificially intelligent communication system and transmitted by the output device. The second communication input comprising at least a second input word. The analysis facility is configured to communicate with the string-pattern matching facility to search the hierarchical keyword database to find a second match between at least a portion of the second input word and one of the first database keyword or the second database keyword or the record of key words. In response to finding the second match, the analysis facility is configured to instruct the artificially intelligent communication system to perform a second action.

[00020] In some implementations, the artificially intelligent communication system includes an output device in communication with the processing device. The artificially intelligent communication system is configured to generate an output and provide the output to the output device. The input device receives the communication input in response to the output generated by the artificially intelligent communication system.

[00021] In some implementations, a method of communicating using an artificially intelligent computing system includes receiving, at the artificially intelligent computing system, communication input from a device. The communication includes at least a first input word and at least a second input word. The method further iteratively searches a hierarchical keyword database including a plurality of hierarchical level sets of database keywords to determine whether the first input word matches a first database keyword. In response to determining that a first level set of the plurality of hierarchical level sets includes the first database keyword matching at least a portion of the first input word: searching of the hierarchical keyword database is ceased; a second level set of the plurality of hierarchical level sets of database keywords is determined, via a pointer. The second level set includes a second database keyword. The method iteratively searches the second level set to determine whether the second input word matches the second database keyword. In response to determining that the second level set includes the second database keyword matching at least a portion of the second input word, searching of the hierarchical keyword database ceases; and an action is performed in response to determining that the second database keyword matches at least a portion of the second input word. [00022] In some implementations, the performing the action includes determining that the communication input is associated with a predetermined phrase.

[00023] In some implementations, the performing the action includes appending the first input word and the second input word to a storage unit. The method further includes: receiving a subsequent communication input from a device, where the subsequent communication input comprises at least a third input word; and iteratively searching the first level set and the second level set to determine whether the third input word matches any of database keywords within the first level set or the second level set. In response to determining that the third input word does not match any one of the database keywords within the first level set or the second level set, the storage unit is searched to determine whether the third input word matches the first input word or the second input word appended to the storage unit. In response to determining that the third input word does not match the first input word or the second input word appended to the storage unit, additional storage unit keywords are searched to determine whether the third input word matches an additional storage unit keyword. In response to determining that the third input word matches the additional storage unit keyword, it is determined that third input word is associated with the first input word and the second input word appended to the storage unit. A second action is performed in response to the determining that the third input word matches the additional storage unit keyword. BRIEF DESCRIPTION OF THE DRAWINGS

[00024] The accompanying drawing is included to provide a further understanding of the present disclosure, and is incorporated in and constitute a part of this specification. The drawing illustrates an implementation of the disclosure and, together with the description, serves to explain the principles of the disclosure. The present disclosure is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings, in which:

[00025] FIG. 1 is a flowchart of a related art system using a keyword database;

[00026] FIG. 2 illustrates an AI system showing interactive conversation with a human or a second AI system, in accordance with an implementation of the disclosure;

[00027] FIG. 3A illustrates an exemplary HKP database, in accordance with an implementation of the disclosure;

[00028] FIG. 3B illustrates three possible orderings of a set of database keywords, in accordance with an implementation of the disclosure;

[00029] FIG. 4A is a flowchart of an AI system depicting the steps taken by the system, and use of the HKP database upon receipt of a human-type communication input to assign a meaning to the human-type communication input, in accordance with an implementation of the disclosure; [00030] FIG. 4B is a flowchart of two methods of handling multiple keywords in a human-type communication input, in accordance with an implementation of the disclosure;

[00031] FIG. 5 illustrates a system architecture including an AI system depicting the additional use of a confidence level filter for specifically speech-type input communication, in accordance with an implementation of the disclosure;

[00032] FIG. 6 illustrates a system architecture including an AI system depicting the use of previous human-type communication input to assign the meaning of subsequent human-type communication input, in accordance with an implementation of the disclosure;

[00033] FIG. 7 is a flowchart of an AI system showing the use of previous speech-type input to change the settings of the confidence level filter, thus enabling better responses to subsequent speech input during conversations, in accordance with an implementation of the disclosure;

[00034] FIG. 8 is a flowchart of an AI system showing a communication initiated by the AI system, and its use of the HKP database upon receipt of a human-type communication response to assign a meaning to the human-type communication response, in accordance with an implementation of the disclosure;

[00035] FIG. 9 is a flow diagram of a method of communicating using an artificially intelligent computing system, in accordance with an implementation of the disclosure; and

[00036] FIG. 10 illustrates a block diagram of an illustrative computing device operating in accordance with an implementation of the disclosure.

DETAILED DESCRIPTION

[00037] Reference will now be made in detail to the implementations of the disclosure, an example of which is illustrated in the accompanying drawing. Wherever possible, the same reference numbers are used in the drawing and the description to refer to the same or like parts.

[00038] Aspects and implementations of the present disclosure are directed to an artificially intelligent communication system that includes a hierarchical keyword database which includes multiple level sets of keywords. Keywords within the hierarchical keyword database are to be matched to input words contained within input communications (such as a user's speech or an input related to speech). If a match is found, the artificially intelligent communication system receives instructions to perform an action.

[00039] The present disclosure provides an AI system that assigns a meaning to human-type communications approximately independently of the communication's syntax, grammar or phrasing. In particular, the AI system may extract the intended meaning from a received communication even if the communication may contain statements that are non-standard in their grammatical structure, contain non-standard syntax, are phrased in an unusual manner, refer to previous communications, etc. In one implementation, the AI system may be designed as a hierarchical keyword parsing (HKP) system, and the terms "AI system", "AI communication system", "artificially intelligent computing system" "HKP system", and "HKP AI" may be used interchangeably herein to refer to an artificial intelligence system and/or an artificial intelligence system that is designed as a hierarchical keyword parsing system. An AI system searches for certain top-level database keywords that may match input words in a human-type communication input. After finding a top-level database keyword that matches an input word, the AI system drops down within its hierarchy to find a next level of possible keywords associated with the top-level database keyword that was found, continuing recursively until either the bottom level of the hierarchy has been searched or no further keywords are found in the human-type communication input at a particular level. The AI system may then assign a meaning to the communication from the found keywords. Assigning a meaning refers to an instruction for the AI system to carry out. For example, if the communication is related to appending an item to a list, then an assigned meaning to the communication may be to instruct the AI system to append the item to the list.

[00040] The AI system may be capable of performing two-way conversations, as the system may explicitly reference concepts related to the previous communication input or inputs and output or outputs. In particular, the AI system may retain records of previous communication inputs and/or outputs and/or keywords associated thereof, and include these in its attempt to assign a meaning to the current communication. The AI system may be implemented using relatively small memory and computational resources, enabling operation on a local computer, and thus, can be made operable without internet connection. The AI system may also hold human-type communications with other AI systems.

[00041] The AI system may include hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions run on a processing device to perform hardware simulation), or a combination thereof.

[00042] The AI system includes a string-pattern-matching (SPM) facility, a database of key words arranged hierarchically, and a system of pointers from certain keywords on a given level to sets of other keywords on the next lower level. Keywords as used herein may refer either to single words or to one- or more word- phrases. A phrase may include one or more words that are standalone or connect together to form a clause or complete or partial sentence. Keywords may or may not have pointers associated with them. The top-level database keywords may be concerned with approximately non-overlapping subject matter, but may include multiple words or phrases that refer to the same subject matter. Non-overlapping subject matter refers to fields of human discourse that may be commonly primarily disparate, as, for example, the subject matter of food is primarily disjoint from the subject matter of clothing. [00043] The SPM facility may be implemented as a simple sequential character-matching routine, in which a match is detected when the partem being searched for exactly matches a substring, or possibly the entire string, of the input being searched. More sophisticated SPM facilities may take into account additional factors such as pluralization or varying type and numbers of spaces within either the partem being searched for or the input.

[00044] At each level, and in each set, the database keywords may be ordered in ascending or descending order, for example, the order may be set by the number of characters in each keyword, from largest to smallest. This ensures that phrases are preferentially detected over individual words that may be contained within the phrase, and that longer phrases are preferentially detected over sub-phrases occurring within the phrase. The order may also be set by likelihood of appearance within a communication. The order may also be set by a combination of keyword length and likelihood of appearance, in which database keywords are separated into two or more categories of likelihood, with the more likely categories appearing before the less likely ones, and then within each category are ordered by length.

[00045] In operation, a human-type communication input is received by the AI system. The human-type communication input might be speech or text from a human, or speech or text, or wired or wireless electromagnetic communication from another AI system. In the case of speech input, an optional filter may be applied, permitting the AI system to continue on to the next stage of processing only if the confidence level of the word pattern of the speech input is sufficiently high. After receipt of the human-type communication, the SPM facility of the AI system searches the word partem of the communication input for the occurrence of any word or phrase contained in the top level of the keyword database in the order set by the database, if any. If the SPM facility does not find any matches, the communication input is rejected as not being within the scope of understanding of the AI system. The AI system may for example respond to rejected communication input by producing an output, or it may ignore the communication input.

[00046] On the other hand, if the SPM facility does find a match, the AI system then looks in the set of database keywords in the next lower level of the hierarchy pointed to by the pointer from the found top-level database keyword. This hierarchical pattern matching normally continues in this manner until either the bottom level of the particular database keyword's hierarchy has been searched or no further database keywords are found in the human-type communication input, at which point the meaning of the communication input is assigned. The AI system may then respond appropriately to the communication input, or may not. If at a given level the SPM facility does not find any matches, the communication input may be rejected as not being within the scope of understanding of the AI, or it may attempt to respond using the partial information found. The AI may for example respond to rejected communication input by producing an output, or it may not. [00047] In an implementation, the AI system may also search the complete set of database keywords in a particular set of key words in the database in order to determine if multiple keywords are present in the human-type communication input. In such a search, in order to prevent substrings of already identified database keywords matched to input words within the human-type communication input from being identified as further database keywords, the already identified database keywords (matched to the input words) may be removed or otherwise ignored from the human-type communication input the AI system is working with, or else the subsequently identified database keywords may be compared with the already identified database keywords using the SPM facility to verify that the subsequently identified database keywords are not substrings of the already identified database keywords, and removing or otherwise ignoring them if they are.

[00048] In such a system, the occurrence of a continuing conversation may for example be input into the AI system by close temporal proximity of subsequent human-type communication input to the AI system's response, if any. Additionally, the AI system may have stored the database keywords associated with (or otherwise matched to) the input words contained within previous communication input or inputs, and thus be able to assign the meaning of various potentially ambiguous constructs. In addition, for speech input the confidence level required by the SPM to recognize the subsequent speech input may be lowered, provided a database keyword belonging to the same hierarchy as the previous top-level database keyword appears also in the subsequent speech input.

[00049] The AI system may also function similarly when the system itself initiates a communication, either with a human or with another AI system. In this case, the AI system- provided initial communication may have its own database keywords and pointers associated with it by the AI system, and then it may use those to understand subsequent responses of the human or the other AI system being communicated with.

[00050] Various aspects of the above referenced methods and systems are described in detail herein below by way of examples, rather than by way of limitation.

[00051] FIG. 1 is a flowchart of a related art system 100 using a keyword database 110. As depicted in FIG. 1, the keyword database in this example includes the following four words: "brother" 111, "sister" 112, "mother" 113 and "father" 114. In this example, a human communication input 130 includes the following eight words: "I" 131, "was" 132, "always" 133, "angry" 134, "with" 135, "my" 136 and "mother" 137. The human communication input 130 is input of human speech. For example, the human communication input 130 may be an audio input of verbal speech spoken by a user into a microphone, etc. [00052] Upon receipt of the human communication input 130 (via a microphone or by other means), the related art system 100 uses an SPM facility to check the human communication input 130 for the presence of any of the words in the keyword database 110. In this example, the related art system 100 performs a loop, first using its SPM facility to check whether the database keyword "brother" 111 is present in the human communication input 130. In response to determining that the database keyword "brother" 111 is not present, the related art system 100 next uses its SPM facility to check whether the next database keyword "sister" 112 is present in the human communication input 130. In response to determining that the database keyword "sister" 112 is also not present, the related art system 100 next uses its SPM facility to check whether the next database keyword "mother" 113 is present in the human communication input 130.

[00053] In response to determining that the database keyword "mother" 113 is present, the related art system 100 stops its loop. The related art system 100 then substitutes the found database keyword "mother" 113 into one of a small set of possible responses 140. The selection of a possible response 140 may be made, for example, randomly. In this example, the set of possible responses 140 are "Tell me about your *" 141 and "Are you angry with your * now?" 142. The "*" indicates the position of the substitution to be made. In this particular example, the related art system 100 randomly selects the second response 142, substitutes "mother" 113 for "*", and produces the output 150 "Are you angry with your mother now?" This output 150 is sufficiently close in meaning to the human communication input 130 to give the impression of actual communication taking place. Such a simple system may frequently fail.

[00054] FIG. 2 illustrates an AI system 200 showing interactive conversation with a human 210 or a second AI system 220. As depicted in FIG. 2, a conversation 230 may be initiated by either the human 210 or the second AI system 220. In this example, the human 210 or the second AI system 220 transmits to the AI system 200 the communication "Are bananas on my shopping list?" 231. The human 210 or the second AI system 220 may transmit communication as signals via wired or wireless electromagnetic means and/or device. For example, the communication may be transmitted via a wired bus, or wirelessly, by a microphone, a computing device, a mobile device, etc. The bus may be capable of carrying data signals transmitted using any method via any protocol and the communication carried via a wired bus, or wirelessly, may be transmitted over the Internet.

[00055] According to implementations of the disclosure, the communication may be audio communication, video communication, textual communication, multimedia communication, or a combination thereof. For example, a user may speak into a microphone and thus, audio communication may be transmitted to the AI system 200. The AI system 200 may also convert audio and/or video to text. In other implementations, a computing device or mobile device may transmit communication to the AI system 200 using short message service (SMS), multimedia messaging service (MMS), and/or other protocols.

[00056] In another implementation, the communication may be in a form of a video, a graphical implementation, or other multimedia. For example, human 210 may be hungry and transmit a picture of chocolate cake to the AI system 200 or another system (such as the second AI system 220 or another system, not depicted) that may identify the name of the cake as "black forest cake." The other system may then transmit the name of the cake ("black forest cake") via text or another form to AI system 200. The AI system 200 may then perform an appropriate action. For example, the AI system 200 may determine that the user wishes to append "black forest cake" to his/her shopping list and, after receipt of the text, etc., identifying the cake, the AI system 200 may add "black forest cake" to the user's shopping list.

[00057] In response to the above communication "Are bananas on my shopping list?" 231, the AI system 200 may communicate the following back to either the human 210 or the second AI system 220: "No. Would you like to add them?" 232. In response, the human 210 or the second AI system 220 may transmit to the AI system 200 the communication "Yes, please." 233. In response, the AI system 200 performs an appropriate action (i.e., the AI system 200 adds bananas to a shopping list), and concludes the conversation 230 with transmitting to the human 210 or the second AI system 220 the communication "OK, I added bananas to the shopping list." 234. The AI system 200 may append bananas to a shopping list by creating a new item to add to the shopping list.

[00058] Examples of actions that can be performed by the AI system 200 include appending a word or phrase to a database, removing a word or phrase from the database, converting text to speech and outputting audio and/or video based on the speech, transmitting information regarding a word or phrase to a device, such as an external device, a printer, a display screen, etc.

[00059] The shopping list may be structured in lexicographic, categorical or other structures. The shopping list may be a database stored in memory and the AI system 200 may have read and/or write access to the database. Details regarding the database are described herein below.

[00060] FIG. 3A illustrates an exemplary HKP database 300. The HKP database is also referred to herein as the hierarchical keyword database. The HKP database 300 is depicted as a hierarchical keyword database that includes database keywords sorted by levels. The HKP database 300 may be a repository or storage that stores database keywords. Although the term database is used, in other implementations, the database keywords may be included or otherwise stored in one or more memory device(s) such as non-volatile memory device(s). Examples of non-volatile memory devices include one or more magnetic disk storage devices such as internal hard disks and removable disks, magneto-optical disk storage devices, optical disk storage devices, flash memory devices, semiconductor memory devices, such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), compact disc readonly memory (CD-ROM), digital versatile disc read-only memory (DVD-ROM) or Blu-ray disks, etc. The HKP database 300 includes a set 310 of top-level database keywords, a set 330 of second level database keywords, a set 340 of second level database keywords, and set 350 of third level database keywords. As depicted in FIG. 3A, the set 310 of top-level database keywords may determine the fields of the subject matter over which the AI is enabled to assign a meaning. The database keywords at both the top-level and at other levels may be either individual words or multi-word phrases. In the depicted HKP database 300, the set 310 of top-level database keywords contains "shopping list" 31 1, "remind me" 312, "remember" 313 and "undo" 314. The top-level database keyword "remember" 313 and "undo" 314 are single words, while the top-level database keywords "shopping list" 311 and "remind me" 312 are multi-word phrases. The database keywords, input words in the communication input, and/or phrases are also referred to as strings.

[00061] In an implementation, the set 310 of top-level database keywords may be ordered by the number of characters contained in each database keyword, from largest to smallest. In the depicted implementation of the HKP database 300, the top-level database keyword "shopping list" 31 1 has the largest number of characters of any of the top-level database keywords of the set 310 of top- level database keywords (i.e., thirteen) and thus, "shopping list" 31 1 is listed first in the set 310 of top-level database keywords. The top-level database keyword "remind me" 312 has the next largest number of characters (i.e., nine) and thus, "remind me" 311 is listed second in the set 310 of top-level database keywords. The top-level database keyword "remember" 313 has eight characters and is listed next. Finally, the top-level database keyword "undo" 314 has four characters and is thus listed last in the set 310 of top-level database keywords.

[00062] In an implementation if two top-level database keywords have the same number of characters, their order within the set 310 of top-level database keywords may be lexicographic. Other ordering schemes may be used.

[00063] Each top-level database keyword in the set 310 of top-level database keywords may typically, but not necessarily, have associated to it a set of second level keywords pointed to by a pointer system. Each set of second level keywords, as well as sets of keywords at lower levels, are also preferably length-ordered from largest to smallest. In the case of the HKP database 300, the top-level database keyword "shopping list" 311 has a pointer 321 to the set 330 of second level keywords "add" 331 and "remove" 332. These are again ordered by length, with "remove" 332 arranged on top, higher than "add" 331. Similarly, the top-level database keyword "remind me" 312 has a pointer 323 to the set 340 of second level keywords "doctor's appointment" 341, "dishwasher" 342 and "laundry" 343. However, the top-level database keyword "undo" 314 has no pointer, as it has no second level keywords.

[00064] The top-level database keyword "remember" 313 has a pointer 322 to the same set 340 of second level keywords as does the top-level database keyword "remind me" 312. Alternatively (not depicted), the top-level database keyword "remember" 313 may use the same pointer 323 to the set 340 of second level keywords as does the top-level database keyword "remind me" 312.

[00065] The second level keyword "add" 331 has a pointer 324 to the set 350 of third level keywords "apple" 351, "banana" 352, "banana pie" 353 and "Father's Day Card" 354. These keywords are hierarchically ordered by decreasing length, with "Father's Day Card" 354 first, "banana pie" 353 second, "banana" 352 third and "apple" 351 last. In the depicted implementation, the second level keyword "remove" 332 also has a pointer 325 to the same set 350 of third level keywords, or alternatively (not depicted), it may use the same pointer 324 that the second level keyword "add" 331 used.

[00066] FIG. 3B illustrates three possible orderings of a set of database keywords. As depicted in FIG. 3B, the database keywords may be in a set 360 ordered by length, with "Father's Day Card" 354 having the most characters and thus, listed first, "banana pie" 353 second, "banana" 352 third, and "apple" 351 with the fewest characters, listed last. Alternatively, the order of the database keywords my also indicate likeliness. The database keywords may be in a set 370, with "banana" 352 being most likely and thus, listed first, "apple" 351 second, "banana pie" 353 third, and "Father's Day Card" 354 being least likely and thus, listed last.

[00067] As a further alternative, the database keywords may be in a set 380, with the database keywords "banana" 352 and "apple" 351 being listed in a subset 381 as being most likely, and the database keywords "banana pie" 353 and "Father's Day Card" 354 being in a subset 382 as being less likely. In the set 380, the more likely subset 381 comes before the less likely subset 382; and within the subset 381, "banana" 352 having more characters comes before "apple" 351, and within the subset 382, "Father's Day Card" 354 having more characters comes before "banana pie" 353. In an implementation, likelihood may correspond to information on how often a particular item appears in human communication, either in general or within the subject matter domain. Likelihood may also correspond to information on how often the AI system has encountered the particular item in previous communication inputs. The AI system may have the ability to restructure the database keyword set in response to its collection of statistical data on likelihood of particular communications. In an implementation, the AI system may update the order of database keywords if likelihood changes. For example, if the likelihood of a particular word such as "pomegranate" increases (e.g., the AI system receives additional communications inputs that contain the word pomegranate and this word appears more often than it did in the past), this word may be reordered in a database keyword set to appear more likely than other words within the set.

[00068] FIG. 4A is a flowchart 400 of an AI system depicting the steps taken by the system, and use of the HKP database 300 upon receipt of a human-type communication input 410 to assign a meaning to the human-type communication input 410. As depicted in FIG. 4A, the human-type communication input 410 may originate either from a human 401 or from a second AI system 402, and may be spoken, typed, communicated by wired or wireless electromagnetic means or other means. In another implementation, the human-type communication input 410 may be in the form of audio speech, text, video, multimedia, etc., and provided to an input device 403, which may provide it to the AI system or the second AI system. The AI system may receive the communication input 410 from the input device 403. In an optional implementation, if the communication input 410 is to be formatted, the AI system (or another system) may format the communication input to formatted text. The AI system may then parse the communication input 410 (or formatted text) to extract input words. In an implementation, the AI system may parse the communication input 410 to extract one or more input words. Parsing refers to analysis of individual words contained within the communication input. In another implementation, the parsing and extraction may be optional.

[00069] The human-type communication input 410 may include one or more input words. In the depicted implementation, the human communication input 410 includes the following six words in order: "add" 421, "bananas" 422, "to" 423, "my" 424, "shopping" 425, and "list" 426. These words are also referred to as input words, as they are input into the input device 403 and/or input to the AI system. Upon receipt of the human-type communication 410, the AI system proceeds through a series of program steps 420 including loop 430, loop 440, and loop 450.

[00070] In an implementation, the series of program steps 420 may be performed via an analysis facility. The analysis facility may communicate with the SPM facility to search the hierarchical keyword database to find matches between input word and database keywords.

[00071] The first step is a loop 430. In the loop 430, the AI system uses its SPM facility to loop through the set 310 of top-level database keywords in the HKP database 300 to determine if any of the top-level database keywords are present in (or match) the input words in the human-type communication input 410. In an implementation, an exact match does not need to be made. In an implementation, the database keyword may be a substring contained within the input communication string, but not vice versa. For example, if an input word is "bananas" and the database keyword is "banana," a partial match between the database keyword and the input word is made. In an implementation, an input word may be a string (e.g., "bananas") and the database keyword may include a substring (e.g., "banana"). As described above, the database keywords, input words, and/or phrases are also referred to as strings and strings may have associated substrings (e.g., see "banana" example above). In an implementation, the SPM facility loops through the set 310 of top-level database keywords in the HKP database 300 to first identify input words and then determine if the input words in the human-type communication 410 are present (or match) any of the top-level database keywords. The SPM facility may loop through, or iteratively search, each database keyword against each input word in the human-type communication input 410 in the order it appears or in another order. In an implementation, the SPM facility may loop through, or iteratively search, each database keyword against each identified input keyword. In the depicted example, the SPM facility may begin with the top-level database keyword "shopping list"; having determined that "shopping list" is indeed present in the input communication, it would terminate this loop. Had the top-level database keyword not been "shopping list", but rather another database keyword such as "remind me", the SPM facility would have determined that the database keyword was not present in the input communication, and would then have looped and examined the next database keyword in the set.

[00072] Thus, the AI system first uses its SPM facility to determine whether the top-level database keyword "shopping list" 311 appears as an input word in the human-type communication input 410. As depicted, since in the human-type communication input 410 the input word "shopping" 425 is followed by the input word "list" 426, the SPM facility determines that the top- level database keyword "shopping list" 311 does appear, the AI system exits the loop 430 without checking the other top-level database keywords in the set 310 of top-level database keywords. The AI system then follows the pointer 321 associated with the top-level database keyword "shopping list" 311 to the set 330 of second level keywords. In an implementation, the analysis facility, in communication with the SPM, may recursively follow pointers pointing from a first database keyword (at one set of level keywords) to a second, lower level (where the second, lower level has a second set of database keywords). In an implementation, the first database keyword may point to an entire second set of database keywords. In other implementations, the first database keyword may point to a specific keyword in the second set of database keywords.

[00073] The next (or second) step in the series of program steps 420 is the loop 440. In loop 440, the AI system uses its SPM facility to loop through the set 330 of second level keywords pointed to by the pointer 321 to determine whether any of the set 330 of second level keywords are present in the human-type communication input 410. Thus first, the AI system uses its SPM facility to check whether the second level keyword "remove" 332 appears in the human-type communication input 410. As depicted, since it does not appear, the AI system continues to use its SPM facility to check whether the second level keyword "add" 331 appears in the human-type communication input 410. Since it does appear, the AI system exits the loop 440. The AI system then follows the pointer 324 to the set 350 of third level keywords.

[00074] The next (or third) step in the series of program steps 420 is the loop 450. In loop 450, the AI system uses its SPM facility to loop through the set 350 of third level keywords to determine whether any of the set 350 of third level keywords are present in the human-type communication input 410. Thus first, the AI system uses its SPM facility to check whether the database keyword "father's day card" 351 appears in the human-type communication input 410. Since it does not appear, the AI system next uses its SPM facility to check whether the third level database keyword "banana pie" 352 appears in the human-type communication input 410. Although "bananas" 422 does appear in the human-type communication input 410, "banana pie" 352 does not appear, so the AI system next uses its SPM facility to check whether the next third level database keyword "banana" 353 appears in the human-type communication input 410. Although the actual word in the set 350 of third level database keywords is "banana" 353 not "bananas" 422, it does in fact appear as a substring within the human-type communication input 410. A substring is a string that is a subset of another string, including the alphanumerical ordering of the individual components of the string. Since it does appear, the AI system exits the loop 450 and also exits the series of program steps 420. Since the bottom level of the HKP database 300 is reached (i.e., no additional steps/loops exist in program steps 420), the AI system assigns a meaning/ends. Since the path through the HKP database 300 was "shopping list" 311, "add" 331, "banana" 353, the AI may determine or conclude that the human-type communication input 410 was equivalent to or is associated with the phrase 460 "banana add shopping list". In an implementation, the phrase may be a predetermined phrase that may be stored in the HKP database 300 or elsewhere. In an implementation, the predetermined phrase may include one or more words including one or more verbs (e.g., "add"), for example verbs that instruct the AI what action it should take. The predetermined phrase may include one or more words that are standalone or connect together to form a clause or complete or partial sentence. In another implementation, the AI system may match the human-type communication input 410 to the phrase based on the reverse order of depth of the keywords found within the human-type communication input 410. Reverse order of depth may refer to the levels at which the database keywords appear in the HKP database. In an implementation, the order in which input words are received may or may not matter. For example, the order in which input words are received may not matter when matching between the input words and database keywords is performed because the grammar and/or syntax of the communication input may not be utilized in the matching.

[00075] In an implementation, the SPM facility is configured to determine whether a first string (e.g., "banana") matches a substring within a second string (e.g., "bananas"). [00076] In an implementation, each of loop 430, 440, and/or 450 may have an associated exit condition. An exit condition allows the SPM facility to exit a loop. For example, if a match between an input word and a database keyword is not found after searching the entire set of database keywords, the SPM facility may exit the loop.

[00077] In an implementation, each of loop 430, 440, and/or 450 may have its own individually associated SPM facility or one or more or all use the same SPM facility. In an implementation, each level of the HKP database may be associated with a respective loop. Suppose that HKP database has four levels and each level has a respective loop. The AI system would recognize, based on the number of levels that up to four iterations (one for each loop) may need to be performed. When the bottom- most loop is reached, the AI system may exit the loops. In the depicted implementation in the figures, although three levels of the HKP database are described, in other implementations, the HKP database may include fewer or more than three levels. In an implementation, the number of loops described and depicted is for exemplary purposes, and more or less loops than described and depicted may be used.

[00078] In an implementation, phrase 460 is created by the AI system, based on the feedback from the SPM facility. For example, the AI system may receive the following input words from the input communication in order "add bananas to my shopping list". The AI system may then reconstruct the input words in reverse order of depth, or the reverse order from which they were received, and reconstruct the phrase "banana add shopping list" 460. Even though phrase 460 does not exactly match the human-type communication input 410 (i.e., phrase 460 is missing the preposition "to", the pronoun "my", has singular "banana" rather than plural "bananas" 422, and is in a different order), it is sufficiently correct that the AI system can use it to perform the requested action. In this context, the term "sufficiently correct" means that the action performed by the AI system in response to its extracted meaning matched the intent of the input communication. For example, the AI system could now "add" the word "banana" to a "shopping list" it maintains, and it could respond back that it has in fact added "banana" to a shopping list that it maintains. In an implementation, the AI system may determine that a phrase is sufficiently correct based on the recovered meaning of the input communication containing sufficient information for the AI system to perform a uniquely defined operation or action in response to the input communication.

[00079] FIG. 4B is a flowchart of two methods of handling multiple keywords in a human-type communication input 470. As depicted in FIG. 4B, the human-type communication input 470 includes the following input words: "Add bananas and apples to my shopping list". In one method 480, after the AI system has determined that the input word "bananas" 471 is present in the human- type communication input 470, it may remove or otherwise ignore the word "bananas" 471 from the human-type communication input 470, leaving the phrase 481 "Add and apples to my shopping list" for further analysis. The AI system will then determine that the input word "apples" 472 is also present in the human-type communication input 470.

[00080] In a second method 490, after the AI system has determined that the input word "bananas" 471 is present in the human-type communication input 470, it may continue searching the human-type communication input 470 for further matches to database keywords. The AI system will then determine that the word "apples" 472 is also present in the human-type communication input 470. After such a determination is made, it will then compare the second database keyword "apples" 472 with the first database keyword "bananas" 471. If the second database keyword "apples" 472 is a substring of the first database keyword "bananas" 471, it will be deleted; if the second database keyword "apples" 472 is not a substring of the first database keyword "bananas" 471, it will then determine that the input word "apples" 472 is also present in the human-type communication input 470.

[00081] FIG. 5 is a flowchart 500 of an AI system 550 depicting the additional use of a confidence level filter 551 for specifically speech-type input communication 510. As depicted in FIG. 5, prior to a specifically speech-type input communication 510 being presented to the AI system 550, the raw sound input 520 to a microphone 530 is analyzed with speech-to-text (STT) software 540.

Examples of STT software 540 utilize short-term Fourier analysis, etc., and convert the raw sound input to a human-type communication input 410. However, due to noise, imperfections in the microphone 530, finite sampling rates, etc., the human-type communication input 410 may not be the same as the specifically speech-type input communication 510. The microphone 530 is shown for exemplary purposes only and other input device(s) may be used.

[00082] For this reason, STT software 540 may assign a probability 541 to the human-type communication input 410. The probability 541 may be based on a measure of how closely the human-type communication input 410 matches the expected output of the microphone 530 under the assumption that the specifically speech-type input communication 510 was in fact the specific specifically speech-type input communication 510. In an implementation, this probability 541 may be a number ranging from zero to one, with numbers in excess of for example 0.9 signifying high confidence that the human communication input 410 matches the specific specifically speech-type input communication 510, and with numbers below for example 0.3 - 0.4 signifying low confidence that the human communication input 410 matches the specific specifically speech- type input communication 510.

[00083] In the flowchart 500, the input to the AI system 550, in addition to the human communication input 410, also includes the probability 541 generated by the STT software 540. Before the human communication input 410 is transmitted to the rest of the AI system, it passes through a filter 551 based on the probability 541. If the probability 541 is sufficiently high, the human communication input 410 is sent on to the rest of the AI system 420. However, if the probability 541 is too low, the human communication input 410 is rejected as probably not adequately representing the raw sound input 520. In an implementation, the range of the probability 541 may be set by a user or predetermined. For example, the communication may be accepted if the probability 541 is greater than 0.9, and it may be rejected if the probability 541 is less than 0.4. After rejection, the AI system may, for example, not respond at all, or may respond back that it didn't understand what was said.

[00084] In an implementation, the confidence level filter 551 may have three ranges, high 561, low 562 and intermediate 563. Other implementations may have more or fewer ranges. In an implementation, in the highest range 561, the confidence level filter 551 would pass on the human communication input 410 to the rest of the AI system 420. In the lowest range 562, the confidence level filter 551 would reject the human communication input 410 as not being relevant to its domain of understanding, and have no response. In an intermediate range 563 between the top of the lowest range 562 and the bottom of the highest range 561, the confidence level filter 551 would pass a special token 570 to the rest of the AI system 420, signifying that the raw sound input 520 may be relevant to the domain of understanding of the AI system, but that the human communication input 410 is unreliable. In this case, the AI system might respond by asking the speaker to repeat the speech.

[00085] FIG. 6 illustrates a system architecture 600 including an AI system 420 showing the use of previous human-type communication input 410 to assign the meaning of subsequent human- type communication input 610. In an implementation, the meaning of subsequent human-type communication input, when taken in isolation, might be ambiguous. Therefore, the AI system 420 considers both the previous human-type communication input 410 and subsequent human-type communication input 610 and in fact assigns the meaning of the subsequent human-type communication input 610 in view of the previous human-type communication input 410. As depicted in FIG. 6, the previous human communication 410 consisted of the six words "add" 421, "bananas" 422, "to" 423, "my" 424, "shopping" 425 and "list" 426, and was interpreted by the AI system 420 to mean the phrase 460 "banana add shopping list", and subsequent upon which it added the input word "banana" 353 to a shopping list it maintains. Subsequent to this, it also added the database keywords "shopping list" 311, "add" 331 and "banana" 353, along with their respective pointers 321 and 324, to a temporary storage unit 620. Temporary storage unit 620 may be a buffer or a location in a memory device. The memory device may include high-speed random access memory, such as dynamic random access memory (DRAM), static random access memory (SRAM), double data rate synchronous dynamic random access memory (DDR RAM), or other random access solid state memory devices, and may include non-volatile memory, such as one or more magnetic disk storage devices such as internal hard disks and removable disks, magneto- optical disk storage devices, optical disk storage devices, flash memory devices, semiconductor memory devices, such as EPROM, EEPROM, CD-ROM, DVD-ROM, Blu-ray disks, or other non-volatile solid state storage devices.

[00086] The subsequent human-type communication input 610 includes the two input words "apples" 61 1 and "also" 612. When provided to a system without the ability to use previous input to assign the meaning of current input, such a communication may be rendered meaningless, and may not generate a response. For example, when taken in isolation without considering previous input(s), the phrase "apples also" may be rendered meaningless to a system. In the depicted AI system 420, the AI system first uses its SPM facility to go through a loop 430 to determine whether any of the set 310 of top-level database keywords appear in the subsequent human-type communication input 610. It first checks whether the top-level database keyword "shopping list" 31 1 appears. Since it does not, it goes through all the others, "remind me" 312, "remember" 313 and "undo" 314, none of which are found.

[00087] Since none of the set 310 of top-level database keywords were found in the subsequent human-type communication input 610, the AI system now checks in a temporary storage unit 620 concerning the contents of the previous human communication 410. It goes through a loop 630 and determines first that the contents of the temporary storage unit 620 contains the top-level database keyword "shopping list" 31 1 , and it uses its SPM facility to determine that this does not appear in the subsequent human-type communication input 610. It also determines that the other top-level database keywords do not appear in the subsequent human-type communication input 610. Next, it determines that the second level database keyword "add" 331 also does not appear in the subsequent human-type communication input 610, nor does the other database keyword pointed to by the pointer 321, "remove" 332.

[00088] The AI system now moves to the third level database keyword in its temporary storage unit 620, "banana" 352. It uses its SPM facility to determine that this does not appear in the subsequent human-type communication 620. Next, it checks the other third level database keywords pointed to by the pointer 324. Here, the AI system finds a match, since the database keyword "apple" 354 is present in the subsequent human-type communication 620, as a substring of "apples" 611. Since a database keyword found in the subsequent human-type communication 620 matches with one of the elements of a set 350 of third level database keywords pointed to by a pointer 324 saved from the previous human-type communication 410, the AI system assigns a meaning that the intention of the subsequent human-type communication was "apple" 354, and more particularly, that the chain of database keywords and pointers down to "apple" 354 was the intent. Hence, the AI system assigns the meaning that the subsequent human-type communication 620 to mean the phrase 640 "apple add shopping list", and adds the word "apple" 354 to a shopping list it maintains. The AI system also adds (not shown) the database keywords "shopping list" 31 1, "add" 331 and "apple" 354, along with their respective pointers, 321 and 324, to a temporary storage unit 620. The temporary storage unit 620 may either overwrite the previous input with the new or retain both. If both are retained, the assigned meanings may be separated by the order in which the input communications were received.

[00089] FIG. 7 is a flowchart 700 of an AI system 750 showing the use of previous speech-type input 410 to change the settings of the confidence level filter 551 , thus enabling better responses to subsequent speech input during conversations.

[00090] As depicted in FIG. 7, a previous speech-type input 410 was determined to be the phrase 460 "banana add shopping list". After the AI system 750 had assigned this meaning, it added the word "banana" 352 to a shopping list it maintains. The AI system 750 also added the database keywords "shopping list" 31 1, "add" 331 and "banana" 352, along with their respective pointers, 321 and 324, to a temporary storage unit 620.

[00091] The subsequent speech-type input communication input 610 includes the two input words "apples" 611 and "also" 612. Suppose that the confidence level filter 551 was set in a default mode, and the human-type communication input 610 was within the lowest range 562 or intermediate range 563 of the confidence level filter 551. The confidence level filter 551 may reject the human-type communication input 610 as irrelevant or signify to the AI system 750 that the human-type communication input 610 was unreliable, respectively.

[00092] However, in the depicted implementation, the AI system 750 would determine that the previous speech-type input 410 contained the database keyword "banana" 352, and that the database keyword "banana" 352 was one of the elements of a set 350 (not shown) of third level database keywords pointed to by a pointer 324 saved from the previous speech-type input communication in a temporary storage unit 620. In an implementation, the AI system 750 would now use this information to change the confidence levels of the confidence level filter 551. In particular, it would lower the bottom level of the highest range 561 of the confidence level filter 551, which in this implementation is also the top level of the intermediate range 563 of the confidence level filter 551. It would further also lower the bottom level of the intermediate range 563 of the confidence level filter 551, which in this implementation is also the top level of the lowest range 562 of the confidence level filter 551.

[00093] With these changes, the AI system 750 is now more likely to calculate that the subsequent speech-type input communication input 610 was correct than if the confidence levels had not been changed. It is also more likely to conclude that the subsequent speech-type input communication input 610 may be relevant to the domain of understanding of the AI system 750 than it would be to simply reject the subsequent speech-type input communication input 610 as not being relevant to the domain of understanding of the AI system 750. The AI system 750 has thus used information concerning previous speech-type input communication input 410 to enhance its probability of assigning a meaning to the subsequent speech-type input communication input 610.

[00094] FIG. 8 is a flowchart 800 of an AI system 850 showing a communication 810 initiated by the AI system, and its use of the HKP database 300 upon receipt of a human-type communication response 820 to assign a meaning to the human-type communication response 820. As depicted in FIG. 8, the AI system 850 initiates a communication 810. In an implementation, the communication may be part of a one or two-way conversation with or correspondence between the AI system 850 and the input device. In an implementation, the AI system may be connected to a clock and a program that alerts the AI system 850 that Father's Day, say, is coming up in, say, three days. In this case, the AI system 850 may initiate a communication 810, for example the speech "Father's Day is coming up in three days. Would you like me to add a Father's Day card to your shopping list?"

[00095] When the AI system 850 initiated a communication 810, the database keywords "shopping list" 311, "add" 331 and "Father's Day Card" 354 are also appended, along with their respective pointers 321 and 324, to a temporary storage unit 620. Suppose for example that there is a human-type communication response 820, which is a single input word "yes" 821. In the AI system depicted, the AI system 850 first uses its SPM facility to determine whether the top-level database keyword "shopping list" 311 in the HKP database 300 appears in the human-type communication response 820. Since it does not, it goes through all the others, "remind me" 312, "remember" 313 and "undo" 314, none of which are found.

[00096] Since none of the set of 310 top-level database keywords were found in the human-type communication response 820, the AI system 850 now checks in a temporary storage unit 620 concerning the contents of the AI system 850 initiated communication 810. It determines first that the contents of the temporary storage unit 620 contains the top-level database keyword "shopping list" 311, and it uses its SPM facility to determine that this does not appear in the human-type communication response 820. Next, it determines that the second level database keyword "add" 331 also does not appear in the human-type communication response 820, nor does the other database keyword pointed to by the pointer 321, "remove" 332.

[00097] The AI system 850 now moves to the third level database keyword in its temporary storage unit 620, "Father's Day Card" 354. It uses its SPM facility to determine that this does not appear in the human-type communication response 820. Next, it checks the other third level database keywords pointed to by the pointer 324. None of these are found either. It thus concludes (or determines) that the human-type communication response "yes" 821 must refer to the most recent communication, the AI system 850 initiated communication 810, consisting of the database keyword string "shopping list" 311, "add" 331 and "Father's Day Card" 354.

[00098] Hence, the AI system 850 acts as though it interprets or otherwise inputs the human-type communication response 820 to mean the phrase 830 "Father's Day Card add shopping list", and adds the word "Father's Day Card" 354 to a shopping list it maintains. Therefore, the AI system 850 successfully engages in conversation initiated by the AI system 850.

[00099] Therefore, the AI system 850 may engage in two-way communication and be able to intelligently keep track of states (previous state in which previous communication input was provided, current state in which current communication input is provided, etc.). Thus, the AI system 850 may mimic a "real human-like" communication or conversation.

[000100] In an implementation, the analysis facility, alone or in combination with SPM facility, is configured to terminate a search in response to one of: searching a bottom level set of the HKP database, or determining that no matches are found in a set at a particular level. In an implementation, the third-level set may be an additional set and may include a second-level set if the second-level set is the bottom-most set.

[000101] In an implementation, the initial communication 810 is also referred to as an output because the AI system 850 may provide and/or generate communication 810 as an output that is to be transmitted via an output device (e.g., a speaker, a monitor, an electromagnetic transmitter, or a computing device), not depicted. The AI system 850 may generate an output such as communication 810, and in response to the output generated by the output device, the input device may then receive the communication input response "yes" 821.

[000102] FIG. 9 is a flow diagram of a method 900 of communicating using an artificially intelligent computing system. The flow diagram depicts various steps of method 900. Method 900 may be performed by the AI system which may include hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions run on a processing device to perform hardware simulation), or a combination thereof.

[000103] Referring now to FIG. 9, at step 902, the artificially intelligent computing system (or the AI system) receives communication input from a device. The communication includes at least a first input word and at least a second input word.

[000104] Although the term "input word" is used to describe a word contained within the communication input, in other implementations, an input word may include a single symbol, two or more words, or multiple symbols, or a combination thereof. In yet other implementations, the communication input may include a string. [000105] The AI system may receive input communication from an input device, a second AI device, a microphone, a keyboard, or a computing device. The input device is configured to receive voice input data, text input data, and/or multimedia input data from a user. The input device is configured to receive input transmitted via wired or wireless, or other signals.

[000106] In an implementation, the HKP database includes two or more sets and each of the sets includes one or more respective database keywords.

[000107] Referring now to FIG. 9, at step 904, the AI system iteratively searches a hierarchical keyword database (e.g., an HKP database) that includes a plurality of hierarchical level sets of database keywords to determine whether the first input word matches a first database keyword. In some implementations, the AI system may receive the first input word and then perform a specific search in the HKP database for the specific first input word corresponding to the database keyword (or a subset or substring thereof) in order to find a match. In another implementation, the AI system may loop through to the first level set to determine whether keywords within the first level set are contained within the communication input. In an implementation, the AI system may perform a search for any database keyword in the matter described above.

[000108] Referring now to FIG. 9, at step 906, in response to determining that a first level set of the plurality of hierarchical level sets includes the first database keyword matching at least a portion of the first input word, the AI system performs the following: cease searching of the hierarchical keyword database; and determine, via a pointer, a second level set of the plurality of hierarchical level sets of database keywords. The second level set includes at least a second database keyword.

[000109] Referring now to FIG. 9, at step 908, the AI system iteratively searches the second level set to determine whether the second input word matches the second database keyword. In an implementation, the analysis facility, in communication with the SPM facility, may perform the search.

[000110] Referring now to FIG. 9, at step 910, in response to determining that the second level set includes the second database keyword matching at least a portion of the second input word, the AI system performs the following: cease searching of the hierarchical keyword database; and perform an action in response to determining that the second database keyword matches at least the second input word. In an implementation, the analysis facility, in communication with the SPM facility, may cease the search.

[000111] In an implementation, performing the action includes determining that the communication input is associated with a predetermined phrase. In an implementation, the predetermined phrase may include one or more words including one or more verbs. The predetermined phrase may include one or more words that are standalone or connect together to form a clause or complete or partial sentence.

[000112] In an implementation, performing the action includes appending the first input word and the second input word to a storage unit. The AI system may receive a subsequent communication input from a device. The subsequent communication input includes at least a third input word. The AI system (or, specifically, the analysis facility, in communication with the SPM facility) may iteratively search the first level set and the second level set to determine whether the third input word matches any of database keywords within the first level set or the second level set. In response to determining that the third input word does not match any one of the database keywords, the AI system (or, specifically, the analysis facility, in communication with the SPM facility) may search the storage unit to determine whether the third input word matches the first input word or the second input word appended to the storage unit. In response to determining that the third input word does not match the first input word or the second input word appended to the storage unit, the AI system (or, specifically, the analysis facility, in communication with the SPM facility) may search additional storage unit keywords to determine whether the third input word matches an additional storage unit keyword. In response to determining that the third input word matches the additional storage unit keyword, the AI system may determine that third input word is associated with the first input word and the second input word appended to the storage unit. The AI system may perform a second action in response to the determining that the third input word matches the additional storage unit keyword.

[000113] In accordance with aspects of the present disclosure, the storage unit described above, is configured to maintain a record of key words associated with one or more communication inputs received by the input device. The one or more communication inputs include a previous communication input received by the input device prior to receiving the current communication input.

[000114] In an implementation of the present disclosure, the AI system may include or otherwise communicate with an output device. The output device may be similar to or different than the input device. The record maintained by the storage unit may include an output generated by the AI system. The output may be used by the analysis facility in the search. The analysis facility is configured to analyze at least one of the communication input or the output and generate a response.

[000115] The output device may include a speaker, a monitor, an electromagnetic transmitter, and/or a computing device. The communication output may be an electronic signal, an audio signal, or transmitted as textual representation, multimedia representation and/or graphical representation using SMS, MMS or other protocols. In an implementation of the present disclosure, the action taken by the AI system may include a communication output generated by the AI system and provided to the output device. The communication output may be a response to a communication input. Thus, the AI system engages in a two-way conversation with a user. In an implementation, the communication output may be generated in response to analysis of the communication input by the analysis facility. In an implementation, the communication input may be received in response to the communication output transmitted by the AI system.

[000116] In an implementation, the storage unit is configured to maintain a record of key words associated with one or more communication inputs received by the input device or a communication output generated by the artificially intelligent communication system. The input device may receive a second communication input in response to the communication output generated by the artificially intelligent communication system and transmitted by the output device. The second communication input includes at least a second input word. The analysis facility is configured to communicate with the string-pattern matching facility to search the hierarchical keyword database to find a second match between at least a portion of the second input word and one of the first database keyword or the second database keyword or the record of keywords. In response to finding the second match, the analysis facility is configured to instruct the artificially intelligent communication system to perform a second action.

[000117] In an implementation of the present disclosure, the string-pattern-matching (SPM) facility and the analysis facility may include hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (such as instructions run on a processing device), firmware, or a combination thereof. The term facility as used throughout may be interchangeable with the term module. The SPM facility and analysis facility may be implemented within a single hardware, software, firmware, or a combination thereof or a multiple hardware, software, firmware, or combinations thereof.

[000118] For purposes of this disclosure, any element mentioned in the singular also includes the plural, and vice versa.

[000119] The database keywords and/or the input words may include a single word, a single symbol, multiple words, multiple symbols, or a combination thereof.

[000120] Although depicted implementations show the HKP database, the temporary storage unit, and/or other components external to the AI system, in other implementations, some or all of these components may be located within the same system.

[000121] In an implementation of the present disclosure, the AI system may be embodied within the memory and computational resources of a computing system (e.g., a desktop computer, a mobile device, etc.) and the AI system may or may not utilize Internet connectivity. In an implementation, the AI system may communicate with other remote systems or communicate with local systems. In one example, the AI system may remotely communicate with other facilities and/or devices to perform various aspects of the disclosure. In another example, the AI system and other facilities and/or devices may be housed within a remote device and may or may not communicate with external devices using a network.

[000122] Fig. 10 illustrates a block diagram of an illustrative computing device or machine 1000. In alternative implementations, the machine may be connected (e.g., networked) to other machines in a LAN, an intranet, an extranet, or the Internet. The machine may operate in the capacity of a server or a client device in a client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a server, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term "machine" shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.

[000123] The computer system 1000 includes a processing device 1002, a main memory 1004 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) (such as synchronous DRAM (SDRAM) or DRAM (RDRAM), etc.), a static memory 1006 (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage device 1018, which communicate with each other via a bus 1030.

[000124] Processing device 1002 represents one or more general-purpose processing devices such as a microprocessor, microcontroller, central processing unit, or the like. More particularly, the processing device may be complex instruction set computing (CISC) microprocessor, reduced instruction set computer (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or processor implementing other instruction sets, or processors implementing a combination of instruction sets. Processing device 1002 may also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. The processing device 1002 is configured to execute the instructions 1026 for performing the operations and steps discussed herein.

[000125] In accordance with one or more aspects of the present disclosure, processing device 1002 may be configured to execute instructions implementing method 900 for communicating using an artificially intelligent computing system.

[000126] The computer system 1000 may further include a network interface device 1008 coupled to a network 1074. The computer system 1000 also may include a video display unit 1010 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device 1012 (e.g., a keyboard), a cursor control device 1014 (e.g., a mouse), and/or a signal generation device 1020 (e.g., a speaker).

[000127] The data storage device 1018 may include a computer-readable storage medium 1024 on which is stored instructions 1026 embodying any one or more of the methodologies of functions described herein. The instructions 1026 may also reside, completely or at least partially, within the main memory 1004 as instructions 1026 and/or within the processing device 1002 as instructions 1026 during execution thereof by the computer system 1000; the main memory 1004 and the processing device 1002 also constituting machine-accessible storage media.

[000128] In accordance with one or more aspects of the present disclosure, instructions 1026 may comprise executable instructions for AI system 1044 for implementing method 900 for communication. The AI system 1044 may be any one (or multiple ones) of the AI system described above.

[000129] The computer-readable medium 1024 may also be used to store instructions 1026 to implement the AI system to implement any one or more of the methodologies of functions described herein in a computer system, such as the system described with respect to the AI system, and/or a software library containing methods that call the above applications.

[000130] While the computer-readable storage medium 1024 is shown in an example implementation to be a single medium, the term "computer-readable storage medium" should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term "computer-readable storage medium" shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instruction for execution by the machine and that cause the machine to perform any one or more of the methodologies of the disclosure. The term "computer- readable storage medium" shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media.

[000131] In the foregoing description, numerous details are set forth. It may be apparent, however, that the disclosure may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the disclosure.

[000132] Some portions of the detailed descriptions which follow are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.

[000133] It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise, as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as "receiving", "initiating", "generating", "determining", "sending", "invoking", "storing", "updating", "identifying", "presenting", "causing", or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.

[000134] One or more aspects of the present disclosure also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes (i.e., customized), or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a machine readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, flash memory, or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.

[000135] The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems may appear as set forth in the description below. In addition, one or more aspects of the present disclosure is not described with reference to any particular programming language. It may be appreciated that a variety of programming languages may be used to implement the teachings of the disclosure as described herein.

[000136] One or more aspects of the present disclosure may be provided as a computer program product, or software, that may include a machine-readable storage medium having stored thereon instructions, which may be used to program a computer system (or other electronic devices) to perform a process according to the disclosure. A machine-readable storage medium includes any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). For example, a machine-readable (e.g., computer-readable) medium includes a machine (e.g., a computer) readable storage medium (e.g., read only memory ("ROM"), random access memory ("RAM"), magnetic disk storage media, optical storage media, flash memory devices, etc.), etc.

[000137] Whereas many alterations and modifications of the disclosure may no doubt become apparent to a person of ordinary skill in the art after having read the foregoing description, it is to be understood that any particular example shown and described by way of illustration is in no way intended to be considered limiting. Therefore, references to details of various examples are not intended to limit the scope of the claims, which in themselves recite only those features regarded as the disclosure.

[000138] It will be apparent to those skilled in the art that various modifications and variation can be made to the structure of the present disclosure without departing from the scope or spirit of the disclosure. In view of the foregoing, it is intended that the present disclosure cover modifications and variations of this disclosure provided they fall within the scope of the following claims and their equivalents.