Конкретно для именованных сущностей типа городов или фио, лучше использовать словарь этих сущностей, при нахождении в тексте - заменить на какой-нибудь токен (%город%, %имя%, %фамилия%), и дальше работать с этим токеном. Потому что для логики работы модели почти наверняка не важно, какой именно город был назван; важно, был ли он назван вообще или нет.
Самый простой способ получить векторное представление слова - просто сначала составить словарь используемых слов в датасете, и потом заменить слово на его id в этом словаре или на one-hot представление.
Более умные варианты - это word embeddings, когда id слова соответствует какой-то вектор, полученный заранее или обучаемый в ходе работы модели. Есть еще варианты с кодированием пар\триплетов букв в слове.