How can I generate a random English "sounding" word in .Net?

I know that there have been several reports of generating random words based on large dictionaries or web searches. However, I am looking for a word generator that I can use to create a strong password without characters. I am looking for a reliable mechanism for generating a random, unrecognized English word of a given length.

An example of a word type would be ratanta, etc.

Are there any algorithms that understand compatible syllables and therefore generate a pronounced output string? I know that certain elements of the captcha control style generate these types of words, but I'm not sure if they use an algorithm or if they are derived from a large set.

If there are any .Net implementations of this type of functionality, I would be very interested to know.

+4
source share
2 answers

There are a few things you can do:

1) Explore the structure of the English syllable and generate syllables, following these rules.

2) Use Markov chains to obtain a statistical model of English phonology.

There are many resources on Markov chains, but the main idea is to write down the probability that a particular letter will be after a certain sequence. For example, after "q", "u" is very likely; after "k", "q" is very unlikely (this uses Markov chains of length 1); or, after "th", "e" is very likely (this uses 2-length Markov chains).

If you are following a syllable model route, you can use resources such as this to help you figure out your intuitions about your language.

UPDATE

3) You can make it much simpler without modeling full English, but, say, Japanese or Italian, where the rules are much simpler, and if it is a meaningless word, then it is easy to remember as a meaningless English word. For example, the Japanese have only about 94 valid syllables (47 short, 47 long), and you can easily list them and choose at random.

+2
source

I would use an algorithm

+3
source

All Articles