It seems WordData isn't complete:
In[508]:= WordData["Alice", "ConceptWeight"]
Out[508]= WordData["Alice", "ConceptWeight"]
In[507]:= WordData["Michael", "ConceptWeight"]
Out[507]= {{"Michael", "Noun"} -> 0.462007}
and is sometimes case-sensitive:
In[1]:= # -> WordData[#, "PartsOfSpeech"] & /@ {"French"}
Out[1]= {"French" -> {"Noun", "Adjective", "Verb"}}
In[2]:= # -> WordData[#, "PartsOfSpeech"] & /@ {"french"}
Out[2]= {"french" -> WordData["french", "PartsOfSpeech"]}
Can anyone write a function to find out if a word W is a verb or a pronoun or whatever, for all correctly spelled english words?