There are serveral regex egines or libraries that have an implementation for stemming, misspelling, or partial match. For example this implementation https://pypi.python.org/pypi/regex has a flag for BESTMATCH that makes fuzzy matching search for the best match