Dear Community members,

I am thinking about an interactive machine to teach a school child to write difficult words correctly. As a first step I need a collection of words. I will select a pool of words from this collection. Then I will use the pool to make the machine.

My question is: is there a way to get the words with Mathematica? A constraint is that I need German words.


4 Answers 4


It might be overkill, but with:

DictionaryLookup[{"German", All}]

you get a list of every German word. To be a bit more precise, you could then narrow things with string searches, i.e. DictionaryLookup[{"German", "a" ~~ ___ ~~ "b"}] gets you a list of words that begin with a and end with b. Full documentation is here.


I suggest you build your own kind of database using sources from the web and copy&past the content into a text file. Afterwards you can use the Import functionalities Mathematica offers.

A possible source I think is appropriate: (you may have to filter some words out by hand which you think could be to difficult for your student)


Extracting words from webpages is usually straightforward after examining the structure of the page a little bit. Here is a concrete example:

page = Import["http://www.duden.de/schwierige-woerter", "XMLObject"];

   "span", {"class" -> "field-content"}, {XMLElement["a", _, {s_String}]}] :> s, Infinity]
  • $\begingroup$ I hope you don't mind that I added some example code for extracting the words. Please edit to your liking. $\endgroup$
    – Szabolcs
    Commented Nov 14, 2012 at 17:03
  • $\begingroup$ Very neat:) I never thought about handling the issue programmatically. I must admit compared to your method copy&paste is rather crude. $\endgroup$
    – Sascha
    Commented Nov 14, 2012 at 17:11
  • $\begingroup$ Actually for a simple list like this one you're right that copy-paste is much faster ... I made a small palette for these kinds of tasks a long time ago, it's here (search for "tabular" on the page---I should update that page some day ...). It works fine with this page and TSV paste, I just needed to filter the alphabet (A, B, C...) from the list. $\endgroup$
    – Szabolcs
    Commented Nov 14, 2012 at 18:36
  • $\begingroup$ Thank you very much. Could you please comment on the role of parameters in the operator? Just to understand, how this code works. $\endgroup$ Commented Nov 15, 2012 at 9:34

If you need a more comprehensive list of German words you could download a file such as this, unzip it and then load it with Import.

The default Mathematica German dictionary contains 76155 words, whereas the dictionary available with the link above contains 1328614 words.

  • 2
    $\begingroup$ ideal for school children - make them work! $\endgroup$
    – cormullion
    Commented Nov 14, 2012 at 19:29

You could use the function DictionaryLookup. At least at my machine, it supports German but I'm not sure whether this depends on the installation or not. Just look it up in the documentation.

  • 1
    $\begingroup$ I don't think it depends on installation since it grabs the data from Wolfram servers $\endgroup$
    – ssch
    Commented Nov 14, 2012 at 16:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.