Комментарии 5
Но гораздо лучше результаты получаются, если мы предложения будем представлять не по одной букве, а подавая на каждый вход нейросети сразу по целому слову (или хотя бы слогами).
Некоторые товарищи в этом с вами не согласны, так что это как минимум спорное утверждение…
Статья по приведенной вами ссылке начинается с фразы "Most existing machine translation systems operate at the level of words", то есть большинство автоматических переводчиков работают с целыми словами. Но в целом я согласен, применяемый сейчас везде word-level это костыль, чтобы упростить архитектуру сети. В идеале она должна работать с буквами, а все необходимые слова и соответствующие им понятия определять сама.
Наиболее близко к этому, пожалуй, ELMo, которая как раз character-level, но при этом неплохо выявляет синтаксис и семантику слов в предложениях.
Но на данный момент лучшие результаты в самых сложных NLP задачах вроде SQuAD, показывает именно BERT.
Классический пример: если из вектора, обозначающего слово "король", вычесть вектор "мужчина", то получится некий вектор-результат. И он чудесным образом будет соответствовать слову "королева". И действительно, "король — мужчина = королева".
В классическом примере было, если я правильно помню, король - мужчина + женщина = королева
. А король - мужчина
— это, наверное, власть
. Надо будет посмотреть, что word2vec выдаёт.
BERT — state-of-the-art языковая модель для 104 языков. Туториал по запуску BERT локально и на Google Colab