Как получить вектор из слова на кириллице?

Очень нужен пример получения вектора одинакового размера для русских слов.
У меня например есть слова городов:
  • Питер
  • Нижний новгород
  • Уфа
  • Владивосток
  • и т.д.


Нужно получить нормализованный вектор из каждого слова. Этот вектор я буду подавать на вход нейронной сети.

Если можно, скиньте пример кода на python.
  • Вопрос задан
  • 907 просмотров
Решения вопроса 1
DanilBaibak
@DanilBaibak
Machine Learning engineer
Word2vec тебе в помощь. Игралчся с векторным представлением слов для собрания книг про Гарри Поттера.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@ivodopyanov
NLP, python, numpy, tensorflow
Конкретно для именованных сущностей типа городов или фио, лучше использовать словарь этих сущностей, при нахождении в тексте - заменить на какой-нибудь токен (%город%, %имя%, %фамилия%), и дальше работать с этим токеном. Потому что для логики работы модели почти наверняка не важно, какой именно город был назван; важно, был ли он назван вообще или нет.

Самый простой способ получить векторное представление слова - просто сначала составить словарь используемых слов в датасете, и потом заменить слово на его id в этом словаре или на one-hot представление.
Более умные варианты - это word embeddings, когда id слова соответствует какой-то вектор, полученный заранее или обучаемый в ходе работы модели. Есть еще варианты с кодированием пар\триплетов букв в слове.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Составляете алфавит, затем по каждой букве берёте процентную позицию в алфавите, принимая, что весь алфавит - это 1.0.
26+33 = 59 (eng+рус => суммарный алфавит)
1/59 = 1*0,016949 (первая буква алфавита)
2*0,016949=0,033898 (вторая буква алфавита)
59/59 = 1.0 (последняя буква алфавита)
И записываете их в массив друг за другом в том порядке, в котором они стоят в слове.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы