Inspired by this xkcd comic, I'm trying to write a computer program that can generate random sentences to be used as pass phrases. However, I think that the pass phrases might be easier to remember if I stick to grammatically correct sentences instead of just using random sets of words. My plan so far is to stick to a simple
<noun>-<adjective>-<verb>-<noun>-<adjective> format and my back-of-the-napkin calculations suggests that this should provide enough variety to make cracking the passwords by brute force infeasible.
The difficulty I am facing now is that to make sure that the sentences I generate are grammatically correct I need a dictionary that has the singular and plural forms of every noun as well as all all the tenses for every verb. Is there anywhere I can find this kind of database? Bonus points if there is data for many languages!
I first considered using some open-source spellcheck dictionaries (hunspell and aspell) because they are available for many languages and contain all the different inflections of the words. However, these spellchecking dictionaries didn't classify the words as noun/verb/adjective or mark what nouns were singular/plural and what was the tense of each verb.
I also tried downloading some dictionaries out of Project Gutenberg but those dictionaries focus on providing definitions (which I do not need) and don't explicitly list all the variations for every word. I would also have to hunt down a different dictionary for each language and write specialized code to parse each of them, which would be a lot of work.