I was going to steal some of these names but if you wanted to make a snippet compatible for Smaug I would definitely use it :)
You're welcome to any of the names – they're public domain as far as I'm concerned. Sorry, I forgot that 'snippet' had extra meaning in the MUD world – I meant Python code for a style of name generation. I'm afraid I don't know Smaug. OTOH, the namegen() function is pretty simple and shouldn't be too tough for someone to convert. It just picks from the lists produced by the analyze script.
Edit: oh, re: license of code posted on forums, I think that the general community consensus is that you can use it with credit. I suppose if you want an explicit license, you'll have to ask for one (which you did).
You're welcome to any of the names – they're public domain as far as I'm concerned.
What about the code itself? It looks quite nice, but I get paranoid about code that doesn't come with an explicit license.
Barm's minimal nonsense licensing; if you get it from this thread consider it public domain. I say it that way because I've added it to my MUD project which is GPL and I don't want to have to package it again just for licensing. As David mentioned, I would be delighted to be credited (but it's not required). The whole point was to advance the art of gender and demonically inappropriate names. :)
Have you tried using n-grams to generate the names? It works by chopping up inputs into units (probably syllables in this case), and then determining not the frequency of individual units, but the probability of a given unit following another unit. This way, you end up with units more likely to actually seem to fit together..
Originally, I was going to try using Markhov chains but the first thing I ran into was how do I actually break a word into syllables? Take 'pewter' and 'marker' for example. Most people would break them as (pew) (ter) and (mark) + (er). No pattern to that. I didn't really want to manually specify or build a speech synthesis style dictionary (especially when dealing with fantasy names). That's where I took the easier route of (p)(ewt)(er) and (m)(ark)(er) and building from there.
Actually, there is a pattern. Do some searching on language origins and phonetics. A good place to start is looking at word stemming, since in this case you'd probably find "mark" and "pew" or "pewt" to be stems, with "er" or the variation "ter" to be a modifier.
In particular, Tolkien didn't make up his names at random. He actually built an entire language (several, in fact) and then expressed names in that language. The Silmarilian is full of hundreds of names, as well as a breakdown of how they work. :)