Обновить

Комментарии 2

Откуда дерется индекс слова? Почему 42 это яблоко?

Спасибо за вопрос! В примере кода индекс 42- условное число, взятое просто для иллюстрации. В реальности индекс слова формируется на этапе построения словаря при препроцессинге текста.

Как строится словарь и откуда берутся индексы

  1. Токенизация, то есть текст разбивается на слова (токены):
    "Я люблю яблоко и грушу"["я", "люблю", "яблоко", "и", "грушу"]

  2. Подсчёт частот считаем, как часто каждое слово встречается в корпусе.

  3. Фильтрация- оставляем только топ‑N самых частых слов (например, 10 000), отбрасывая редкие

  4. Нумерация- каждому уникальному слову присваивается индекс:

    0 → "<PAD>"   (заполнитель)
    1 → "<UNK>"   (неизвестное слово)
    2 → "и"
    3 → "в"
    4 → "на"
    ...
    1423 → "яблоко"
    2891 → "груша"
    

Cам индекс зависит от: порядка добавления (обычно по убыванию частоты),размера словаря, языка и корпуса (в одном датасете «яблоко» может быть под индексом 1423, в другом допустим 897). Сам по себе индекс не несёт смысла, он просто ключ для поиска в матрице эмбеддингов. Смысл появляется только после обучения: строки матрицы, соответствующие словам «яблоко» и «груша», сближаются в векторном пространстве, даже если их индексы (1423 и 2891) численно далеки друг от друга

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации