Видео проигрыватель загружается.Воспроизвести видеоВоспроизвестиБез звукаТекущее время 0:00/Продолжительность 2:26Загрузка: 0.00%0:00Тип потока ОНЛАЙНSeek to live, currently behind liveОНЛАЙНОставшееся время -2:26 1xСкорость воспроизведения2x1.75x1.5x1.25x1x, выбрано0.75x0.5xГлавыГлавыОписанияОтключить описания, выбраноСубтитрынастройки субтитров, откроется диалог настройки субтитровСубтитры выкл., выбраноЗвуковая дорожкаPicture-in-PictureПолноэкранный режимThis is a modal window.Начало диалоговго окна. Кнопка Escape закроет или отменит окноТекстColorБелыйЧерныйКрасныйЗеленыйСинийЖелтыйПурпурныйГолубойTransparencyПрозрачностьПолупрозрачныйФонColorЧерныйБелыйКрасныйЗеленыйСинийЖелтыйПурпурныйГолубойTransparencyПрозрачностьПолупрозрачныйПрозрачныйОкноColorЧерныйБелыйКрасныйЗеленыйСинийЖелтыйПурпурныйГолубойTransparencyПрозрачныйПолупрозрачныйПрозрачностьРазмер шрифта50%75%100%125%150%175%200%300%400%Стиль края текстаНичегоПоднятыйПониженныйОдинаковыйТеньШрифтПропорциональный без засечекМоноширинный без засечекПропорциональный с засечкамиМоноширинный с засечкамиСлучайныйПисьменныйМалые прописныеСбросить сбросить все найстройки по умолчаниюГотовоЗакрыть модальное окноКонец диалогового окна.
Ну что ж, можно перейти и к архитектурам. На самом деле, верхнеуровневая архитектура всегда используется примерно одинаковая: сначала идёт слой получения эмбеддингов слов или символов. Для этого могут использоваться дистрибутивно-семантические модели — например, word2vec или FastText, а могут и более сложные — например, предобученные языковые модели. Мы о них поговорим чуть позже. Затем нам нужно сделать так, чтобы вектор каждого слова содержал информацию не только о нём самом, но и о его соседях, то есть о текущей ситуации. Это называется "контекстуализация" — здесь могут использоваться абсолютно любые архитектуры нейронных сетей (свёрточная, рекуррентная, механизм внимания, предобученные языковые модели, и так далее). Важно лишь только, чтобы эти модели не меняли длину входной последовательности — мы ведь, в итоге, хотим предсказать классы для каждого слова. Затем, полученные контекстуализированные признаки мы отображаем в пространство вероятностей меток. Чаще всего мы делаем это, опираясь только лишь на один вектор. Столбцов в этой матрице вероятностей — столько, сколько меток у нас есть, это число зависит от количества типов сущностей (которые мы распознаём) и используемой схемы кодирования. И последний шаг — согласовать метки соседних слов между собой. На этом шаге, например, исправляются ошибки, когда после окончания сущности идёт среднее слово — такого встречаться не должно. При этом, выбирается наиболее вероятное сочетание меток. Не всегда, но чаще всего, здесь используется специальный вид графических вероятностных моделей — это "условные случайные поля" или CRF (conditional random fields). Также последнего шага может и не быть вообще — он может быть просто не нужен, это зависит от конкретной задачи. Но, в остальном, такая схема используется чаще всего и, на сегодняшний день, позволяет получить наилучшее качество решения задач такого рода. Естественно, при наличии обучающей выборки достаточного размера — это ведь нейросети.

К сожалению, у нас пока нет статистики ответов на данный вопрос, но мы работаем над этим.