Может быть огромное увеличение производительности путем ограничения того, какие столбцы возвращаются, если записи пересекают Интернет.
While we're waiting for details on what you're doing, here are a couple of links to lists of common first names, at least in the USA demographic:
I think you'll need these (and/or more) to check against, as your task doesn't sound like something a NLP can do for you without reference information.
I'd look into LingPipe. Check out this demo. By the way, what you are trying to do is called "named entity recognition". It's a difficult CS problem to get right.
OpenNLP имеет распознавание именованных объектов. Проверьте раздел Поиск английского имени в документации. Но мой опыт подсказывает, что он идентифицирует объекты, но с ним не связано никаких тегов. (Чтобы быть точным, я обнаружил, что теги присвоены неоднозначно.) Итак, если у вас есть предложение «Мой друг Джо Смит пошел в магазин Walmart», OpenNLP идентифицирует два названных объекта - «Joe Smith» и «Walmart». Я не мог сделать так, чтобы он пометил «Джо Смит» как личность и «Walmart» как организацию.
Как предложил Мэтт, вы можете попробовать LingPipe, хотя это коммерческий инструмент. Некоторые из альтернатив с открытым исходным кодом: MorphAdorner и Stanford NER .
Вы также можете просмотреть OpenCyc и проекты WordNet как более интересные с семантической точки зрения.