Apparatus and method for determining the lexical properties of compound words

Abstract: To determine lexical data relating to a compound target word by reference to a vocabulary containing words with their lexical data, the vocabulary is searched for a word having a longest final part in common with the target word, the vocabulary being arranged in retrograde order for the purpose of this search process. The effect of this is that compound target words do not have to be included in the vocabulary, and this means a considerable reduction in memory space occupied by the vocabulary.

Description: The invention relates to apparatus for determining data relating to a compound target word, comprising a vocabulary constructed from records each containing a keyword and selection means for selecting from the vocabulary a record relevant to the compound target word. The invention also relates to a method for such apparatus, and also to a data processing unit containing such apparatus. An apparatus of the type described in the preamble is known from European patent specification EP-B-0 145 202. This describes apparatus for selecting, for spelling checking purposes, records relevant to the compound word from a vocabulary. The vocabulary contains no compound words but only basic words, in order that the vocabulary may occupy the minimum amount of memory space. The basic words correspond to the keyword mentioned in the preamble and give a unique identification of a record from the vocabulary. The problem underlying the invention is to select, for the purpose of determining lexical data of compound words, a record relevant thereto from a vocabulary of this kind which does not contain these compound words - again in order to restrict as far as possible the memory space required for the vocabulary. A first disadvantage of using the apparatus described in the said patent specification is that a search action repeatedly has to be carried out on the entire vocabulary to process a compound word. A second disadvantage is that if the vocabulary contains a large number of basic words - and this is desirable for practical use - there is a considerable risk that a first part of a word will agree with such a basic word so that it is no longer possible to find a basic word for the remaining part of the word, and this will give rise to a repeated search action. The object of the invention is to obviate these disadvantages. The invention makes use of the fact that in many languages the lexical data of a compound word are determined by the final part of the compound word and is now based on the principle that finding the record having a final word part corresponding as much as possible to the target word and hence containing the required lexical data is greatly simplified by performing the search action on a vocabulary arranged in retrograde order. According to the invention, the apparatus of the type described in the preamble is characterised in that the keywords are arranged in retrograde order and in that the selection means are adapted to select from the vocabulary that record which has a keyword having a maximum final part in common with the target word, and the method for such apparatus is characterised by selection from the vocabulary of that record which has a keyword having a maximum final part in common with the target word. The retrograde order means that the keywords are in alphabetical order but starting with the last character of each word and working back to the first character. A word in this vocabulary is searched for by checking character by character for agreement with a keyword starting with the final character of the word and working back to the first character. The effect of this search method is that although the target word is not completely found, a keyword is found which, starting with the final character and thus working back, has the maximum number of characters in common with the target word. A keyword with the associated record found in this way will be that keyword from the vocabulary which, reading back from the final character, most agrees with the target word. Since this latter part is the determining factor for the lexical data, the lexical data of the keyword found can be accepted. It is apparent from the foregoing that the indicated search method is also suitable for determining the lexical data of those words which appear completely in the vocabulary. The advantage of this is that it is possible in one operation to determine the lexical data of both simple words and compound words. There is no longer any need to distinguish a priori compound words from simple words, and to give the first a separate treatment, e.g. segmentation into the basic words making up the compound, in order to determine the lexical data. One advantageous embodiment of the apparatus and the method is characterised in that selection takes place only if the maximum final part of the word exceeds a minimum length. With this criterion it is possible to avoid incorrect results because too few final characters agree. Another advantageous embodiment of the method is characterised by determining, within a search interval limited by a top limit record and a bottom limit record, an intermediate record, comparing the keyword of the intermediate record with the target word, reducing the search interval, and selecting a record when the top limit record and the bottom limit record have approached one another. A fast search method is obtained in this way. These advantages will be explained with reference to the following description and the accompanying drawings wherein: Fig. 1 is a block schematic of an apparatus according to the invention, Fig. 2 is a flow diagram showing the method according to the invention, Figs. 3A - 3B are a flow diagram relating to one advantageous embodiment of the method according to the invention, Fig. 4 is a flow diagram of a method for lexicalising an input word, in which method the invention can advantageously be applied, and Fig. 5 is one possible embodiment of a data processing unit provided with apparatus according to the invention and adapted to the lexicalisation of both compound words and simple words. Fig. 1 is a block schematic of apparatus according to the invention. Such apparatus comprises an input register 1, a search module 2, a vocabulary 3 arranged in retrograde order and an output register 7. The retrograde vocabulary 3 comprises a number of records 4. Each record contains a keyword 5 and lexical data 6 associated therewith. The retrograde order of the vocabulary is obtained by arranging the keywords in retrograde order. Fig. 1 shows a number of keywords arranged in retrograde order as an illustration. The fact that these keywords are written in inverted form is not essential to the invention. A target word present in the input register 1 is fed to the search module 2, which comprises selection means. The search module 2 consults the retrograde vocabulary 3 and, with the aid of the selection means, determines the record relevant to the target word, whereupon the data obtained are placed in the output register 7. The method according to the invention will now be explained generally with reference to Fig. 2. The starting position is indicated by reference 10. The target word is read in at step 11. A search is then carried out in step 12 on the retrograde vocabulary by comparing the target word character by character with a number of keywords. Various search methods are possible here, e.g. linear traversing of the vocabulary or a binary method, in which the search interval is reduced stepwise. One advantageous variant of the binary search method will be explained in Fig. 3. If in step 12 it is found that the target word is completely contained in the vocabulary (Y), then in step 13 the lexical data are accepted and placed in the output registwer. If it is found in step 12 that the target word is not contained in the vocabulary (N), then in step 14 a relevant entry for the target word is determined and the lexical data thereof are placed in the output register. The final condition 15 is reached after this. One advantageous embodiment of the method according to the invention will now be explained in detail with reference to Figs. 3A and 3B. The starting situation is denoted by reference 31. The target word is read in at step 32, whereupon any hyphens in the target word are removed in step 33 and the target word is inverted. However, the latter is not necessary to the principle of the invention. The search method now to be described is a variant of the binary search method known from the literature, in which a search interval is reduced stepwise. The search interval is defined by a top limit record and a bottom limit record. In step 34 an initial search interval is determined in the vocabulary by defining the top limit record and the bottom limit record. It is possible to use the first and last records of the vocabulary for this purpose. It is more advantageous to provide the vocabulary with an index on each record, of which the combination of the first two characters of the keyword differs from that of the previous record. The initial search interval is then determined by the first two characters of the target word. The bottom limit is determined by the first record of which the inverted keyword starts with this combination of the two characters, and the top limit is determined by the last record of which the inverted keyword begins with the combination of the two characters. If an initial search interval has been determined, then the relative weights of the inverted keywords associated with the top and bottom limits, and of the inverted target word, are determined in step 35. A check is first made how many characters correspond from the start of the three inverted words. Of each inverted word the first and second characters are taken directly positioned after the mutually corresponding characters. The relative weights are then determined by determining, of each of the three words, the sum of the number associated with the first character, directly positioned after the mutually corresponding characters, multiplied by 27 and the number associated with the second character positioned after the corresponding characters. The number associated with a character is its order number in the alphabet Other methods of allocating numbers to characters are of course possible. In step 36 the relative position of the inverted target word on the interval is determined by taking the quotient of the difference in relative weights of the inverted target word and the bottom limit and the difference in relative weights of the top limit and bottom limit. Since the weights calculated in this way will not be distributed uniformly over the interval, this relative position is corrected in step 37 by placing it closer to the middle of the interval. In step 38 the keyword is then searched for which occurs at the calculated position in the vocabulary, whereupon step 39 determines whether there is agreement between the keyword searched for and the target word. If there is complete agreement (Y), then this record is selected in step 40 and the lexical data of the selected record are placed in the output register in step 41, thus reaching the final condition 42. If there is no complete agreement in step 39 (N), step 43 checks whether the inverted target word is smaller than the inverted keyword on the basis of the alphabetical word order. If this is so (Y), then in step 44 the required inverted keyword becomes the new top limit of the search interval. If this is not the case (N), then in step 45 the required inverted keyword becomes the new bottom limit of the search interval. Step 46 checks whether the top and bottom limits of the search interval are situated directly next to one another. If this is not the case (N), the program returns to step 35. If it is the case (Y), the search action stops in the vocabulary. Step 47 then determines whether the corresponding first part of the inverted target word and the inverted keyword associated with the bottom limit is of a length identical to the corresponding first part of the inverted target word and the inverted keyword associated with the top limit. If this is the case (Y), step 48 selects from the top and bottom limits found the record having the longest keyword. If this is not the case (N), step 49 selects the record of which the inverted keyword has a longest first part in common with the inverted target word. In both cases, a check is then carried out in step 50 as to whether the corresponding part of the word contains at least a minimum required number of characters. If this is the case (Y), then in step 51 the lexical data together with a marker indicating that the word is not fully contained in the vocabulary are placed in the output register, whereafter the final condition 52 is reached. If this is not the case, an error indication is given in step 53, whereafter the final condition 52 is reached. The above-described method will now be explained in detail with reference to an example. The input word is the Dutch compound word for church door 'kerkdeur'. It is assumed that the relevant segment of the vocabulary in which the inverted keywords start with the two-character combination 'ru' contains the words indicated in Table 1. Starting from the start situation 31, the target word 'kerkdeur' is read in at step 32. This is a compound word. It is not contained in the vocabulary. In step 33 the target word is inverted and yields 'ruedkrek'. In step 34 the top and bottom limits of the initial search interval are determined. This is defined by the first two characters of the inverted target word: 'ru'. List of inverted keywords ruatnec (initial bottom limit) ruecuod rued ruek ruekfa ruekroov ruel ruez ruu ruug ruuhcs ruum ruup ruuv (initial top limit) The initial search interval has the top and bottom limits 'ruuv' and 'ruatnec' respectively. The relative weights of the words are then calculated in step 35. For this purpose, the program first determines from which position the words differ from one another. This is from the second position. The weight is thus calculated on the basis of the third and fourth characters. The number given to a character corresponds to the order number in the alphabet. The number given to the third character is multiplied by 27. This yields the following: ru | at | nec → 27 * 1 + 20 = 47 ru | ed | krek → 27 * 5 + 4 = 139 ru | uv | → 27 * 21 + 22 = 589 In step 36 the relative position xr of the inverted target word on the interval is then calculated by standardising the distance between the bottom limit and the target word on the size of the interval: xr = 139 - 47 589 - 47 = 0.17 In step 37 this relative position is then corrected for the non-uniform distribution of the weights of the words over the interval. This yields xrc, which is calculated by shifting the position in the direction of the middle of the interval: xh. The extent of the shift is determined by the correction factor c. This is taken as being 0.4. This yields: xrc = xr*(1-c) + xh*c = 0.3 The absolute position on the interval then becomes xa = int(0.3*N) = 4 , where N is the number of records in the interval and int() is a function which rounds of a number to form a complete value. The keyword associated with the calculated position is then searched for in the vocabulary in step 38. This yields 'ruek', whereupon step 39 checks whether this word agrees with the target word. This is not the case (N), so that in step 43 a check is made whether the inverted target word is smaller, according to the alphabetical order, than the inverted keyword. This is the case (Y), so that in step 44 the keyword found is made the top limit. In step 46 a check is then carried out as to whether the bottom and top limits are next to one another. This is not the case (N), so that the program returns to step 35, where the relative weights are re-calculated: ru |at| nec → 27 * 1 + 20 = 47 ru |ed| krek → 27 * 5 + 4 = 139 ru|ek| → 27 * 5 + 11 = 146 In step 36 the relative position on the new interval is then determined: xr = 139 - 47 146 - 47 = 0.93 Correction is then carried out in step 37 for the non-uniform distribution and the absolute position xa on the interval is determined: xa = 3. In step 38 the keyword of the third record is then determined: 'rued'. In step 39 it is then established that there is no agreement with the target word (N), so that the method proceeds with step 43. This step verifies that 'ruedkrek' is larger, by alphabetic word order, than 'rued' (N). In step 45 'rued' is made the bottom limit. Step 46 checks whether the bottom and top limits are situated next to one another. This is the case (Y), so that the program passes to step 47 where a check is made whether the inverted keywords associated with the top and bottom limits have an equal number of characters in common with the inverted target word. This is not the case (N), so that in step 49 that record is selected whose inverted keyword has most characters in agreement with the inverted target word: this yields 'rued'. Step 50 checks whether the agreeing part of the word contains at least the minimum number of required characters. Let it be assumed that this is 4. The record found then satisfies this condition (Y). The lexical data for the inverted keyword 'rued' are as follows: 'inneuter male female sing3'. These data are retrieved and then in step 51 placed in the output register in the following form: (kerkdeur (noun (*rued inneuter male female sing3))) The marker '*' indicates that the target word does not completely appear in the vocabulary. The final condition 52 is then reached. Now an example for the English language will be given. The input word is the compound word 'bookkeeper'. It is assumed that the relevant segment of the vocabulary in which the inverted keywords start with the two-character combination 're' contains the words indicated in Table 2. List of inverted keywords rep (initial bottom limit) repac repeed repeek repeels repeep repeerc repeews repel repmac repmub reppu repuos (initial top limit) Starting from the start situation 31, the target word 'bookkeeper' is read in at step 32. This is a compound word, it is not contained in the vocabulary. In step 33 the target word is inverted and yields 'repeekkoob'. In step 34 the top and bottom limits of the initial search interval are determined. This is defined by the first two characters of the inverted target word: 're'. The initial search interval has the top and bottom limits 'repuos' and 'rep' respectively. The relative weights of the words are then calculated in step 35. For this purpose, the program first determines from which position the words differ from one another. This is from the third position. The weight is thus calculated on the basis of the fourth and fifth characters. The number given to a character corresponds to the order number in the alphabet. The number given to the fourth character is multiplied by 27. This yields the following: rep| → 27 * 0 + 0 = 0 rep|ee|kkoob → 27 * 5 + 5 = 140 rep|uo|s → 27 * 21 + 15 = 582 In step 36 the relative position xr of the inverted target word in the interval is then calculated by standardising the distance between the bottom limit and the target word on the size of the interval: xr = 140 - 0 582 - 0 = 0.25 In step 37 this relative position is then corrected for the non-uniform distribution of the weights of the words over the interval. This yields xrc, which is calculated by shifting the opposition in the direction of the middle of the interval: xh. The extent of this shift is determined by the correction factor c. This is taken as being 0.4. This yields: xrc = xr*(1-c) + xh*c = 0.35 The absolute position on the interval then becomes xa = int (0.35*N) = 5, where N is the number of records in the interval and int() is a function which rounds of a number to form an integer value. The keyword associated with the calculated position is then searched for in the vocabulary in step 38. This yields 'sleeper', whereupon step 39 checks whether this word agrees with the target word. This is not the case (N), so that in step 43 a check is made whether the inverted target word is smaller, according to the alphabetical order, than the inverted keyword. This is the case (Y), so that in step 44 the keyword found is made the top limit. In step 46 a check is then carried out as to whether the bottom and top limits are next to one another. This is not the case (N), so that the program returns to step 35, where the relative weights are re-calculated: rep| | → 27 * 0 + 0 = 0 rep|ee|kkoob → 27 * 5 + 5 = 140 rep|ee|Is → 27 * 5 + 5 = 140 In step 36 the relative position on the new interval is then determined: xr = 140 - 0 140 - 0 = 1 Correction is then carried out in step 37 for the non-uniform distribution and the absolute position xa on the interval is determined: xa = 4. In step 38 the keyword of the fourth record is then determined: 'repeek'. In step 39 it is then established that there is no agreement with the target word (N), so that the method proceeds with step 43. This step verifies that "repeekkoob' is larger, by alphabetic word order, than 'repeek' (N). In step 45 'repeek' is made the bottom limit. Step 46 checks whether the bottom and top limits are situated next to one another. This is the case (Y), so that the program passes to step 47 where a check is made whether the inverted keywords associated with the top and bottom limits have an equal number of characters in common with the inverted target word. This is not the case (N), so that in step 49 that record is selected whose inverted keyword has most characters in agreement with the inverted target word: this yields 'repeek'. Step 50 checks whether the agreeing part of the word contains at least the minimum number of required characters. Let it be assumed that this is 4. The record found then satisfies this condition (Y). The lexical data for the inverted keyword 'repeak' are as follows: 'countable sing3 noun". These data are retrieved and then in step 51 placed in the output register in the following form: (bookkeeper (noun (*repeek countable sing3 noun))). The marker '*' indicates that the target word does not completely appear in the vocabulary. The final condition 52 is then reached. The invention is advantageously applied to all cases where it is necessary to find in a vocabulary a word which has a final part in common with the target word. The invention is advantageously combined with the method described in patent application NL 91 01284 (filed by Applicants on the same date as the Dutch priority application of the present case was filed) for obtaining lexical data. This is explained in detail with reference to Fig. 4. The steps which are run through are shown in this Figure. Starting from the starting situation denoted by reference 60, the input word is read in at step 61 and a pseudo-basic form associated with the input word is derived by reference to a string operation diagram 62. In step 63 this pseudo-basic form is searched for in an electronic word register 64 and, if found, the lexical data are determined and written out, whereafter the final condition 65 is reached. The invention can advantageously be used to search for the pseudo-basic form in the electronic word register. To this end, the electronic word register 64 is constructed as a vocabulary arranged in retrograde order and the search method according to the invention is applied. This procedure has the effect that the lexical data can also be determined for compound inflected words, it only being necessary to include in the vocabulary for consultation simple noninflected words, thus giving a considerable reduction of memory space occupied by the vocabulary. The marker added to the lexical data indicates that the word is not contained in that form in the vocabulary and that there is only agreement with a word in the vocabulary as regards the final part of the word, and this could also indicate that the word is incorrectly spelt in the remaining part of the word. It is advantageous to include a number of compound words in the vocabulary. In this way the required minimum number of corresponding characters of the final part of the word can be increased, thus reducing the risk of incorrect results. Fig. 5 shows one possible embodiment of a data processing unit provided with apparatus according to the invention and adapted to the lexicalisation of both compound words and simple words. The data processing unit comprises a main unit 71 and is also provided with a keyboard 72, a mass memory 73 in which the vocabulary arranged in retrograde order in accordance with the invention is stored, and a screen 74. The main unit 71 comprises a keyboard controller 75 connected to the keyboard 72, a disc controller 76 connected to the mass memory 73, a screen controller 77 connected to the screen 74, a first memory module 78 which can be loaded with text files from the mass memory, a second memory module 79 in which the string operation diagram and the associated instruction series are stored, a string operation module 80 containing means for processing an input word by reference to the string operation diagram, and means for selecting an instruction series associated with the path traversed through the string operation diagram, and a search module 81 containing means for checking whether a pseudo-basic form found has an entry in the list of basic forms. To this end, this search module contains the selection means according to the invention and is adapted to select from the vocabulary that record which contains a keyword having a maximum final part in common with the target word. The main unit also comprises an output module 82 which contains means for checking whether an entry found satisfies the instruction series and means for adapting the data from the entry, a buffer 83 in which the data obtained are placed, whereupon they are available for further processing, and a processor unit 84 which controls all the said modules and controllers. An input word originating from a text file stored in the first memory module 78 or input via the keyboard 72 is fed to the string operation module 80. By reference to the string operation diagram stored in the second memory module 79 the string operation module 80 generates a pseudo-basic form and an associated instruction series. The pseudo-basic form obtained is fed to search module 81, which checks whether the pseudo-basic form has an entry in the list of basic forms stored in the mass memory 73, and for this purpose performs the steps of the method according to the invention, whereafter, if an entry is found, the data thereof are read in. These data are fed to the output module 82 which compares them with the instruction series supplied by the string operation module 80 and also processes them to form the data characteristic of the input word. The characteristic data obtained are displayed on the screen 74 via screen controller 77 or else placed in the buffer memory 83, whereafter they can be used for other purposes, e.g. for parsing sentences. The invention is not limited to the method or embodiment described, but can be put into practice by the skilled man in various other ways, all of which however come under the scope of the claims.

