Data Science Toolkit: free-as-in-speech Natural Language Processing & Geo tools
datasciencetoolkit.org
datasciencetoolkit.org
There are a lot of these corner cases, and they're hard to solve. As always, nothing replaces experience when you're doing this kind of work.
The DB lookup part of the problem (the part that Geocoder::US solves) is the straightforward, mechanical part -- but geocoder precision/recall is almost entirely determined by the quality of the parsing. That's a lot harder to do well.