Analyzing rules of articles in languages
A language is a result of a complex historical development. If the development were guarded by simple language generating rules it would've been different like some artificial languages such as the Esperanto language.

Many natural languages have nouns split into several categories. These categories are often referred to as the Gender. Though the link between the grammatical gender and the natural or biological gender is not always obvious.

In Slavic languages for instance the gender of a word can be guessed from the flection at the end of the word. E.g. in Russian "облако" (a cloud) is neutral, "-о" is the flection, and "зима" (the Winter) is femenine, "-а" is the flection.

In Old English the category gender did exist but was eliminated during the evolution towards the Modern English. In general all languages that stem from the Latin language inherited some form of grammatical gender (for more details see the discussion in Wikipedia).

When learning the language one has to memorize at least the words and there meaning. In learning languages that keep grammatical gender one has to memorize the gender as well. You can find the gender of a word in any German dictionary.

Look at the small letter f, m, or n, printed in italics next to the word.

E.g. 

Bündel, n a bundle; 

Bus, m a bus;

Tasse, f a cup;

That is "Das Bündel", and "Der Bus", and "Die Tasse".

When a comprehensive dictionary is available for a language with all the nouns annotated with their respective grammatical gender, I guess there is little space left for machine learning. It is much more easy to keep the complete dictionary in memory than to devise a set of rules that would always be prone to errors.