Determining part of speech of most words Write a program to output the part of speech of any word inputted to it.  I doubt that anyone could get a perfect algorithm, so I will give the code a batch of words in order to ascertain what algorithm is the best.

Weighted Scoring:
+10pts for each word identified correctly: http://www.englishclub.com/grammar/parts-of-speech_1.htm (out of 100 randomly selected words)
-1pt for each byte
+5pts for each upvote on your answer    

Rules:
no using external resources (unless they are counted in the size)

UPDATE: Due to the need for a standardized word list for testing purposes, I will be using the list provided in the response to this question. http://www-personal.umich.edu/~jlawler/wordlist  It seems to be a fairly complete list, and will make this a challenge more than a guessing game.
Mathematica

Mathematica has a native database of words (called up by the simple command WordData ) that includes, among other properties, the parts of speech.  Without this database, it would be impossible for me to answer the question.

The word list from here was downloaded.
Once stored, it is called up as follows:

words = Import["wordlist.txt", "Table"];
Length[words]



  69905   


Forty words are randomly chosen from the list:

list = Flatten@RandomSample[words, 40]



  {"mealtime", "deride", "cricketground", "torpedinidae", "rosefish", 
  "akron", "sloppy", "deaden", "assaultive", "mick", 
  "unperceptiveness", "skeg", "pad", "mane", "carvel-built", 
  "night-stop", "monarchy", "corking", "backlog", "scaphopoda", 
  "bagman", "phrthe", "wholesome", "proprietress", "hortus", 
  "unreliable", "farthermost", "fearfulness", "malposed", "stoke", 
  "affiche", "lunatic", "holcus", "devoutness", "macaque", "zenithal", 
  "poetry", "precipitate", "agoraphobic", "snapper"}




The following asks Mathematica to return the parts of speech for the list of 40 words.
The parts of 31 words are identified. 9 words are not recognized.

(s = Select[Flatten@{{#}, WordData[#, "PartsOfSpeech"]} &amp; /@ 
     list, ! MatchQ[#, {_, WordData[_, _]}] &amp;]) // TableForm
Length[s]