WO1995014974A1 - Input system for text retrieval - Google Patents

Input system for text retrieval Download PDF

Info

Publication number
WO1995014974A1
WO1995014974A1 PCT/US1994/013279 US9413279W WO9514974A1 WO 1995014974 A1 WO1995014974 A1 WO 1995014974A1 US 9413279 W US9413279 W US 9413279W WO 9514974 A1 WO9514974 A1 WO 9514974A1
Authority
WO
WIPO (PCT)
Prior art keywords
name
word
abbreviation
inputs
speaker
Prior art date
Application number
PCT/US1994/013279
Other languages
French (fr)
Inventor
Michael T. Rossides
Original Assignee
Rossides Michael T
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US08/158,297 external-priority patent/US5454063A/en
Priority claimed from US08/165,676 external-priority patent/US5620182A/en
Application filed by Rossides Michael T filed Critical Rossides Michael T
Priority to AU12102/95A priority Critical patent/AU1210295A/en
Publication of WO1995014974A1 publication Critical patent/WO1995014974A1/en

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90348Query processing by searching ordered data, e.g. alpha-numerically ordered data
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07BTICKET-ISSUING APPARATUS; FARE-REGISTERING APPARATUS; FRANKING APPARATUS
    • G07B15/00Arrangements or apparatus for collecting fares, tolls or entrance fees at one or more control points
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C15/00Generating random numbers; Lottery apparatus
    • G07C15/006Generating random numbers; Lottery apparatus electronically

