By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
 424,830 Members | 1,746 Online
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,830 IT Pros & Developers. It's quick & easy.

# Find closest matching name

 P: n/a Hello all! I need to display a list of names similar to a spell checker where the list is the closest match to the name entered. Not too sure where to begin with this - any suggestions? Thanks, Joe Nov 17 '05 #1
Share this Question
2 Replies

 P: n/a Here is an approach: Scan each name in the master list (the dictionary), and compute its "distance" from the name entered. Display those names from the dictionary that are reasonably "close" to the entered name. The distance between two strings that is often used is the Levenshtein distance. You can find information on the algorithm from Google. Most implementations of Levenshtein will use a dynamic programming approach. One way to implement dynamic programming as a depth first search in C# can be found at http://www.frontiernet.net/~fredm/dps/Contents.htm chapter 5. The recursive approach to solving dynamic programming problems can be found on the net, or in the references cited at the above link. A completely different approach is to find names that have a similar sound (when pronounced) to the entered name. This is based on phonetics. A major algorithm is Aspell, which has been implemented in Java as "Jazzy". Aspell combines a metapone algorithm and a "near miss" strategy. If you read the article on Jazzy, http://www-106.ibm.com/developerwork...brary/j-jazzy/ , it should give you a good background for starting your research. "Joe" wrote in message news:eg*************@TK2MSFTNGP12.phx.gbl... Hello all! I need to display a list of names similar to a spell checker where the list is the closest match to the name entered. Not too sure where to begin with this - any suggestions? Thanks, Joe Nov 17 '05 #2

 P: n/a Hi Fred, Thank you very much for your reply. I'm going to start reading those links... -Joe "Fred Mellender" wrote in message news:%C*************@news01.roc.ny... Here is an approach: Scan each name in the master list (the dictionary), and compute its "distance" from the name entered. Display those names from the dictionary that are reasonably "close" to the entered name. The distance between two strings that is often used is the Levenshtein distance. You can find information on the algorithm from Google. Most implementations of Levenshtein will use a dynamic programming approach. One way to implement dynamic programming as a depth first search in C# can be found at http://www.frontiernet.net/~fredm/dps/Contents.htm chapter 5. The recursive approach to solving dynamic programming problems can be found on the net, or in the references cited at the above link. A completely different approach is to find names that have a similar sound (when pronounced) to the entered name. This is based on phonetics. A major algorithm is Aspell, which has been implemented in Java as "Jazzy". Aspell combines a metapone algorithm and a "near miss" strategy. If you read the article on Jazzy, http://www-106.ibm.com/developerwork...brary/j-jazzy/ , it should give you a good background for starting your research. "Joe" wrote in message news:eg*************@TK2MSFTNGP12.phx.gbl... Hello all! I need to display a list of names similar to a spell checker where the list is the closest match to the name entered. Not too sure where to begin with this - any suggestions? Thanks, Joe Nov 17 '05 #3

### This discussion thread is closed

Replies have been disabled for this discussion.