nizable words, the system cannot produce n intelligible output.
As set forth more fully below, the natural language processing system makes use of three different types of queries to facilitate user interaction and in the process of determining which query the user's utterance corresponds to:
1) intelligent queries, constructed at nodes on incomplete paths by making use of all keywords that lie on that particular path from the root to the lowest node, i.e., the node with the highest level on the aforementioned incomplete path;
2) confirmation queries, prompt a user for a yes or no response to confirm a determination;
3) ordinary queries, which are simple fixed queries such as “Please be more specific in your input. Try again.”
This invention's querying a user for additional input offers a significant performance improvement over prior art speech processing systems.
FIG. 3 shows a tree graph that graphically represents the syntactical relationships between the keywords that comprise the pre-determined, well-defined language that the system can recognize. FIG. 3 also shows the associative array of keywords (identified by reference numeral 3-3) the individual elements of which are enumerated 4-1 through 4-12 inclusive. As set forth below, the detection of the recognizable keywords in an utterance, which can be mapped into the tree graph (70) and that lie on a path formed by a set of edges uniquely and singly linking the root node (3-2) and a leaf node, (i.e., the nodes identified by reference numerals 3-4; 3-6; 3-8; 3-10; 3-12 and nodes that are numbered 4, 11, 19, 15) identifies an utterance formed by the recognized keywords that the system considers to be understood. When an incomplete path is mapped or more than one complete path between the root (3-2) and a leaf (3-4; 3-6; 3-8; 3-10; 3-12) is mapped, the system attempts to resolve the ambiguity and uses probability theory to determine the most likely input utterance. For purposes of this disclosure, a complete path is a path that has a leaf node marked, but may not have all the nodes between the marked leaf and the root node marked as well. An incomplete path is a path that has a non-leaf node marked, but may not have all intervening nodes between the marked non-leaf node and the root node marked as well.
FIG. 4 shows a simplified representation of an array (40) of data elements (4-1 through 4-12) that is a keyword dictionary. The array (40) is a one-dimensional associative array, each word of which (4-1:4-12) is itself an index into the linked lists (60). The array (40) could be stored in random access memory, magnetic tape or disk, or other memory.
FIG. 4 also shows the relationships of the data elements (40) of the keyword dictionary and the node(s) shown in FIG. 3 representing the relationships between the pre-defined keywords. FIG. 4 also shows linked lists (4-14 through 4-36).
Each data element (4-16:4-12) in the array of data elements (40) includes a pointer, not shown, which is effectively the starting address of an associated linked list (4-14; 4-1; 4-18; 4-20; 4-22; 4-24; 4-26; 4-28; 4-30; 4-32; 4-34; 4-36) stored in the computer. The linked lists of FIG. 4 (4-14; 4-16; 4-18; 4-20; 4-22; 4-24; 4-26; 4-28; 4-30; 4-32; 4-34; 4-36) are represented in the tree graph (70) of FIG. 3 by the line segments pointing to the nodes on the tree graph that are enumerated 0 through 20.
The array of recognizable keywords (4-1:4-12), which comprises a dictionary of recognizable keywords, the associated pointers (not shown) and the structure and organization of the linked lists ((4-14; 4-16; 4-18; 4-20; 4-22; 4-24; 4-26; 4-28; 4-30; 4-32; 4-34; 4-36)) are represented by the tree graph of FIG. 3 and effectively define both the recognizable keywords of the language and the relationships between the keywords.
FIG. 5 shows three data arrays (5-2; 5-3; 5-4) that effectively comprise the relationships between the various nodes of the tree graph (70) shown in FIG. 3. For the arrays shown in FIG. 5 (5-2, 5-3, 5-4) the index of the arrays (5-1) corresponds to the node number. The value o