Definitions

  • a fruitful approach to spelling names is to abbreviate them.
  • a practical abbreviation method should combine user friendliness and efficient data compression.
  • the basics of such a method, and the system for implementing it, are as follows: A speaker has in mind a name she would like to spell. The speaker chooses a word in the name by identifying the position of the word in the name. The speaker then spells the word using a recognizer. The system allows the speaker to go to another word at any time by identifying that word by its position in the name. Because the speaker can freely choose the most unusual word(s) in the name, this method minimizes the number of letters needed to be spelled to specify the name out of a list of names.
  • Figure 1 shows a flow chart of the basic system for names.
  • Figures 2 shows a flow chart of the system including additional, useful inputs.
  • Figure 3 shows a flow chart of the system including erasure functions.
  • Figure 4 shows a flow chart of the system in combination with a look-up system.
  • Figures 5-5c show flow charts of the system together with an interactive look-up system.
  • Figure 6 shows a flow chart of the system with a recognizer that does not confirm inputs.
  • Figure 7 shows a flow chart of a probabilistic sorter of customer demand.
  • the system create abbreviations that represent names.
  • the abbreviation system can be combined with a look-up system which uses the abbreviations to find names in a data-base.
  • the invention in combination with an interactive look-up system that guides the speaker in the use of the abbreviation method.
  • Recognizer Means that enable a computer to have a reasonable chance of converting a speaker's speech inputs into the symbols intended by the speaker.
  • Recognizer IR that outputs its guesses in voice form.
  • Word A string of characters.
  • Name A string of words. A name here is not used in the sense of a proper name. A name may have multiple proper names within it.
  • Compound Name A string of names. Having more than one name in a full name does not necessarily mean that the full name is compound. A name with multiple names in it can be interpreted as a single name or a compound name. The designer of a system must decide which interpretation is best. For example, Sony Walkman MegaBass could be considered one name or three.
  • a compressed text string used as a set of search parameters.
  • Letter Input Input used to spell words. "Letter input” will mean the alpha-numeric symbols and punctuation marks that make up words.
  • Word Input Input that is itself a full word.
  • Word Identifier Input Input that denotes the sequential position of a word in a name. Used to specify what word a speaker's letter inputs correspond to. According to the number it contains, a word identifier specifies the position of all the letters entered after it itself is entered up until another word identifier is entered. For example, "Second word,” specifies that the next letters entered are spelling the second word in a name. The most useful word identifiers are the counting numbers; "Word” followed by the counting numbers; the ordinal numbers; and the ordinal numbers followed by "word”. If the system include full word inputs, a word identifier would also specify the position of a full word. For example, "Second Word” followed by a word would cause the word to be placed in the second word position of the abbreviation.
  • Name Identifier Input Input that denotes what name a speaker's letter inputs correspond to. For example, "Second Name”, denotes that the next letters entered are spelling the second name in a compound name. Unlike a word identifier, a name identifier would not necessarily denote sequential position. A name identifier could be descriptive, for instance, "Manufacturer,” “Author,” “Street,” and so on.
  • Step 1 The speaker starts by entering the word identifier corresponding to the word in the name that the speaker will be spelling first.
  • Step 2 The speaker spells the word corresponding to the word identifier just entered. If a speaker returns to a word after having spelled it partially, the speaker continues where he left off.
  • Step 3 The speaker can stop spelling a word by entering one of the following inputs: a. a word identifier, after which the speaker goes to step 2. b. "Done,” after which the speaker stops or goes to step 1.
  • the basic system for implementing the method above requires the following elements in combination: A computer, an interactive recognizer (IR) 1 that recognizes and confirms inputs, and a program that executes the steps below for converting the confirmed inputs into an abbreviation:
  • IR interactive recognizer
  • the program waits for a word identifier 2. After this input is entered, the program begins building a set of search parameters, an abbreviation 3, for a name. The program stores the word identifier input as described in the step directly below. After this first input is stored,
  • the program If a word identifier 5 is entered, the program the stores 4 it in the abbreviation to specify the position of the next letters entered. The position is specified by the number of the identifier.
  • the system can include a Name Identifier input that signifies the name the speaker will be spelling.
  • the addition of inputs and functions for handling compound names does not essentially change the system.
  • the method simply includes steps enabling the speaker to signify what name she is spelling.
  • the speaker identifies the name being spelled, and in the second, identifies the word being spelled.
  • the speaker can change names by saying a different name identifier followed by a word identifier.
  • the name identifier specifies the word identifiers that are entered after it.
  • the program waits for a name identifier to be entered. After the name identifier is entered, the program begins building an abbreviation. The program stores the name identifier in the abbreviation as the specifier of the next word identifiers entered. Then, a. If a name identifier is entered, the program stores it in the abbreviation as the specifier of the next the word identifiers entered. b. If a word identifier is entered, the program stores it in the abbreviation in the field defined by the last name identifier entered. c. If a letter is entered, the program stores it in the abbreviation in the field defined by the last word identifier entered. d. If "Done" is entered, the program goes to Step 1.
  • Part 3 System Including Additional Helpful Inputs
  • Positional Letter Identifier Inputs (“letter identifiers"): The system can include inputs that denote the sequential position of letters in words.
  • the most useful letter identifiers are those with counting numbers or ordinal numbers, for instance, "Letter three" or "Third letter.”
  • the letter identifier is analogous to the word identifier and is nested within it.
  • a letter identifier 31 is stored 32 in the field defined by the last word identifier entered. For example, "Third word,” “Fourth letter.” Then the letter following the letter identifier is stored 32 in the abbreviation as specified by the number in the letter identifier. For example, a person spelling "Rocklands” might say, “Fourth letter,” “K.” "K” is then stored as the fourth letter of the word.
  • Last Letter As shown in figure 2, the system can include an input, call it "Last Letter,” that denotes that the next letter entered is the last letter of the word being spelled.
  • the system program registers that if a letter is entered next, the letter is to be stored as the last letter 36 in the last word identified.
  • the system can include an input, call it "Second- to-Last Letter,” that works similarly, but refers to the second to last letter of a word.
  • the system can include an input, which might be called “Skip Letter,” that denotes that the speaker is skipping spelling a letter in the word being spelled. When the speaker enters this input, the system stores a blank character, in the abbreviation.
  • the system can also include inputs, which might be called “Skip Nowel,” and “Skip Consonant,” that denote that the speaker is skipping a vowel and a consonant.
  • Word Done As shown in figure 2, the system can include an input 37, which might be called “Word Done,” that denotes that all the letters in a word have been spelled. The system program stores 38 this input in the abbreviation under the last word identified. Words Done: The system can include an input 39, which may be called “Words Done,” that denotes that all the words in a name have been spelled to some extent. Numeric Value Inputs: The system can include numeric value inputs that denote the number of letters in a word, the number of words in a name, and the number of letters in a name. A numeric input has two parts, a number and a description telling what the number applies to. The program registers the descriptive part and then stores the number as the descriptive part specifies. The program must be designed to recognize the descriptive part which, as mentioned, can vary. Described below are four ways of entering numeric value inputs.
  • a digit By sequential order, where the speaker has the option of entering a numeric value after a certain other input has been entered.
  • the system can be designed to follow a convention whereby after a certain input, the speaker can enter an identifier, a letter, or a digit. If a digit, the digit is one of the three numeric values above. For example, after a word identifier, a digit could denote the number of letters in the word just identified. For example, "Second word,” "Four” would denote that the next letters entered belonged to the second word and that the word had four letters. It is also possible to have multiple digits where each digit denotes a different piece of information about the name.
  • a speaker could begin by saying, "two, three, seven.”
  • the "two” could denote that there are two words in the name.
  • the "three” could denote that the next letter(s) spell the third word in the name.
  • the "seven” could denote that there are seven letters in the third word.
  • word identifier code By word identifier code, where a word identifier denotes more information than just the position of a word in a name. Such a coding method introduces imaginary, null words into a name. These null words can go in front of the real words or can be interspersed between them. If in front, the sequential order of the real words is preserved. If in between, the order of the real words is preserved. From the example above, a speaker could use the word identifier "237th word" which would be equivalent to "2-3-7" above. The system program would be designed to recognize the code in order to store the numeric part of the input. Part 4: Helpful Functions
  • the system can include a step and function with which the speaker can erase a previous input or inputs. As shown in figure 4, the erasure could be at the letter 51 , 52, word 53, 54, 55, or name level. "Erase" 50 followed by any input(s) can signify that that input is to be erased from the abbreviation.
  • the abbreviation system allows a speaker to return to a word that has been previously spelled to some extent and spell more of it.
  • the system as described above has the speaker pick up where she left off because letters are stored sequentially in an abbreviation in the order they are entered. However, it may be easier for a speaker to start at the beginning of a word rather than try to remember her place.
  • the system can include a function for eliminating re-confirmations of inputs such that: after a speaker enters a word identifier that has been previously entered, the system program counts the letters already spelled for that word; the program then detects the speaker's next inputs but does not confirm or store them until it detects as many inputs as there are letters already spelled; then it confirms and stores inputs as usual.
  • a speaker returning to a word may need to be reminded of where he left off.
  • the system can include a function for reminding the speaker. After a speaker enters a word identifier that has previously been entered, the system program outputs all the letters in the abbreviation stored under that word identifier. After this output, the program stores letters normally (in sequential order following the last letter already stored in the word).
  • Full Word Acceptance Function While the system is designed to allow the speaker to abbreviate words and ultimately names, the method can include full word inputs. These can be very useful. Thus a speaker abbreviating "Reggies Bowling Alley,” might enter “First Word,” “R,” “Second Word,” “Bowling,” and so on. The recognizer would have to be able to recognize a vocabulary of full words in addition to those words used as program commands (such as "First,” “Word Done,” etc.). Words that are program commands might not be stored in the abbreviation. To accept word inputs as well as letter inputs, the system program would include a function that stores full words.
  • the abbreviation system should be combined with a look-up system that includes: a) a data-base, b) a program for using the abbreviations created to search the data-base, and c) functions for outputting the results of the searches.
  • This combined system would execute the same steps as the abbreviation system described above with the steps of the look-up system being added as shown in figure 4:
  • the search program uses the abbreviation to search 81 the data-base for a name that uniquely matches the abbreviation. —If no match is found 82, the outputs a message 83 that the data could not be found, —If a unique match is found 84, outputs the data 85 corresponding to the name, --If a non-unique match is found, the abbreviation program waits for more inputs. As the steps above show, when a mismatch is reached, the system outputs a "no data" message. However, the system may include a "best match” function that outputs the best match for the abbreviation. Also, after a "no data” message, an erasure input could be entered, allowing the speaker to alter an abbreviation without starting all over.
  • the speaker When using an abbreviation method to look-up a name, the speaker will usually not know enough to specify the name with a minimum number of inputs. Thus, it is useful for the look-up system to include interactive, guiding functions that reduce redundant inputs. Once the speaker has hit a dead-end, various functions can exit that dead-end. These will be described before interactive, guiding functions.
  • the look-up system should include a function that outputs a message when a speaker has entered an incomplete abbreviation and has decided that he cannot further specify the name. Such a function can be called an exit and various exits are possible in a system.
  • the look-up program can output: a) a message saying there are too many matched names, b) the data associated with the name that has been requested most, c) data associated with all the matched names, d) missing parts of the matched names and let the speaker choose one part.
  • the corresponding name and data can then be outputted (For example, the data-base might have two listings that are the same except for the address.
  • the system can output one address or the other and have the speaker confirm it or not.).
  • the speaker can get stuck spelling a part of a word that is fully specified by previous inputs. This happens when the part is common to other words in the data-base. For example, say a speaker is trying to match "Internal Medicine Group" above. Once he enters "I,” he has narrowed his search to three names. Yet if he continues to spell "N-T-E-R-N-A" he will make no progress until he gets to "L.” In other words, the "I” has specified "N-T-E-R-N-A" as well.
  • a speaker can get stuck spelling more than one word that is fully specified by previous inputs. This can happen if the speaker does not know all the words in a name. For example, a speaker trying to match a Sony Walkman WFF24 might specify "Sony" and "Walkman,” but if he does not know the last word, the model number, he is stuck spelling the first two words to no avail.
  • a speaker can get stuck spelling a name that has been fully specified. This can happen if he does not know all the names in a compound name. He may then be stuck at a multiple match. For example, say the speaker is seeking to match a McDonalds above. Once he enters "M,” he has specified the first name. Spelling the rest of "McDonalds" is unnecessary. What is needed is part of the second name, the street address.
  • the look-up system can include functions that "look ahead" into the data-base and tell the speaker when he is stuck. These functions can also suggest inputs that will efficiently specify the name sought. These functions may be called guides. There are two types of guides: probabalistic guides and definitive guides. Probabalistic guides yield suggestions that are good guesses.
  • Definitive guides yield suggestions that are certain.
  • a system can, and usually would, include both types of guides. These guides each come in two types: guides that tell a speaker he is stuck and guides that output suggested inputs. Guides output advice messages such as, "Try the third word," or "What is the third word?" Messages should be kept short.
  • a useful form of message is a message that is conveyed by a short tone. For example, a beep could mean that the speaker is stuck in a word or a name.
  • an interactive guide can be triggered to output advice when: a) a certain number of inputs has been entered for a word or name, b) the number of names matched is less than a certain number, c) the speaker has made less than a certain amount progress after having entered a certain number of inputs, d) the speaker enters a command, which might be called "Suggest,” that denotes that the speaker desires the system to provide advice, e) the interactive guide finds that a certain input is expected to narrow down the list of matches by more than a certain amount, f) the interactive guide calculates the speaker's expected progress and that progress is below a certain amount.
  • a look-up system in combination with the abbreviation system can include a function that: a. Examines the list of all the compound names in the that match the abbreviation. b. Compares all the names in that list corresponding to the last name identifier entered. c. If all the names compared are identical, outputs a message telling the speaker that no more progress can be made in the name corresponding to that identifier.
  • the look-up system in combination with the abbreviation system can include a function that: a. Examines 90 the list of all the names that match the abbreviation. b. Compares 91 all the words corresponding to the last word identifier entered. c. If all the words compared are identical 92, outputs a message 93 telling the speaker that no more progress can be made in the word corresponding to that identifier. For example, taking the toy data-base, if a speaker enters "First Word,” "Z,” the look-up system matches two names : “Zei Club” and "Zei Club Vacations.” The interactive guide compares the first words in the two names. The words are identical. Hence the guide outputs a message that no more progress can be made spelling the first word in the name.
  • the function can also include these steps: d. If all the words compared are not identical,
  • N M (a threshold value)
  • Suggested inputs are inputs and sequences of inputs that a guide tests for possible outputting as advice.
  • the term "suggested input” may be a bit confusing because it can refer to both a single input and a sequence of inputs.
  • the reason that both are referred to as a suggested input is that in natural language a sequence of inputs and a single input are often phrased the same way. For example, a guide might output a message, "Enter the number of words in the name.” To enter this information the speaker may need only a single input.
  • Another message might be, "Spell the second word.”
  • a suggested input can involve multiple letters because a guide can test the value of spelling two or more letters in a row.
  • a guide compares the information value of one suggested input to another, a single input may be compared to single input or to a sequence of inputs. There is no formula for deciding what inputs should be tested.
  • both definitive and probabilistic guides must calculate the information value of different inputs in a set of suggested inputs.
  • a guide can include a ranking of inputs according to user friendliness, so that, given two informationally equivalent inputs, the guide outputs the more user friendly choice.
  • Information theory provides elementary formulas for measuring the value of a piece of information (an input). While a variety of these can be used in an interactive guide, all share the same idea. The idea is that the value of an input is measured by how many names it knocks out of a list of matches; by how much it narrows down the list of matches. A formula, call it INFO-
  • VALUE(Input, Name) calculates the value of an input applied to a name. That's because the value of an input depends on what name the speaker is spelling. "Applying an input to a name” means that the function assumes that the speaker is spelling a certain name. The function then finds the letter or numeric value that corresponds to that input in that name. This letter or numeric value might be called the Resulting Input. An example: If the name is "Zei Club” and the function applies "Second Word,” “Last Letter,” then the Resulting Input is "B.”
  • the ratio in step 7 measures of the value of the input selected applied to the name selected. For example, taking the toy data-base, say a speaker enters "First Word,” "F-E.” These inputs result in three matches: “Federal Election Committee,” “Federal Express,” and “Fetoosh Restaurant.” If INFO- VALUE applies Next Letter to the name, “Fetoosh Restaurant,” the Resulting Input is "T,” which eliminates two matches and leaves just one, “Fetoosh Restaurant.” Thus, INFO- VALUE of Next Letter applied to "Fetoosh” is (2 / (3-1)) or 1.0 ("T” has eliminated 100% of the "false” matches).
  • a look-up system in combination with the abbreviation system can include a function that: a. Examines the set of all the names in the data-base that match the abbreviation. b. For each name, calculates 100 the value of the next letter being entered in the word corresponding to the last word identifier entered. (In other words, the function first checks all the names to find the value in each case of the next letter in the word currently being spelled.) c. If INFO-VALUE(Next Letter) is 1.0 for all names 101, does nothing, d. If not 101,
  • the definitive guide described above suggests to the speaker an input that uniquely specifies a name in all cases. It may be though that no input will do this. And yet it may also be that certain inputs will have much higher values in all cases than the next letter of the word currently being spelled. In this case, a definitive guide can check the value of alternative inputs and suggest the one with the highest value.
  • Probabilistic guides give advice that is probable (e.g., "You are probably stuck,” or "You should probably spell the second word.”).
  • the information value of an input may vary widely, being high when applied to certain names and low when applied to others. A conclusion about every name is often not possible. And so, what a probabilistic guide does is sum the value of an input over all the names the speaker might be abbreviating. The input with the highest total is the one that has the highest value, on average (an average can be taken yielding the expected value of the input).
  • a second toy data-base is introduced to illustrate points about probabilistic guides: Sony W2FF Sony W2FG Sony W2FH Sony Z9LH
  • the input "First Letter,” “Second Word,” applied to the first three names has an INFO- VALUE of 1/3 (it knocks out only one name, the fourth name).
  • the INFO- VALUE is 1 (it knocks out the other three names).
  • weight means the probability of being abbreviated. What is needed is a weighted sum. How the weights are determined depends on the application of course. It is worth noting though that in many situations, the weights should come from the actual usage of the data-base itself. A guide can therefore include a demand function that measures how much a name is requested over time.
  • a function can find the percentage that have identical names in the position specified by the last name identifier entered.
  • a function can find the percentage that have identical words in the position specified by the last word identifier entered.
  • a function can find the percentage of names that have identical word parts in the words specified by the last word identifier entered. When the percentage is above a threshold, the guide can declare that the speaker is probably stuck in the relevant name, word, or word part.
  • a function can calculate the expected value of spelling the next N letters of a name, word, or word part. If the expected value of the sequence of letters is below a threshold, the guide declares that the speaker is probably stuck in the relevant part (see example below).
  • a function can calculate not only the expected value of a sequence of letters but also the probability of a speaker entering any given sequence of inputs. This probability can be factored into an expected value function to yield the expected value of the speaker's input. If this expected value is below a threshold, the guide declares that the speaker is probably stuck. Rather than calculate all these probabilities, a guide can use historical data to supply the expected value of a speaker's input at a given stage of entering inputs. The point is that this expected value can be determined in various ways.
  • a look-up system in combination with the abbreviation system can include a function that: a. Examines the set of names that match the abbreviation created thus far. b. Calculates the expected information value of the next N letters in all the words specified by the last word identifier entered. c. If the expected value is below a certain threshold, outputs a message telling the speaker that she will probably make little progress for the next N letters.
  • the procedures above for defining whether a speaker is stuck include threshold values. If the speaker's expected progress is below a threshold, the guide declares that the speaker is probably stuck.
  • a threshold can be a constant. Or, it can vary with the number depending on a variety of factors such as how many inputs have been entered. Or, it can depend on the expected value of other input sequences. Checking the value of other sequences can be useful for it is often counterproductive to tell the speaker he is probably stuck in, say, a word if he is only going to try another word where he is equally stuck.
  • a guide can include steps for checking the "level of stuckness" in each word in a name.
  • a probabilistic guide In order to suggest inputs, a probabilistic guide must evaluate a set of alternative input sequences and select the one that has the highest expected value (though user-friendliness can be taken into account).
  • the best probability function to apply in a given situation is often a subjective matter.
  • a quick analogy to baseball makes the point.
  • a batting average Hits / At Bats
  • a guide can include many factors. At least though, all will contain a core that measures the number of names a suggested input will eliminate if a given name is being abbreviated.
  • a probabilistic guide that suggests inputs needs to: a. Examine 120 a set of suggested inputs. b. Calculate 121 the expected information value of each. c. Select 122 the suggested input with the highest value.
  • the guide Since 0 is less than this amount, the guide then compares 125 the number of inputs already entered, which is two, and finds that that number is below a threshold of, say, five inputs entered. (If it is above, we assume the guide suggests an input.) Thus, the guide outputs a message 126 telling the speaker she is stuck.
  • the guide then takes 120 a set of suggested inputs which consists, in this imaginary case, of the next two letters of the remaining words.
  • the guide calculates 121 the expected value of each sequence and finds 122 that spelling the second and third words yields the same value.
  • the guide checks its table ranking the input sequences by user friendliness and finds that spelling the second word is slightly more user friendly than spelling the third. Hence, the guide outputs, "Spell the the second word.”
  • the threshold for triggering the guide is a comparison between the best suggested input and the spelling of the next N letters of the current word.
  • the thresholds were an expected value constant (.5) and the number of inputs entered.
  • the guide calculates 130 the expected value of spelling the next, say, three letters of this word and finds that the expected value is 2/3.
  • the guide also calculates 131, 132 the value of the set of suggested inputs, which consists now of spelling the second word. The guide finds that the value of spelling the second word is 2/3 as well. The difference between the two values is taken 133.
  • the system described above uses an interactive recognizer that confirms inputs. By confirming inputs, a single abbreviation is created that is then built upon. However, it is readily apparent that the system could also use a recognizer that does not confirm inputs. In this case, the recognizer would have multiple guesses about a speaker's inputs. As shown in figure 6, the system would use the guesses and permute 140 the possibilities to create multiple abbreviations based on the recognizer's guesses. The abbreviations would be matched against the data-base and the non- matching ones eliminated 141. This "post-processing" of inputs is well known in the field. When a non-confirming recognizer is used in the system, the multiple abbreviations can be weighted according to their probability of being correct. These weights can then be used by the system's interactive guides that calculate the expected value of inputs
  • a system may include both confirming and and non-confirming modes.
  • inputs with a high probability of being accurately recognized such as numbers and word identifiers, would usually not be confirmed.
  • Another possibility for combining modes is to have users to first narrow down the search by using confirmed inputs and then continue with non-confirmed inputs. Or, the system can ask for a confirmation when the recognizer determines that the accuracy of the recognition is below a certain percentage. Or, the system could switch from non-confirming mode to confirming mode, in order to knock out certain false matches. The point is that confirming and non-confirming modes can be used together.
  • Part 8 Function That Juggles Word Order
  • a speaker When using the abbreviation method, a speaker might know a word or words in a name but may not be sure where the word or words go. For example, say a speaker wants to abbreviate "Herman's World of Sports,” but the speaker only knows that "Herman's” and “Sports” are in the name. The speaker would then only want to abbreviate these two words.
  • the system can include a function that "juggles" the word order entered by the speaker, thereby creating multiple abbreviations. If the speaker is unsure of the word order in a name, she can enter an input, call it "Juggle,” that causes the function to use the speaker's inputs to create an abbreviation for every possible combination of word orders.
  • the number of words in the name has to be established. Either the speaker will have entered the number of words or the function has a pre-set limit. This set of combinations (multiple abbreviations) is used to search a data ⁇ base. The combinations not matching any names are eliminated. Each input entered is placed by the juggle function in all the remaining combinations. After an input is placed, another search is executed and more abbreviations may then be eliminated. (A system could allow a speaker to invoke the juggle function after an abbreviation has been rejected for having no matches.)
  • the juggle function can include a feature that allows a speaker to fix the position of a word. In all combinations the word would then have the position specified.
  • the system program would include an input, call it "Sure,” signifying that the speaker is certain of the position of a word.
  • the juggle function is best combined with an interactive look-up system that guides the speaker.
  • the key guide is the one telling the speaker she is stuck.
  • These guides works basically the same way as those described in section 6, except that they have to try more abbreviations. How though does the program suggest an input to enter when the speaker does not know the word order? One way is for the guide to select an input to suggest, then also find the word the speaker has entered that corresponds more to that input more than any other word the speaker has entered. (We presume the suggested input includes a letter.) The function then suggests to the speaker that he enter the next (or last) letter in that word. Thus the suggested input is translated to apply to a word the speaker has identified. Probabilistic Sorter of Customer Demand
  • a random number generator can be used to sort customers according to whether they will pay a price, x, called the "full price,” or a lower price, y, called the “discounted price.”
  • Customers are sorted by the uncertainty of receiving a commodity. It is assumed that customers who would pay full price need the commodity and would not tolerate the uncertainty of only possibly receiving it.
  • a general method for implementing this principle has three conditions: 1) A customer signs up for the chance to win. 2) The customer pays nothing up front, paying only if he or she is picked randomly to have the right to buy at the discounted price. 3) The probability of the customer winning is set precisely.
  • a second problem is that full payers will try to get the discounted prices.
  • One way to stop full payers from doing this is to use uncertainty along with time.
  • the idea here is to make the customer uncertain as to when the commodity can be purchased. It is assumed that the customer who will pay full price will not tolerate an uncertain delay. Thus, a business can set an undisclosed time period and then let potential customers have a random chance of buying the product or service at the discounted price after that period.
  • a person can have a probability of getting the discount at a certain date or the date itself can be random. It is also possible to make it probabilistically near certain (or even certain) that a person will win the right to buy at a discount but to make the date random, thereby creating the necessary uncertainty.
  • the airline would use customers such as this one to fill planes. Thus if a flight from NY to LA was 2/3's full, the airline could check its list of "random buyers" and pick some randomly to win the discounted seats. The winners would get discounted tickets while the airlines would get extra revenue above variable costs while not losing full payers. (Note: A business can let customers specify the discounted price they are willing to pay. The business could then also sort the customers by how much they say they will pay.)
  • a probabilistic sorter includes at minimum an RNG and may include means for: registering 200 customer identification information, setting 201 time periods when a customer is eligible to win, setting 202 the chances of winning, operating 203 the RNG to determine whether customer has won, and recording 204 how many times and when a customer has engaged in the RSP.
  • a probabilistic system for sorting customers can include the steps of:
  • This RSP can take place in two basic ways:

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Finance (AREA)
  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)
  • Emergency Alarm Devices (AREA)

Abstract

A computer input system employing an automatic speech recognizer (1). The system is used for finding names in a data-base. The system reduces the number of letters a speaker needs to enter in order to find a name uniquely in the data-base. The system enables the speaker to enter inputs that identify which words in the name the speaker's letter inputs correspond to. The system builds (3) a set of search parameters incorporating both the user's word identifier inputs (5) and letter inputs (6). This set can be called an abbreviation because it usually represents a small fraction of the total number of letters in the name the user seeks to find. Also disclosed is a probabilistic system for sorting customer demand.

Description

Input System for Text Retrieval
Background
Using an automatic speech recognizer to enter a name into a computer is desirable but the number of names far exceeds the number of words that recognizers can recognize. A solution is to spell the names. Yet recognizers have trouble with letters. A solution then is to make the recognizer output its letter guesses and have the speaker confirm the right ones. Yet this way is slow. A faster system is disclosed for spelling names using a speech recognizer.
Summary
A fruitful approach to spelling names is to abbreviate them. A practical abbreviation method should combine user friendliness and efficient data compression. The basics of such a method, and the system for implementing it, are as follows: A speaker has in mind a name she would like to spell. The speaker chooses a word in the name by identifying the position of the word in the name. The speaker then spells the word using a recognizer. The system allows the speaker to go to another word at any time by identifying that word by its position in the name. Because the speaker can freely choose the most unusual word(s) in the name, this method minimizes the number of letters needed to be spelled to specify the name out of a list of names.
List of Figures
Figure 1 shows a flow chart of the basic system for names.
Figures 2 shows a flow chart of the system including additional, useful inputs.
Figure 3 shows a flow chart of the system including erasure functions.
Figure 4 shows a flow chart of the system in combination with a look-up system.
Figures 5-5c show flow charts of the system together with an interactive look-up system.
Figure 6 shows a flow chart of the system with a recognizer that does not confirm inputs.
Figure 7 shows a flow chart of a probabilistic sorter of customer demand.
Description
Disclosed here is a system that enables people to use automatic speech recognizers to spell names into a computer with ease and rapidity. The system create abbreviations that represent names. The abbreviation system can be combined with a look-up system which uses the abbreviations to find names in a data-base. Also disclosed is the invention in combination with an interactive look-up system that guides the speaker in the use of the abbreviation method. Some embodiments are included as well. These are not meant to limit the scope of the invention but only to illustrate the operation of the invention. Part 1 : Some Definitions
Recognizer: Means that enable a computer to have a reasonable chance of converting a speaker's speech inputs into the symbols intended by the speaker. Interactive Recognizer (IR):
Recognizer that allows the speaker to confirm or reject its guesses. Interactive Voice Response
Recognizer (IVRR): IR that outputs its guesses in voice form.
Word: A string of characters. Name: A string of words. A name here is not used in the sense of a proper name. A name may have multiple proper names within it. Compound Name: A string of names. Having more than one name in a full name does not necessarily mean that the full name is compound. A name with multiple names in it can be interpreted as a single name or a compound name. The designer of a system must decide which interpretation is best. For example, Sony Walkman MegaBass could be considered one name or three.
Abbreviation: A compressed text string; used as a set of search parameters.
Letter Input: Input used to spell words. "Letter input" will mean the alpha-numeric symbols and punctuation marks that make up words. Word Input: Input that is itself a full word.
Word Identifier Input: Input that denotes the sequential position of a word in a name. Used to specify what word a speaker's letter inputs correspond to. According to the number it contains, a word identifier specifies the position of all the letters entered after it itself is entered up until another word identifier is entered. For example, "Second word," specifies that the next letters entered are spelling the second word in a name. The most useful word identifiers are the counting numbers; "Word" followed by the counting numbers; the ordinal numbers; and the ordinal numbers followed by "word". If the system include full word inputs, a word identifier would also specify the position of a full word. For example, "Second Word" followed by a word would cause the word to be placed in the second word position of the abbreviation.
Name Identifier Input: Input that denotes what name a speaker's letter inputs correspond to. For example, "Second Name", denotes that the next letters entered are spelling the second name in a compound name. Unlike a word identifier, a name identifier would not necessarily denote sequential position. A name identifier could be descriptive, for instance, "Manufacturer," "Author," "Street," and so on.
Done: Termination input that denotes the speaker has no more inputs for a name. Part 2: The Basic Abbreviation System
The Basic Abbreviation Method
Step 1. The speaker starts by entering the word identifier corresponding to the word in the name that the speaker will be spelling first.
Step 2. The speaker spells the word corresponding to the word identifier just entered. If a speaker returns to a word after having spelled it partially, the speaker continues where he left off.
Step 3. The speaker can stop spelling a word by entering one of the following inputs: a. a word identifier, after which the speaker goes to step 2. b. "Done," after which the speaker stops or goes to step 1.
The Basic Abbreviation System
As shown in Figure 1, the basic system for implementing the method above requires the following elements in combination: A computer, an interactive recognizer (IR) 1 that recognizes and confirms inputs, and a program that executes the steps below for converting the confirmed inputs into an abbreviation:
1. The program waits for a word identifier 2. After this input is entered, the program begins building a set of search parameters, an abbreviation 3, for a name. The program stores the word identifier input as described in the step directly below. After this first input is stored,
2. If a word identifier 5 is entered, the program the stores 4 it in the abbreviation to specify the position of the next letters entered. The position is specified by the number of the identifier.
3. If a letter 6 is entered, the program stores it 7 in the abbreviation in the field defined by the last word identifier entered. Letters are stored in a word in the order they are entered.
4. If "Done" 8 is entered, the program goes to Step 1.
The System for Abbreviating Compound Names
To allow the abbreviating of compound names, the system can include a Name Identifier input that signifies the name the speaker will be spelling. The addition of inputs and functions for handling compound names does not essentially change the system. The method simply includes steps enabling the speaker to signify what name she is spelling. Thus in the first step of the method the speaker identifies the name being spelled, and in the second, identifies the word being spelled. The speaker can change names by saying a different name identifier followed by a word identifier. The name identifier specifies the word identifiers that are entered after it. The extra steps that the system requires are described below:
1. The program waits for a name identifier to be entered. After the name identifier is entered, the program begins building an abbreviation. The program stores the name identifier in the abbreviation as the specifier of the next word identifiers entered. Then, a. If a name identifier is entered, the program stores it in the abbreviation as the specifier of the next the word identifiers entered. b. If a word identifier is entered, the program stores it in the abbreviation in the field defined by the last name identifier entered. c. If a letter is entered, the program stores it in the abbreviation in the field defined by the last word identifier entered. d. If "Done" is entered, the program goes to Step 1.
Part 3: System Including Additional Helpful Inputs
Positional Letter Identifier Inputs ("letter identifiers"): The system can include inputs that denote the sequential position of letters in words. The most useful letter identifiers are those with counting numbers or ordinal numbers, for instance, "Letter three" or "Third letter." The letter identifier is analogous to the word identifier and is nested within it. As shown in figure 2, a letter identifier 31 is stored 32 in the field defined by the last word identifier entered. For example, "Third word," "Fourth letter." Then the letter following the letter identifier is stored 32 in the abbreviation as specified by the number in the letter identifier. For example, a person spelling "Rocklands" might say, "Fourth letter," "K." "K" is then stored as the fourth letter of the word.
Last Letter: As shown in figure 2, the system can include an input, call it "Last Letter," that denotes that the next letter entered is the last letter of the word being spelled. When "Last Letter" is entered 35, the system program registers that if a letter is entered next, the letter is to be stored as the last letter 36 in the last word identified. The system can include an input, call it "Second- to-Last Letter," that works similarly, but refers to the second to last letter of a word.
Skip Letter, Skip Vowel, and Skip Consonant: The system can include an input, which might be called "Skip Letter," that denotes that the speaker is skipping spelling a letter in the word being spelled. When the speaker enters this input, the system stores a blank character, in the abbreviation. The system can also include inputs, which might be called "Skip Nowel," and "Skip Consonant," that denote that the speaker is skipping a vowel and a consonant.
Word Done: As shown in figure 2, the system can include an input 37, which might be called "Word Done," that denotes that all the letters in a word have been spelled. The system program stores 38 this input in the abbreviation under the last word identified. Words Done: The system can include an input 39, which may be called "Words Done," that denotes that all the words in a name have been spelled to some extent. Numeric Value Inputs: The system can include numeric value inputs that denote the number of letters in a word, the number of words in a name, and the number of letters in a name. A numeric input has two parts, a number and a description telling what the number applies to. The program registers the descriptive part and then stores the number as the descriptive part specifies. The program must be designed to recognize the descriptive part which, as mentioned, can vary. Described below are four ways of entering numeric value inputs.
1) By explicit input, where the descriptive part is explicit. In this case, the numeric part and descriptive part may be combined in one input. For example, "Five words," or "Six letters." Another variation is for the descriptive part 45 to be entered first followed by the numeric part. For example, "Number of Letters" followed by "Six." The program stores the number as specified by the descriptive part.
2) By prompt, where the system prompts the speaker to give a numeric value. The prompt is the descriptive part. After a prompt, the number entered is stored as specified by the prompt.
3) By sequential order, where the speaker has the option of entering a numeric value after a certain other input has been entered. The system can be designed to follow a convention whereby after a certain input, the speaker can enter an identifier, a letter, or a digit. If a digit, the digit is one of the three numeric values above. For example, after a word identifier, a digit could denote the number of letters in the word just identified. For example, "Second word," "Four" would denote that the next letters entered belonged to the second word and that the word had four letters. It is also possible to have multiple digits where each digit denotes a different piece of information about the name. For example, a speaker could begin by saying, "two, three, seven." The "two" could denote that there are two words in the name. The "three" could denote that the next letter(s) spell the third word in the name. And the "seven" could denote that there are seven letters in the third word.
4) By word identifier code, where a word identifier denotes more information than just the position of a word in a name. Such a coding method introduces imaginary, null words into a name. These null words can go in front of the real words or can be interspersed between them. If in front, the sequential order of the real words is preserved. If in between, the order of the real words is preserved. From the example above, a speaker could use the word identifier "237th word" which would be equivalent to "2-3-7" above. The system program would be designed to recognize the code in order to store the numeric part of the input. Part 4: Helpful Functions
Erasure Functions: The system can include a step and function with which the speaker can erase a previous input or inputs. As shown in figure 4, the erasure could be at the letter 51 , 52, word 53, 54, 55, or name level. "Erase" 50 followed by any input(s) can signify that that input is to be erased from the abbreviation.
Re-Spelling Function: The abbreviation system allows a speaker to return to a word that has been previously spelled to some extent and spell more of it. The system as described above has the speaker pick up where she left off because letters are stored sequentially in an abbreviation in the order they are entered. However, it may be easier for a speaker to start at the beginning of a word rather than try to remember her place. The system can include a function for eliminating re-confirmations of inputs such that: after a speaker enters a word identifier that has been previously entered, the system program counts the letters already spelled for that word; the program then detects the speaker's next inputs but does not confirm or store them until it detects as many inputs as there are letters already spelled; then it confirms and stores inputs as usual.
Reminder Function: A speaker returning to a word may need to be reminded of where he left off. The system can include a function for reminding the speaker. After a speaker enters a word identifier that has previously been entered, the system program outputs all the letters in the abbreviation stored under that word identifier. After this output, the program stores letters normally (in sequential order following the last letter already stored in the word).
Full Word Acceptance Function: While the system is designed to allow the speaker to abbreviate words and ultimately names, the method can include full word inputs. These can be very useful. Thus a speaker abbreviating "Reggies Bowling Alley," might enter "First Word," "R," "Second Word," "Bowling," and so on. The recognizer would have to be able to recognize a vocabulary of full words in addition to those words used as program commands (such as "First," "Word Done," etc.). Words that are program commands might not be stored in the abbreviation. To accept word inputs as well as letter inputs, the system program would include a function that stores full words. After a speaker enters a word identifier, if the speaker then enters a word that is not a word program input, the word is stored in the abbreviation in the position specified by the identifier. No more letters are stored in that word position. Part 5: Abbreviation System in Combination With a Look-up System
The key use of the system described in the preceding sections is to create an abbreviation that can be used to find a name in a data-base. Therefore, the abbreviation system should be combined with a look-up system that includes: a) a data-base, b) a program for using the abbreviations created to search the data-base, and c) functions for outputting the results of the searches. This combined system would execute the same steps as the abbreviation system described above with the steps of the look-up system being added as shown in figure 4:
After the abbreviation program stores an input in the abbreviation, the search program uses the abbreviation to search 81 the data-base for a name that uniquely matches the abbreviation. —If no match is found 82, the outputs a message 83 that the data could not be found, —If a unique match is found 84, outputs the data 85 corresponding to the name, --If a non-unique match is found, the abbreviation program waits for more inputs. As the steps above show, when a mismatch is reached, the system outputs a "no data" message. However, the system may include a "best match" function that outputs the best match for the abbreviation. Also, after a "no data" message, an erasure input could be entered, allowing the speaker to alter an abbreviation without starting all over.
Speaker Ignorance
When using an abbreviation method to look-up a name, the speaker will usually not know enough to specify the name with a minimum number of inputs. Thus, it is useful for the look-up system to include interactive, guiding functions that reduce redundant inputs. Once the speaker has hit a dead-end, various functions can exit that dead-end. These will be described before interactive, guiding functions.
Exits: Output Functions for Incomplete Abbreviations
An abbreviation is "incomplete" if it does not contain enough information to uniquely specify a name in a data-base. The look-up system should include a function that outputs a message when a speaker has entered an incomplete abbreviation and has decided that he cannot further specify the name. Such a function can be called an exit and various exits are possible in a system. When a speaker has entered a termination input and still no unique match for a name has been found, the look-up program can output: a) a message saying there are too many matched names, b) the data associated with the name that has been requested most, c) data associated with all the matched names, d) missing parts of the matched names and let the speaker choose one part. The corresponding name and data can then be outputted (For example, the data-base might have two listings that are the same except for the address. The system can output one address or the other and have the speaker confirm it or not.). Part 6: Interactive Guiding Functions
As mentioned, when using the abbreviation method to find a name in a data-base, a speaker can get stuck entering inputs unnecessarily. Before discussing this problem further, a toy data-base will be introduced below that will illustrate points throughout this section. Bombay Club Internal Medicine Group
Federal Election Committee McDonalds, 5400 Georgia
Federal Express McDonalds, 3400 Jeniffer
Fetoosh Restaurant McDonalds, 1200 K
International Management Association Zei Club
International Management Group Zei Club Vacations
1. Stuck in Part of a Word
The speaker can get stuck spelling a part of a word that is fully specified by previous inputs. This happens when the part is common to other words in the data-base. For example, say a speaker is trying to match "Internal Medicine Group" above. Once he enters "I," he has narrowed his search to three names. Yet if he continues to spell "N-T-E-R-N-A" he will make no progress until he gets to "L." In other words, the "I" has specified "N-T-E-R-N-A" as well.
2. Stuck in a Full Word
A speaker can get stuck spelling a word that has been fully specified by previous inputs. This happens when the word is common to other names in the data-base. For example, say a speaker wants to match the name "Zei Club." If he enters "Second word," "C," this letter narrows down the list of names to three, all of which include "Club" as the second word.
3. Stuck in Multiple Words
A speaker can get stuck spelling more than one word that is fully specified by previous inputs. This can happen if the speaker does not know all the words in a name. For example, a speaker trying to match a Sony Walkman WFF24 might specify "Sony" and "Walkman," but if he does not know the last word, the model number, he is stuck spelling the first two words to no avail.
4. Stuck in One Name (or more-) of a Compound Name
A speaker can get stuck spelling a name that has been fully specified. This can happen if he does not know all the names in a compound name. He may then be stuck at a multiple match. For example, say the speaker is seeking to match a McDonalds above. Once he enters "M," he has specified the first name. Spelling the rest of "McDonalds" is unnecessary. What is needed is part of the second name, the street address.
Interactive Look-Up System to the Rescue
The look-up system can include functions that "look ahead" into the data-base and tell the speaker when he is stuck. These functions can also suggest inputs that will efficiently specify the name sought. These functions may be called guides. There are two types of guides: probabalistic guides and definitive guides. Probabalistic guides yield suggestions that are good guesses.
Definitive guides yield suggestions that are certain. A system can, and usually would, include both types of guides. These guides each come in two types: guides that tell a speaker he is stuck and guides that output suggested inputs. Guides output advice messages such as, "Try the third word," or "What is the third word?" Messages should be kept short. A useful form of message is a message that is conveyed by a short tone. For example, a beep could mean that the speaker is stuck in a word or a name.
Conditions That Trigger Guides
Before describing interactive guides, a quick discussion is in order about the conditions that trigger these functions to operate and output advice. In some cases, these functions may continually operate, checking the abbreviation against the data-base and then when certain conditions are met, outputting advice. In other cases, the triggers are simpler and do not involve the interactive guides checking the data-base. The conditions are, of course, set by the designer of a system and can be various. A system can include a combination of these. For example, an interactive guide can be triggered to output advice when: a) a certain number of inputs has been entered for a word or name, b) the number of names matched is less than a certain number, c) the speaker has made less than a certain amount progress after having entered a certain number of inputs, d) the speaker enters a command, which might be called "Suggest," that denotes that the speaker desires the system to provide advice, e) the interactive guide finds that a certain input is expected to narrow down the list of matches by more than a certain amount, f) the interactive guide calculates the speaker's expected progress and that progress is below a certain amount.
Definitive Guides That Tell a Speaker When She Is Stuck
To stop a speaker from getting stuck in a name, a look-up system in combination with the abbreviation system can include a function that: a. Examines the list of all the compound names in the that match the abbreviation. b. Compares all the names in that list corresponding to the last name identifier entered. c. If all the names compared are identical, outputs a message telling the speaker that no more progress can be made in the name corresponding to that identifier.
As shown in figure 5, to stop a speaker from getting stuck in a word, the look-up system in combination with the abbreviation system can include a function that: a. Examines 90 the list of all the names that match the abbreviation. b. Compares 91 all the words corresponding to the last word identifier entered. c. If all the words compared are identical 92, outputs a message 93 telling the speaker that no more progress can be made in the word corresponding to that identifier. For example, taking the toy data-base, if a speaker enters "First Word," "Z," the look-up system matches two names : "Zei Club" and "Zei Club Vacations." The interactive guide compares the first words in the two names. The words are identical. Hence the guide outputs a message that no more progress can be made spelling the first word in the name.
To stop a speaker from getting stuck in a word part, the function can also include these steps: d. If all the words compared are not identical,
—Find the number of consecutive letters, N, that are identical in every word compared,
— If N > M (a threshold value), output a message telling the speaker that no progress can be made in the word for N letters.
Suggested Inputs Defined
Before describing definitive guides that suggest specific inputs, some remarks are in order about suggested inputs. These remarks apply to both definitive and probabilistic guides. Suggested inputs are inputs and sequences of inputs that a guide tests for possible outputting as advice. The term "suggested input" may be a bit confusing because it can refer to both a single input and a sequence of inputs. The reason that both are referred to as a suggested input is that in natural language a sequence of inputs and a single input are often phrased the same way. For example, a guide might output a message, "Enter the number of words in the name." To enter this information the speaker may need only a single input. Another message might be, "Spell the second word." To enter this information the speaker needs a sequence of at least two inputs. A suggested input can involve multiple letters because a guide can test the value of spelling two or more letters in a row. Thus, when a guide compares the information value of one suggested input to another, a single input may be compared to single input or to a sequence of inputs. There is no formula for deciding what inputs should be tested.
Calculating the Value of a Suggested Input
In order to suggest inputs, both definitive and probabilistic guides must calculate the information value of different inputs in a set of suggested inputs. Before describing these formulas and their implementation in guides, it should be noted that they are not meant to be the only possible formulas or even the best formulas in all situations. They simply illustrate the type of formulas that an interactive guide requires in order to suggest inputs. (Note: A guide can include a ranking of inputs according to user friendliness, so that, given two informationally equivalent inputs, the guide outputs the more user friendly choice.)
Calculating the Information Value of an Input
Information theory provides elementary formulas for measuring the value of a piece of information (an input). While a variety of these can be used in an interactive guide, all share the same idea. The idea is that the value of an input is measured by how many names it knocks out of a list of matches; by how much it narrows down the list of matches. A formula, call it INFO-
VALUE(Input, Name), calculates the value of an input applied to a name. That's because the value of an input depends on what name the speaker is spelling. "Applying an input to a name" means that the function assumes that the speaker is spelling a certain name. The function then finds the letter or numeric value that corresponds to that input in that name. This letter or numeric value might be called the Resulting Input. An example: If the name is "Zei Club" and the function applies "Second Word," "Last Letter," then the Resulting Input is "B."
INFO-VALUE(Input, Name)
INFO-VALUE(Input, Name) executes the following steps:
1. Selects a name from the set of names matched by the abbreviation.
2. Selects an input from a set of suggested inputs.
3. Applies the input to the name, yielding a Resulting Input.
4. Stores the Resulting Input in the abbreviation thereby creating a hypothetical abbreviation.
5. Finds the set of names that match the hypothetical abbreviation.
6. Subtracts these hypothetical matches from the original set of matches (which yields the number of matches the input would eliminate if the speaker was spelling the selected name).
7. Divides the number of matches eliminated by the original set of matches minus one. [Matches eliminated / (Original matches - 1)].
The ratio in step 7 measures of the value of the input selected applied to the name selected. For example, taking the toy data-base, say a speaker enters "First Word," "F-E." These inputs result in three matches: "Federal Election Committee," "Federal Express," and "Fetoosh Restaurant." If INFO- VALUE applies Next Letter to the name, "Fetoosh Restaurant," the Resulting Input is "T," which eliminates two matches and leaves just one, "Fetoosh Restaurant." Thus, INFO- VALUE of Next Letter applied to "Fetoosh" is (2 / (3-1)) or 1.0 ("T" has eliminated 100% of the "false" matches).
A Definitive Guide That Suggests Inputs
As shown in figure 5a, a look-up system in combination with the abbreviation system can include a function that: a. Examines the set of all the names in the data-base that match the abbreviation. b. For each name, calculates 100 the value of the next letter being entered in the word corresponding to the last word identifier entered. (In other words, the function first checks all the names to find the value in each case of the next letter in the word currently being spelled.) c. If INFO-VALUE(Next Letter) is 1.0 for all names 101, does nothing, d. If not 101,
—Takes a set of potential inputs 103.
—Calculates 103 the information value of each input applied to all the matched names. — If INFO- VALUE of an input is 1.0 for all names 104, outputs a message 105 telling the speaker that that input will uniquely specify the name.
Suggesting Inputs that Do Not Uniquely Specify a Name
The definitive guide described above suggests to the speaker an input that uniquely specifies a name in all cases. It may be though that no input will do this. And yet it may also be that certain inputs will have much higher values in all cases than the next letter of the word currently being spelled. In this case, a definitive guide can check the value of alternative inputs and suggest the one with the highest value.
Probabilistic Guides
Probabilistic guides give advice that is probable (e.g., "You are probably stuck," or "You should probably spell the second word."). The information value of an input may vary widely, being high when applied to certain names and low when applied to others. A conclusion about every name is often not possible. And so, what a probabilistic guide does is sum the value of an input over all the names the speaker might be abbreviating. The input with the highest total is the one that has the highest value, on average (an average can be taken yielding the expected value of the input). A second toy data-base is introduced to illustrate points about probabilistic guides: Sony W2FF Sony W2FG Sony W2FH Sony Z9LH
For example, taking this toy data-base, the input "First Letter," "Second Word," applied to the first three names has an INFO- VALUE of 1/3 (it knocks out only one name, the fourth name). When the same input is applied to the fourth name though, the INFO- VALUE is 1 (it knocks out the other three names). The total then is (1/3 + 1/3 + 1/3 + 1) = 2. If we take another input, say the last letter of the second word, we find that the total INFO- VALUE for the first two names is 1.0, and for the second two names is 1/2, a total of 3. The problem with a simple sum, like this one, where each name has an equal weight is that in most real world situations each name will not have an equal weight (weight here means the probability of being abbreviated). What is needed is a weighted sum. How the weights are determined depends on the application of course. It is worth noting though that in many situations, the weights should come from the actual usage of the data-base itself. A guide can therefore include a demand function that measures how much a name is requested over time.
A Probabilistic Guide That Determines Whether or Not the Speaker Is Probably Stuck
Three procedures for defining whether a speaker is stuck in a name, word, or word part are: 1. The Percentage of Names with Identical Parts Is Above a Threshold
When examining the compound names that match the abbreviation, a function can find the percentage that have identical names in the position specified by the last name identifier entered. When examining singular names that match the abbreviation, a function can find the percentage that have identical words in the position specified by the last word identifier entered. Likewise, a function can find the percentage of names that have identical word parts in the words specified by the last word identifier entered. When the percentage is above a threshold, the guide can declare that the speaker is probably stuck in the relevant name, word, or word part.
2. The Expected Value of Next N Letters Is Below a Threshold
A function can calculate the expected value of spelling the next N letters of a name, word, or word part. If the expected value of the sequence of letters is below a threshold, the guide declares that the speaker is probably stuck in the relevant part (see example below).
3. The Expected Value of the Speaker's Inputs Is Below a Threshold
A function can calculate not only the expected value of a sequence of letters but also the probability of a speaker entering any given sequence of inputs. This probability can be factored into an expected value function to yield the expected value of the speaker's input. If this expected value is below a threshold, the guide declares that the speaker is probably stuck. Rather than calculate all these probabilities, a guide can use historical data to supply the expected value of a speaker's input at a given stage of entering inputs. The point is that this expected value can be determined in various ways.
Many Definitions of Being Probably Stuck
As the procedures above demonstrate, there are many ways of mathematically defining that a speaker is probably stuck. The point is not the exact definition procedure used in a guide but that a reasonable probabilistic procedure is used at all. An example is given below. To stop a speaker from getting stuck in a word part, a look-up system in combination with the abbreviation system can include a function that: a. Examines the set of names that match the abbreviation created thus far. b. Calculates the expected information value of the next N letters in all the words specified by the last word identifier entered. c. If the expected value is below a certain threshold, outputs a message telling the speaker that she will probably make little progress for the next N letters.
Threshold Definitions of Being Stuck
The procedures above for defining whether a speaker is stuck include threshold values. If the speaker's expected progress is below a threshold, the guide declares that the speaker is probably stuck. A threshold can be a constant. Or, it can vary with the number depending on a variety of factors such as how many inputs have been entered. Or, it can depend on the expected value of other input sequences. Checking the value of other sequences can be useful for it is often counterproductive to tell the speaker he is probably stuck in, say, a word if he is only going to try another word where he is equally stuck. Hence, a guide can include steps for checking the "level of stuckness" in each word in a name. If the expected value of the speaker's next input(s) is below a threshold when all the words are taken into account, she is "stuck all over." Rather than tell the speaker she is stuck in this case, the guide for suggesting specific inputs would be invoked. Guides that tell a speaker he is stuck are best combined with guides that suggest inputs.
Subtleties of Probabilistic Guides That Suggest Inputs
In order to suggest inputs, a probabilistic guide must evaluate a set of alternative input sequences and select the one that has the highest expected value (though user-friendliness can be taken into account). The best probability function to apply in a given situation is often a subjective matter. A quick analogy to baseball makes the point. In baseball, a batting average (Hits / At Bats) is the core formula for measuring a player's ability to get a hit. Will this formula really give a player's chance of getting a hit though? What if the hitter is facing Nolan Ryan? What if the hitter has a tender hamstring? What if the hitter just broke up with his girlfriend? What if the bases are loaded? All such factors could be incorporated into a probability function. At least though, it would still contain a core of (Hits / At Bats). Likewise, a guide can include many factors. At least though, all will contain a core that measures the number of names a suggested input will eliminate if a given name is being abbreviated. As shown in figure 5b, a probabilistic guide that suggests inputs needs to: a. Examine 120 a set of suggested inputs. b. Calculate 121 the expected information value of each. c. Select 122 the suggested input with the highest value.
To illustrate the preceding points about probabilistic guides that suggest inputs, we use again the first toy data-base introduced. For simplicity's sake, we assume that each name has the same chance of being abbreviated. We assume the speaker is trying to abbreviate "Internal Medicine Group." She enters "First Word," "I." These inputs narrow down the search to three names. As shown in figure 5b, the guide calculates 123 the expected value of the next three letters in all the first words remaining and finds that for all three names the expected value of entering those letters ("N-T-E") is 0. The guide therefore compares 124 that value to an expected value threshold, which at this stage is set at, say, .5. Since 0 is less than this amount, the guide then compares 125 the number of inputs already entered, which is two, and finds that that number is below a threshold of, say, five inputs entered. (If it is above, we assume the guide suggests an input.) Thus, the guide outputs a message 126 telling the speaker she is stuck.
Our hero enters "Suggest" 127. The guide then takes 120 a set of suggested inputs which consists, in this imaginary case, of the next two letters of the remaining words. The guide calculates 121 the expected value of each sequence and finds 122 that spelling the second and third words yields the same value. The guide then checks its table ranking the input sequences by user friendliness and finds that spelling the second word is slightly more user friendly than spelling the third. Hence, the guide outputs, "Spell the the second word."
Now, let us say that the speaker did not enter "Suggest" and that the threshold for triggering the guide is a comparison between the best suggested input and the spelling of the next N letters of the current word. In the example just above, the thresholds were an expected value constant (.5) and the number of inputs entered. Say the speaker tries the third word. She enters "Third word." As shown in figure 5c, the guide calculates 130 the expected value of spelling the next, say, three letters of this word and finds that the expected value is 2/3. The guide also calculates 131, 132 the value of the set of suggested inputs, which consists now of spelling the second word. The guide finds that the value of spelling the second word is 2/3 as well. The difference between the two values is taken 133. The result, 0, does not trip the threshold 134, so the guide outputs nothing. After she enters one letter, "G," the guide finds she is stuck again, this time in the left, word "Group." The guide then checks the set of suggested inputs and finds that spelling the second word will yield an expected value of 1.0 within two letters. The guide thus outputs a message telling the speaker to spell the second word.
Part 7: Using a Recognizer That Does Not Confirm Inputs
The system described above uses an interactive recognizer that confirms inputs. By confirming inputs, a single abbreviation is created that is then built upon. However, it is readily apparent that the system could also use a recognizer that does not confirm inputs. In this case, the recognizer would have multiple guesses about a speaker's inputs. As shown in figure 6, the system would use the guesses and permute 140 the possibilities to create multiple abbreviations based on the recognizer's guesses. The abbreviations would be matched against the data-base and the non- matching ones eliminated 141. This "post-processing" of inputs is well known in the field. When a non-confirming recognizer is used in the system, the multiple abbreviations can be weighted according to their probability of being correct. These weights can then be used by the system's interactive guides that calculate the expected value of inputs
It may be best for a system to include both confirming and and non-confirming modes. In particular, inputs with a high probability of being accurately recognized, such as numbers and word identifiers, would usually not be confirmed. Another possibility for combining modes is to have users to first narrow down the search by using confirmed inputs and then continue with non-confirmed inputs. Or, the system can ask for a confirmation when the recognizer determines that the accuracy of the recognition is below a certain percentage. Or, the system could switch from non-confirming mode to confirming mode, in order to knock out certain false matches. The point is that confirming and non-confirming modes can be used together.
Part 8: Function That Juggles Word Order
When using the abbreviation method, a speaker might know a word or words in a name but may not be sure where the word or words go. For example, say a speaker wants to abbreviate "Herman's World of Sports," but the speaker only knows that "Herman's" and "Sports" are in the name. The speaker would then only want to abbreviate these two words. Hence, the system can include a function that "juggles" the word order entered by the speaker, thereby creating multiple abbreviations. If the speaker is unsure of the word order in a name, she can enter an input, call it "Juggle," that causes the function to use the speaker's inputs to create an abbreviation for every possible combination of word orders. The number of words in the name has to be established. Either the speaker will have entered the number of words or the function has a pre-set limit. This set of combinations (multiple abbreviations) is used to search a data¬ base. The combinations not matching any names are eliminated. Each input entered is placed by the juggle function in all the remaining combinations. After an input is placed, another search is executed and more abbreviations may then be eliminated. (A system could allow a speaker to invoke the juggle function after an abbreviation has been rejected for having no matches.)
It is more efficient to juggle when one or more word is in a fixed position. Thus the juggle function can include a feature that allows a speaker to fix the position of a word. In all combinations the word would then have the position specified. The system program would include an input, call it "Sure," signifying that the speaker is certain of the position of a word.
The juggle function is best combined with an interactive look-up system that guides the speaker. The key guide is the one telling the speaker she is stuck. These guides works basically the same way as those described in section 6, except that they have to try more abbreviations. How though does the program suggest an input to enter when the speaker does not know the word order? One way is for the guide to select an input to suggest, then also find the word the speaker has entered that corresponds more to that input more than any other word the speaker has entered. (We presume the suggested input includes a letter.) The function then suggests to the speaker that he enter the next (or last) letter in that word. Thus the suggested input is translated to apply to a word the speaker has identified. Probabilistic Sorter of Customer Demand
One inherent aspect of an open market is that businesses usually must set a single price for a product or service whereas ideally they would set different prices according to how much individual customers are willing to pay. But as people's minds can't be read and as the market is open (meaning it is impractical to set up secret price negotiations with individual customers) businesses usually cannot price discriminate as much as they would like. Yet for many businesses, particularly those with low variable costs, such as information businesses and certain capital intensive businesses, it would be quite advantageous to be able to price discriminate. Of course, businesses do the best they can. For example, airlines have different prices depending on when a person buys a ticket. Such attempts can be improved on.
The question is twofold. One, how to sort customers according to how much they are willing to pay? And two, how to prevent customers who are willing to pay a higher price from taking advantage of a lower price? The method outlined below does not purport to answer these questions well, only to give a poor, partial solution but one, nevertheless, that can have significant impact on certain industries.
A random number generator (RNG) can be used to sort customers according to whether they will pay a price, x, called the "full price," or a lower price, y, called the "discounted price." Customers are sorted by the uncertainty of receiving a commodity. It is assumed that customers who would pay full price need the commodity and would not tolerate the uncertainty of only possibly receiving it. A general method for implementing this principle has three conditions: 1) A customer signs up for the chance to win. 2) The customer pays nothing up front, paying only if he or she is picked randomly to have the right to buy at the discounted price. 3) The probability of the customer winning is set precisely.
The problem with this method is that customers will try to enter the random selection process (RSP) more times than they are allowed, thereby increasing the probability of winning above the level set by the business. To stop this, a business' main defense is to record customer identification information and reject repeat attempts.
A second problem is that full payers will try to get the discounted prices. One way to stop full payers from doing this is to use uncertainty along with time. The idea here is to make the customer uncertain as to when the commodity can be purchased. It is assumed that the customer who will pay full price will not tolerate an uncertain delay. Thus, a business can set an undisclosed time period and then let potential customers have a random chance of buying the product or service at the discounted price after that period. A person can have a probability of getting the discount at a certain date or the date itself can be random. It is also possible to make it probabilistically near certain (or even certain) that a person will win the right to buy at a discount but to make the date random, thereby creating the necessary uncertainty.
Example: A person is interested in a flight from New York to Los Angeles. The full price is $500. And the person is only willing to pay $200. The airline might give this potential customer, say, a 1/4 chance to buy the ticket at $200 at an unspecified time. The person would register for this offer. The registration would include the person's identification information and the date of registration. The airline would wait a period of time and then pick (randomly or non-randomly) a date or dates on which to give this person a random chance of buying the ticket at $200.
The airline would use customers such as this one to fill planes. Thus if a flight from NY to LA was 2/3's full, the airline could check its list of "random buyers" and pick some randomly to win the discounted seats. The winners would get discounted tickets while the airlines would get extra revenue above variable costs while not losing full payers. (Note: A business can let customers specify the discounted price they are willing to pay. The business could then also sort the customers by how much they say they will pay.)
As shown in figure 7, a probabilistic sorter includes at minimum an RNG and may include means for: registering 200 customer identification information, setting 201 time periods when a customer is eligible to win, setting 202 the chances of winning, operating 203 the RNG to determine whether customer has won, and recording 204 how many times and when a customer has engaged in the RSP. A probabilistic system for sorting customers can include the steps of:
1. setting the probability that a customer will be able to buy a commodity at a certain price,
2. recording the customer's identification information,
3. recording that the customer has engaged in the RSP and recording when,
4. operating the RNG to select whether a customer has the right to buy at the discounted price.
This RSP can take place in two basic ways:
I. a. said probability being set at X/N where X is an integer, b. said random number generator selecting an integer from 1-N, c. if the integer selected is less than or equal to X then awarding 205 the customer the right to buy at a discount. π. x. dividing 206 a period of time into N sub-units, y. the RNG selecting an integer and from 1-N, z. awarding 207 the customer the right to buy at a discount during the sub-units selected.

