Для извлечения именованных сущностей из текста вы можете использовать Распознавание именованных сущностей (NER).
Для NER в ruby проверьте этот репозиторий:
https://github.com/mblongii/ruby-ner
и это:
https://github.com/diasks2/ruby-nlp#named-entity-recognition
В python вы можете сделать следующее:
Для этого вы можете использовать Spacy NER (Name Entognition Recognition).
import spacy
nlp = spacy.load('en_core_web_sm')
doc = nlp(u'what is the weather tomorrow in France')
for ent in doc.ents:
print(ent.text, ent.start_char, ent.end_char, ent.label_)
Вывод:
(u'tomorrow', 20, 28, u'DATE')
(u'France', 32, 38, u'GPE')`
'GPE' означает 'Геополитическое образование, то есть страны, города, штаты' .
Чтобы узнать больше о Spacy NER, проверьте эту ссылку: ссылка