Claims: Apparatus for determining data relating to a compound target word, comprising a vocabulary constructed from records each containing a keyword and selection means for selecting from the vocabulary a record relevant to the compound target word, characterised in that the keywords are arranged in retrograde order and in that the selection means are adapted to select from the vocabulary that record which has a keyword having a maximum final part in common with the target word. Apparatus according to claim 1, characterised in that selection takes place only if the maximum last part of the word exceeds a minimum length. A method for determining data relating to a compound target word for use in an apparatus according to claim 1, characterised by selection from the vocabulary of that record which has a keyword having a maximum final part in common with the target word. A method according to claim 3, characterised in that selection takes place only if the maximum final part of the word exceeds a minimum length. A method according to claim 3 or 4, characterised by the steps of: initially determining a search interval on the vocabulary defined by a top limit record and a bottom limit record; stepwise reducing the search interval until the top limit record and the bottom limit record are adjacent to each other by the steps of: calculating relative weights of the top limit record, the bottom limit record and the target word on the search interval, determining an intermediate record on basis of the calculated relative weights, comparing the keyword of the intermediate record with the target word, and reducing the search interval by making the intermediate record one of a new bottom limit or a new top limit in dependence of the outcome of the comparison step; and, when the top limit record and bottom limit record are adjacent to each other, selecting a record from one of said top limit record and bottom limit record. A method according to claim 5, characterised in that if the lengths of the common parts of the word associated with the adjacent top limit record and bottom limit record are identical, the record having the longest keyword is selected. A data processing unit provided with means for obtaining lexical data relating to a target word and comprising apparatus according to claim 1, so that the data processing unit is adapted to lexicalise both compound words and simple words.

Inventors: CREMERS LOUIS MARIE GERARDUS, HEEMELS ROBERTUS PETRUS ELISAB, VAN VLIEMBERGEN EDUARDUS JOSEP, CREMERS, LOUIS MARIE GERARDUS, HEEMELS, ROBERTUS PETRUS ELISABETH HUBERTUS, VAN VLIEMBERGEN, EDUARDUS JOSEPHUS WILLIBRORDUS
Applicants: OCE TECH BV, OCE-TECHNOLOGIES B.V.
Application year: 1992
Main classification: G06F17
IPC codes: G06F17