Claims

ClaimsI claim:
1. an input system employing an automatic speech recognizer that can recognize and confirm words and numbers used as program commands and can recognize and confirm alpha-numeric symbols (the letters of the alphabet and the digits 0-9); said input system being used for entering search parameters into a data-base system, in order to find names in said data-base; said input system builds a set of search parameters, called an abbreviation, said abbreviation minimizing the inputs necessary to specify a name in said data-base; said input system comprising in combination the following elements: a computer with memory, processor, and output means, along with said speech recognizer as an input means, and a program directing the operation of said input system; said program enabling the system to accept speech inputs from a speaker speaking into said recognizer, said program enabling the system to distinguish among three sets of inputs: a. letter inputs that make up words, said letter inputs including the alpha-numeric symbols, b. word identifier inputs that denote the ordinal position of words in a name, each identifier including a different number corresponding to a different ordinal position for a word, each number being used to define a field that identifies which word a speaker's letter inputs correspond to, c. a termination input that signifies that no more inputs will be stored in an abbreviation; said program directing said input system to execute the following steps:
—first, waiting for a word identifier to be entered, then, after the entry of said identifier, beginning to build an abbreviation and, storing said word identifier in said abbreviation, after which, —if a word identifier is entered, storing it in said abbreviation,
—if a letter is entered, storing it in said abbreviation in the field defined by the last word identifier entered,
—if a termination input is entered, storing no more inputs in said abbreviation and returning to the first step above; said input system being combined with a data-base system provided with search means that use said abbreviation to find a name and data corresponding to said name in said data-base; said data-base system executing the following steps upon an input being stored in said abbreviation: —searching said data-base for a name uniquely matching said abbreviation,
—if said abbreviation matches no name, outputting a message saying that no name matches the name being abbreviated,
—if said abbreviation matches a set of multiple names, outputting no message and waiting for another input to be stored in said abbreviation,
—if said abbreviation matches one name, outputting said name and data corresponding to said name.
PCT/US1994/013279 1993-11-29 1994-11-29 Input system for text retrieval WO1995014974A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU12102/95A AU1210295A (en) 1993-11-29 1994-11-29 Input system for text retrieval

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US08/158,297 1993-11-29
US08/158,297 US5454063A (en) 1993-11-29 1993-11-29 Voice input system for data retrieval
US08/165,676 US5620182A (en) 1990-08-22 1993-12-13 Expected value payment method and system for reducing the expected per unit costs of paying and/or receiving a given ammount of a commodity
US08/165,676 1993-12-13

