POS tagging - which gives you tags that let you look at the tense of the verb - already takes into account sentence context, so it addresses your issues re. accuracy through context. In fact, POS tagging actually doesn't work properly with words by themselves! Look at this example from Ch. 5 of the NLTK book which, given the context in the sentence, lets NLTK differentiate between nouns and verb given homonyms (i.e. given a word like permit that can have different meanings as a verb and a noun):
Let's look at another example, this time including some homonyms:
>>> text = nltk.word_tokenize("They refuse to permit us to obtain the refuse permit")
>>> nltk.pos_tag(text)
[('They', 'PRP'), ('refuse', 'VBP'), ('to', 'TO'), ('permit', 'VB'), ('us', 'PRP'),
('to', 'TO'), ('obtain', 'VB'), ('the', 'DT'), ('refuse', 'NN'), ('permit', 'NN')]
Notice that refuse and permit both appear as a present tense verb
(VBP) and a noun (NN). E.g. refUSE is a verb meaning "deny," while
REFuse is a noun meaning "trash" (i.e. they are not homophones). Thus,
we need to know which word is being used in order to pronounce the
text correctly. (For this reason, text-to-speech systems usually
perform POS-tagging.)