Apparatus for testing the spelling of an alpha/numeric word from a selected language, with allowable errors, through a set membership match, wherein a given vocabulary of correctly spelled words has been coded by binary hash coding and stored randomly within a bulk memory, said apparatus comprising:
- a. means for generating a first plurality of hash address locations for each of the words of said given vocabulary, and for randomizing the distribution of said locations throughout the available memory space of said bulk binary memory device;
- b. said randomizing means comprising table means for generating approximately five randomized initial representations of each word, and outputting each initial representation through a hash board;
- c. said hash board comprising means to randomize each received representation approximately four additional times, thereby producing approximately twenty randomized hash codes for each word in said vocabulary;
- and,
- d. means for inputting said approximately twenty hash code values for each vocabulary word as simple binary indicators into a bulk memory storage device to thereby set indicators at each one of said first plurality of hash address locations;
- and,
- e. means for receiving a test word sequentially generating a second plurality of approximately twenty hash address locations for said test word, which comprises means to sequential pass the test word to said table means and then to said hash board means;
- and,
- f. means for accepting said second plurality of hash address locations and for testing the values of those bits in said bulk memory at each of said second plurality of address locations with the logical operator AND, thereby to determine whether the indicators at all test locations are set, with further means for passing a positive indication if there is a match, otherwise passing a negative indication.