Abstract:
The dictionary is broken into clusters by first grouping the dictionary according to a rule based procedure whereby the dictionary is sorted by word length and alphabetically. After sorting, a plurality of first cluster centers is generated by selecting the dictionary entries that differ from neighboring entries by the first letter. Each of the dictionary entries is then assigned to the closest one of the first cluster centers using a dynamic time warping procedure. These newly formed clusters are then each analyzed to find the true cluster center and the dictionary entries are then each assigned to the closest true cluster center. The clusters, so formed, may then be rapidly searched to locate any dictionary entry. The search is quite efficient because only the closest cluster to the desired dictionary entry needs to be searched.

Description:
BACKGROUND AND SUMMARY OF THE INVENTION 
     The present invention relates generally to speech and text recognition. More particularly, the invention relates to a system and method for constructing a computer-searchable dictionary. The system organizes the dictionary into clusters to facilitate rapid dictionary searches. The system constructs a clustered dictionary through a process that is much faster than conventional dictionary ordering processes. This enables much larger dictionaries to be clustered while minimizing processor overhead. 
     Speech recognition systems and text recognition systems often rely on comparing the input test speech or input text with entries in a dictionary. The dictionary is a database containing all possible entries that the recognition system is capable of processing. In a simple text-based system it is possible to organize the dictionary alphabetically, using a tree-structured data structure to store the dictionary. The alphabetically-sorted, tree-structured dictionary works well when the confusability between speech fragment utterances or text characters is low. However, the alphabetically-sorted, tree-structured dictionary does not work well when there is a moderately high likelihood of confusion among utterances or letters. 
     To demonstrate, in a keyboard entry text application, the identity of each keystroke can be treated as reliable. Thus, as a word is typed, the dictionary searching algorithm can traverse the alphabetically-sorted tree, letter by letter, thereby progressing to the dictionary entry as it is typed. In a speech recognition system, or in any text input system in which the individual speech fragment utterances or letters cannot be deemed reliable, the alphabetically-sorted, tree-structured dictionary gives poor results. For example, if the first input speech fragment utterance or character is confused or misinterpreted, an alphabetically-sorted, tree-structured algorithm will begin to traverse an incorrect path. Thus, if the letter J is mistaken for the letter G, the tree-structured algorithm will fail to find the entry JOHNSON, by having misconstrued the first letter. 
     Accordingly, in speech recognition and text recognition systems with moderately high probability of confusion, a clustered data structure is preferred. To build a conventional clustered data structure, the dictionary of all possible entries is mapped onto an N×N distance matrix (N being the number of entries in the dictionary) in which the distance of each entry from all other entries is calculated and recorded in the matrix. Distance can be computed using a variety of different metrics, the simplest being the geometric distance calculated using the Pythagorean theorem upon the individual parameters that are used to define the dictionary entries. For example, if each dictionary entry is represented by 3 parameters, a, b and c, the distance between two entries is computed according to the Pythagorean theorem as follows. ##EQU1## 
     The conventional clustered data structure is constructed by examining the n×n distance matrix to find the center of the dictionary; then find the point where the distance from all other points is maximum; and then reassign all points to these two cluster centers. The cluster centers are then computed again and the process is repeated iteratively until the desired number of clusters is generated. 
     Specifically, these two points are used to divide the dictionary into two subsets corresponding to the two points identified. Each entry in the dictionary is assigned to one subset or the other, depending on which of the two points the entry is closest to. The procedure is then repeated again and again, until the original dictionary has been broken into the desired number of subsets or clusters. 
     The conventional technique for generating these clusters is suitable for small dictionaries, such as on the order of several thousand entries. However, as the dictionary size increases, the conventional cluster forming technique becomes geometrically slower to construct and use rapidly too much memory. Whereas a small dictionary might be subdivided into a suitable number of clusters in a manner of minutes, a large dictionary could take days, weeks or even years to construct in this conventional fashion. The time required to construct the dictionary clusters can pose significant penalties on systems that are designed to periodically merge data from separate dictionaries into a single dictionary, as this may frequently necessitate recomputing the cluster centers. 
     The present invention takes a different approach to constructing a clustered dictionary. According to the invention, the initial dictionary is first subdivided according to a predefined rule-based system to provide a plurality of first cluster centers. By way of example, the rule-based system may sort the dictionary alphabetically and then divide the dictionary into groups based on the number of letters contained in each word entry. Within each length category all words that differ by the first letter are used as a first cluster center. The cluster centers identify the words or names of the same length that begin by the same letter. That is the presently preferred rule-based system for providing the first cluster centers. In general, however, any suitable rule-based system that produces the desired number of cluster centers may be employed. The number of cluster centers generated by the rule-based system is dictated largely by processor speed and desired time constraints. The presently preferred system selects on the order of 260 cluster centers for a 20,000 word dictionary. 
     Having selected the first cluster centers, all entries in the initial dictionary are compared to each of the cluster centers. At least a portion of the dictionary entries are assigned to the closest cluster center, thereby subdividing the initial dictionary into a plurality of first clusters. 
     Next, each of the first clusters is examined to identify its true cluster center, thereby defining a plurality of second cluster centers. The first cluster centers and the second cluster centers do not necessarily match one another even though they may be associated with the same one of the first clusters. 
     Having identified the second cluster centers, the initial dictionary is subdivided into a plurality of third clusters by comparing each entry of the initial dictionary to each of the second cluster centers, and assigning each entry to the one of the second cluster centers that represents the closest degree of similarity. 
     The above process of identifying the cluster centers and reassigning each entry of the initial dictionary to the closest center may be repeated over a series of iterations, if desired. The system provides a clustered dictionary for electronic speech and text recognition applications, without the costly computational overhead found in conventional cluster generation systems. For a more complete understanding of the invention, its objects and advantages, refer to the following specification and to the accompanying drawings. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a flow diagram that shows the various levels of the database clustering system; 
     FIG. 2 is a flow diagram that shows the database clustering system procedural overview; 
     FIG. 3 is a flow diagram depicting the break up of the dictionary into the Level 1 centers; 
     FIG. 4 is a schematic for depicting how to develop the Level 1 centers; 
     FIG. 5 is an example of Level 1 cluster centers; 
     FIG. 6 is a flow diagram that shows the formation of first clusters by assigning the dictionary entries to the Level 1 cluster centers; 
     FIG. 7 is a graph depicting the comparison of two words by using the dynamic time warping (DTW) algorithm; 
     FIG. 8 is a flow diagram that shows the development of the Level 2 cluster centers; 
     FIG. 9 is the flow diagram that shows the reassigning of the dictionary entries to form second clusters; and 
     FIG. 10 is an example of the second clusters. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     The overall database clustering system is depicted in the flow diagram of FIG. 1. A dictionary 20 is provided as input into the database clustering system. The dictionary 20 is comprised of dictionary entries 22. In the illustrated example these dictionary entries 22 are words that will be used eventually as input into a word recognition system. The number of entries in a dictionary may range from only several entries to several tens-of-thousands of entries. While small dictionaries may be quickly searched to locate words needed for word recognition, large dictionaries pose problems of slow access time that can debilitate a word recognition system. The present invention addresses the problem of how to quickly search large dictionaries by a new technique for clustering the dictionary. 
     Overview 
     Before presenting a detailed description, a brief overview will be given while referring to FIG. 1. In FIG. 1, the dictionary 20 is broken up into a set of cluster centers. This initial set of cluster centers is called the &#34;Level 1 centers&#34; 30. Any rule-based technique may be used to break up the dictionary into the Level 1 centers. The presently preferred embodiment sorts the dictionary alphabetically and by word length, using the first word of each different word length as a cluster center. The Level 1 centers 30 comprise cluster centers #1 to #n (designated by reference numerals 32 and 36) where n is any integer number of the desired number of clusters. 
     The dictionary entries 22 are compared to each of the Level 1 centers by an assignment algorithm 39. The assignment algorithm 39 assigns each dictionary entry to the closest cluster center. The assignment of each entry of the entire dictionary to one of the Level 1 cluster centers by the assignment algorithm 39 produces the first clusters 40. 
     Next, the center of each of these first clusters is found to yield Level 2 centers 42 and compared to each dictionary entry by the assignment algorithm 39 to form the second clusters 50. These second clusters represent a novel and efficient break up of the dictionary 20 for more quickly searching the dictionary 20. If desired further iterations can be performed according to this strategy. 
     FIG. 2 shows the top-level steps to produce the various levels of cluster centers and clusters for a dictionary 20 as depicted in FIG. 1. The first step 60 is to extract from the dictionary 20 the Level 1 centers 30 based upon the Rule Base 62. The next step 66 is to form the first clusters 40 by assigning the dictionary entries to the Level 1 cluster centers. The distance of each dictionary entry 22 to a Level 1 center is computed by the DTW algorithm with applied penalty factors 68. The next step 70 is to develop Level 2 centers 42 for each of these newly formed clusters. The final step 72, is to form the second clusters 50 by reassigning the dictionary 20 to Level 2 centers. The distance from each dictionary entry 22 to a Level 2 cluster center is computed by the DTW algorithm 68. 
     Detailed Procedural Discussion 
     As shown in FIG. 3, a Rule Base 62 is used to break up the dictionary 20 into the Level 1 centers 30. Although a variety of different rule based strategies may be used, the presently preferred Rule Base 62 provides that the dictionary 20 be sorted by the length of the dictionary entries. Then, the Rule Base 62 sorts the dictionary entries 22 alphabetically. These two rules arrange the dictionary 20 into a dictionary that starts with the smallest length words and progresses up to the largest length words; and within each group of words that have the same length, the words are sorted alphabetically. Each Level 1 center is determined by finding the words that differ by the first letter. FIG. 5 further depicts how the Level 1 centers are then determined. After the dictionary has been sorted by length and alphabetically according to the Rule Base 62, the first word that differs from its preceding neighbors by the first letter is selected as being that particular cluster&#39;s center. For instance, in the following sorted list, the word BAT would be chosen as a Level 1 center, because it differs from its preceding neighbor AZT by the first letter. 
     
         ______________________________________ABEATEAZTBAT         ← Level 1 CenterBOG______________________________________ 
    
     The number of centers in Level 1 will vary based upon the entries in the dictionary 20. Typically, the number of cluster centers in Level 1 range in the upper 200s. FIG. 4 is an example of clusters #1, #2 and #273 of Level 1. 
     FIG. 6 illustrates how the first clusters are formed. The dictionary entries 22 are each compared to each of the Level 1 centers by a weighted distance algorithm. The preferred embodiment uses a dynamic time warping (DTW) algorithm. Each dictionary entry is then assigned to a cluster corresponding to the Level 1 center that is closest to that entry. After this has been done for the entire dictionary a plurality of first clusters will have been formed. 
     FIG. 7 illustrates the concepts employed by the DTW algorithm. FIG. 7 graphically shows how two words may be compared on the basis of the word&#39;s respective feature vectors. Word #1 330 is placed on the abscissa axis and a word #2 332 is placed on the ordinant axis. Each word is broken up into feature vectors (such as feature vectors, a, 334 and b, 336). In this case the feature vectors may simply represent the component letters that make up the word. The feature vectors of word #1 are compared against the feature vectors of word #2. The accumulated distance between the feature vectors of word #1 and #2 is calculated and represented by the curve 340. A summation of all these distances indicates how &#34;good&#34; is the match between word #1 and word #2. The smaller the summed distance, the better is the match between word #1 and word #2. 
     The DTW algorithm used here includes a penalty factor for calculating the distance. The distance values are penalized (i.e., increased) whenever a particular word&#39;s feature vector has been substituted, inserted or deleted. Furui, on pages 244-247 of Digital Speech Processing, Synthesis, and Recognition, provides a more detailed examination of the DTW algorithm. 
     A return to FIG. 6 shows in step 302 how the DTW algorithm is used to form the first clusters. (The same algorithm may be used to form the second clusters that will be discussed below.) The DTW algorithm takes as word #1 a particular dictionary entry. Then, it takes as word #2 a Level 1 center. A distance value is obtained that represents how well the dictionary entry matches a particular Level 1 center. Then, at Step 304, the dictionary entry is assigned to a first cluster 40 that represents the closest match. Clusters 310 and 312 depict those dictionary entries that were closest to the Level 1 center to be assigned to centers #1 and #n, respectively. 
     FIG. 8 depicts the steps to extract the Level 2 centers from the first clusters 40. The DTW algorithm is used for each entry within a first cluster to find the distance of that entry to every other entry within that particular cluster. After step 360 calculates the distances, step 366 finds the cluster centers. First, the distances of a cluster entry to all other entries within the same cluster is summed. The cluster entry with the smallest summed (i.e., total) distance, is the &#34;true center&#34; of the cluster. The term &#34;center&#34; is used here in the same manner as the term &#34;center&#34; when referring to a center of a circle, since a center is the place where the distance from all other points is a minimal. The evaluation of each first cluster in accordance with steps 360 and 366 yields the Level 2 cluster centers 370. 
     For a further understanding see the Appendix listing containing the code used to calculate the distance of one word relative to another. This listing also shows how the distance algorithm uses penalty factors and how to find a cluster center after the distances have been calculated. 
     FIG. 9 shows the last step in the database clustering system. FIG. 9 depicts the steps to form the second clusters based upon the dictionary 20 and the centers of the first clusters, i.e. the Level 2 centers 370. In a manner similar to the formation of the first clusters, step 372 calculates the distance of each dictionary entry from each Level 2 center using the DTW algorithm. Step 374 then assigns a dictionary entry the Level 2 center representing the closest match. The result of steps 372 and 374 is the second clusters 50. 
     FIG. 10 shows an example of several second clusters and their associated centers. A comparison of the second clusters (FIG. 10) to the first clusters (FIG. 4) shows that the sizes of the clusters may vary for second clusters as well as the length of the various dictionary entries that are a part of a particular cluster. 
     The presently preferred embodiment stores the second clusters as the final representation of the dictionary. Typically it will comprise less than 300 clusters, thus effecting a concise representation of the dictionary 20. Using the invention a dictionary whose entries may number as many as 70,000 or greater, can now be more quickly searched by first considering only the centers of a second cluster. Thus, only several hundred comparisons initially need to be done. Once one or several closest centers are located the input word can be quickly matched to a dictionary entry. The present invention yields an order of magnitude reduction in computational processing needed to find dictionary entries that are the closest to the input word. While the invention has been illustrated in an embodiment that stops after created the second clusters, the principles of this technique can be extended, by iteration, to build third clusters, fourth clusters and so forth, if desired. Those skilled in the art can now appreciate from the foregoing description that the broad teachings of the present invention can be implemented in a variety of forms and for a variety of different dictionaries. While the principles are readily adapted to dictionary look-up and speech recognition systems, these principles also work for other types of data, such as data used in pattern recognition. Therefore, while this invention has been described in connection with particular examples thereof, the true scope of the invention should not be so limited since other modifications will become apparent to the skilled practitioner upon a study of the drawings, specification and following claims. ##SPC1##