Publications (1)

Publication Number Publication Date
WO1995014974A1 true WO1995014974A1 (en) 1995-06-01

Family

ID=26854909

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1994/013279 WO1995014974A1 (en) 1993-11-29 1994-11-29 Input system for text retrieval

Country Status (3)

Country Link
CN (1) CN1136356A (en)
AU (1) AU1210295A (en)
WO (1) WO1995014974A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903864A (en) * 1995-08-30 1999-05-11 Dragon Systems Speech recognition
CN105389305A (en) * 2015-10-30 2016-03-09 北京奇艺世纪科技有限公司 Text recognition method and apparatus

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001031627A2 (en) * 1999-10-28 2001-05-03 Canon Kabushiki Kaisha Pattern matching method and apparatus
CN1835077B (en) * 2005-03-14 2011-05-11 台达电子工业股份有限公司 Automatic speech recognizing input method and system for Chinese names
CN111061925B (en) * 2019-12-16 2021-02-19 珠海格力电器股份有限公司 Contact person searching method and device, terminal equipment and readable storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4433392A (en) * 1980-12-19 1984-02-21 International Business Machines Corp. Interactive data retrieval apparatus
US5228133A (en) * 1990-10-01 1993-07-13 Carl Oppedahl Method to perform text search in application programs in computer by selecting a character and scanning the text string to/from the selected character offset position
US5278980A (en) * 1991-08-16 1994-01-11 Xerox Corporation Iterative technique for phrase query formation and an information retrieval system employing same
US5309359A (en) * 1990-08-16 1994-05-03 Boris Katz Method and apparatus for generating and utlizing annotations to facilitate computer text retrieval

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4433392A (en) * 1980-12-19 1984-02-21 International Business Machines Corp. Interactive data retrieval apparatus
US5309359A (en) * 1990-08-16 1994-05-03 Boris Katz Method and apparatus for generating and utlizing annotations to facilitate computer text retrieval
US5228133A (en) * 1990-10-01 1993-07-13 Carl Oppedahl Method to perform text search in application programs in computer by selecting a character and scanning the text string to/from the selected character offset position
US5278980A (en) * 1991-08-16 1994-01-11 Xerox Corporation Iterative technique for phrase query formation and an information retrieval system employing same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903864A (en) * 1995-08-30 1999-05-11 Dragon Systems Speech recognition
CN105389305A (en) * 2015-10-30 2016-03-09 北京奇艺世纪科技有限公司 Text recognition method and apparatus

