Чтобы найти собственные имена в неструктурированном тексте, техническим именем проблемы, которую вы пытаетесь решить, является Распознавание именованных сущностей или Извлечение именованных сущностей. Существует множество различных инструментальных средств и исследовательских работ на естественном языке, в которых реализованы различные алгоритмы для решения этой проблемы. Ни один из них не получит идеальной точности, но может быть достаточно для ваших нужд. Я сам не пробовал, но на веб-странице Stanford Named Entity Recognizer есть ссылка на Ruby Bindings.