Re: [OT] Looking for a text algorithm
The soundex and multiphone algorithms convert strings to sound equivalents: a kind of multiphone algorithm is probably similar to what you are looking for. These were created to allow hashed lookup up family names based on sounds, and (in the case of soundex at least) work on the assumption that spelling mistakes are more common later in words than earlier. They work by mapping letters to a simplified alphabet (or to numbers): soundex uses only 6:--for example, all vowels and h are ignored, and B and P are merged, and then consecutive duplicates are removed. Some spelling checkers work by using the resulting key as a hash into a large sparse table, which contains the correct spelling of words with that rough sound. I gather that the free "aspell" spell-checking software uses some version of multiphone. One more recent rub is that, because English spelling is so variable and because there are so many foreign names and words, it may be more desirable to create multiple keys per word. For example, so that the string "gh" gets mapped to "F" and "". I have been looking at this this week, actually, to see whether to put in a "sounds like" search facility. I think each use case works best with slightly modified algorithms. (One thing I found really interesting is that Thai sometimes shares consonants between syllables: the same consonant is held to terminate the previous syllable and start the next, in some cases.) Cheers Rick Jelliffe ----- Original Message ----- From: "David Megginson" <david@m...> To: "XML Developers List" <xml-dev@l...> Sent: Sunday, March 09, 2003 1:18 AM Subject: [OT] Looking for a text algorithm > I'm looking for references to a specific kind of text algorithm -- the > algorithm should generate a number (say, 32 or 64 bits) for any text > string of any length, similar to a hash. However, it should be > possible to compare the numbers for different strings to tell how > close they are to each other. For example, the numbers for > > 1. To be or not to be. > > 2. Two bees or not two bees. > > 3. I don't know whether to be or not to be. > > should indicate that three strings are relatively close to each other > (while a hash number would give no indication at all). > > I'm asking only out of interest, because I came up with a simple > algorithm to do this while I was in the shower yesterday, and it would > be fun to see how close it is to what the pros use for spam detection > and so on. > > Note that I'm not looking for algorithms based on edit-distance, > bag-of-words, and so on. > > > Thanks in advance, > > > David > > -- > David Megginson, david@m..., http://www.megginson.com/ > > ----------------------------------------------------------------- > The xml-dev list is sponsored by XML.org <http://www.xml.org>, an > initiative of OASIS <http://www.oasis-open.org> > > The list archives are at http://lists.xml.org/archives/xml-dev/ > > To subscribe or unsubscribe from this list use the subscription > manager: <http://lists.xml.org/ob/adm.pl> > >
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format