Also Published As

Publication number Publication date
CN1136356A (en) 1996-11-20
AU1210295A (en) 1995-06-13

Similar Documents

Publication Publication Date Title
US5454063A (en) Voice input system for data retrieval
US6778951B1 (en) Information retrieval method with natural language interface
JP3759242B2 (en) Feature probability automatic generation method and system
Gärdenfors et al. Decision, probability and utility: Selected readings
US6272455B1 (en) Method and apparatus for understanding natural language
Marchand et al. A multistrategy approach to improving pronunciation by analogy
US5062143A (en) Trigram-based method of language identification
US7028907B2 (en) Method and device for data input
US4373726A (en) Automatic gaming system
EP1198272B1 (en) System for linking a unique identifier to an instant game ticket
CA2180087C (en) Method for electronically recognizing and parsing information contained in a financial statement
US6763338B2 (en) Machine decisions based on preferential voting techniques
US4771385A (en) Word recognition processing time reduction system using word length and hash technique involving head letters
Walker et al. Using natural language processing and discourse features to identify understanding errors in a spoken dialogue system
GB2189916A (en) Validating encoding of a character
US6738515B1 (en) Pattern string matching apparatus and pattern string matching method
WO1995014974A1 (en) Input system for text retrieval
WO2002056266A1 (en) Game playing apparatus and method
Feldman et al. Probability: the mathematics of uncertainty
WO2022019275A1 (en) Document search device, document search system, document search program, and document search method
EP0504249B1 (en) A method of automatic verification of personal identity
Lim et al. Does jump bidding increase sellers’ revenue? Theory and experiment
US20220401824A1 (en) Letter-Based Lottery System
JPS63268082A (en) Pattern recognizing device
US5699488A (en) Functional testing of a fuzzy rulebase

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 94194316.X

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): AM AT AU BB BG BR BY CA CH CN CZ DE DK EE ES FI GB GE HU JP KE KG KP KR KZ LK LR LT LU LV MD MG MN MW NL NO NZ PL PT RO RU SD SE SI SK TJ TT UA UZ VN

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): KE MW SD SZ AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN ML MR NE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: CA