This problem is common when dealing with incomplete contact information for users.
Currently it appears to be about 82% accurate on American names but this is just the framework. The name files are from the US Social Security Administration and are likely in the public domain. The processed files are distributed under the same rules as the original data (which is likely public domain...).
The code is under the Apache 2.0 license.
Comments and suggestions are welcome at email@example.com,
Stephen Holiday stephenholiday.com