Here is a question that I believe could be solved with some data mining and a sophisticated algorithm, but I don't quite know how. Any pointers as to what data sources to use and what algorithm to apply are welcome.Background: I'm a Romanian-Hungarian who is expecting a baby with a Polish-Ukrainian and haven't quite set up our mind in what country we want to settle down. As you may expect, choosing a given name is of uttermost importance and a hot debate. From my side, I am still traumatised by all the hassle I had to go through when somebody would misspell my name as I moved from one country to another. For example, if you were called Adrian you would be blessed in Romania, only to find that you ended up being Adrien is some official French document. So my only requirement is to make it extremely unlikely for the baby's name to be misspelled in some European countries.Problem Statement: Given a set of countries, e.g., France, Germany, Sweden, Poland and Romania, find the list of given names that, when pronounced properly, are unlikely to be misspelled by the locals.More formally: Let p(c, n) be a function that returns the probability of name n being misspelled in country c. Given C a set of countries andp a probability, find N a set of given names, such thatfor all nN and cC, p(c, n) < pInitial thoughts: The core problem is how to implement p(c,n). One could try to approximate it with a heuristic. Clearly a name is likely to be misspelled in two cases:It is little used in that country.It is similar to a different name, that is not little used in that country.I'm not sure how I could use the Internet, e.g.,Wikipedia, to efficiently answer these two questions. How would onelist only fairly frequently used names in a country? How would one look for similarly spelled ones?
How to find hard to misspell given names?
algorithms;artificial intelligence;natural language processing;data mining
There are some approaches that would work better for some languages than others.  For example, soundex (and another description I like) was designed for English pronunciations of names.  With soundex, Michael becomes M240.  This has several steps:First letter is isolated. (M and ichael)All vowels are removed from remainder (M and chl)Consonants are replacedc -> 2l -> 4Left pad zeros.The grouping of the consonant conversions are based on their phonetic similarity - B, F, P and V all map to 1.And there are variations on this over time. It is particularly useful in genealogy where the spelling of a name may change over time, but the pronunciation remains similar.There is also approaches such as match rating which was developed by the airlines for names (rather than American genealogy).The encoding of match rating approach (MRA) is:Delete all non-leading vowels (Michael becomes Mchl and Anthony becomes Anthny)Remove the second constant of any doublesIf the string is longer than 6 characters, reduce the remaining string to 6 characters by taking the first three and last three.The full specification for this can be found on archive.org - note that it is not small (the printed form is 214 pages).The comparisons have a matching threshold based on how long the text is.There are other phonetic algorithms too.So, what I would encourage you to do is either take the soundex as is, take the match rating approach as is, or modify the soundex based on the Romanian consonants and Polish consonants.Remember that with soundex, the consonants are grouped (In Polish, m, n,  are all nasal consonants to be grouped, and you would likely group the labial, dental, and alveolar plosives - be they voiceless or voiced together - granted, I don't know Polish so don't know if I'm just saying things that aren't true there).Then just covert all the names in the database to the two different soundex systems and find out what names have the lowest set of collisions in the different languages.  This gives you distinct names. So that Smith doesn't show up as Smyth.This, however, only solves the name likely to collide with other names and be misheard.  It doesn't address the other way of the name heard correctly, written down incorrectly and for that, one should focus their attention on common names.For example, Michael was a very common name in the US from early 1950 to late 1970. It was really popular.  However, for some reason, the name Micheal was kind of popular in the 1950s (got up to the 83rd most common name at its peak).  And I am certain that people named Micheal constantly got their name misspelled.Thus, you should focus on names where there is one name that dominates the popularity of the name for a given pronunciation.  Glancing at another data consumer for the names by year, you can see that names beginning with Jam... for a boy are a mess with Jamaal, Jamal, Jamar and others.  Incidentally, these names have slightly different soundexes for American (J540, J540 and J560 - the l and r are in different groups even though they are closely related in phonetics).  However, for someone from, say Japan, the there is only one sound in the phonetic region where l and r are pronounced in American English.  This may also pose a challenge with the leading consonants using soundex that one should be aware of (I once worked with a Japanese woman who called herself Risa (with an 'R') rather than Lisa as a Romanization of her Japanese name).You will note that my examples are for the United States. That data is easily accessible.  Apparently there are some things for Poland and Hungarian, and only hints at Hungarian name commonality... I suspect that searching in a language other than English might be helpful there.So, given the soundex for a name, few collisions and the actual spelling is in the set of collisions.  Preferably, this is a common name.  Looking at that hungarian list, going with Krisztin would likely get misspellings while, Zoltn less likely so (#22 most common baby name in 2011 in Hungary!).  That said, you can't go wrong with Michael.