As a general rule, it is a good idea to train Mail's junk mail filters so that it can better recognize SPAM.
A solution may be to move your messages automatically to the Junk mailbox and to mark them yourself from time to time...
However, would you think that Mail's filters have stopped learning, this may be due to a corrupted file. You can try deleting the two files it relies on : this will reset it entirely and may take care of the issue you are experiencing.
These files are in ~/Library/Mail and are called :
Note that your rules will be reset too.
Let me know if this helps !