Оглавление
- Векторы слов
- Word2vec
- Идея word2vec
- Понимание разницы между центральным словом и контекстным словом
- Семейство алгоритмов Word2vec: модель Skip-gram, модель Skip-gram с отрицательной выборкой, Continuous Bag of Words.
- Стемминг, лемматизация.

  1. Как лучше справляться с созданием вычислительных систем, которые пытаются лучше угадывать слова.
  2. GPT-3 или Generative Pretrained Transformer 3 — это модель искусственного интеллекта для обработки языка, разработанная OpenAI. Это одна из самых мощных моделей обработки языка, доступных в настоящее время, с возможностью генерировать человекоподобный текст и выполнять широкий спектр задач обработки естественного языка.
  3. Он использует свои обширные знания английского языка и способность обрабатывать и понимать контекст текста, чтобы предсказать, какие слова, вероятно, будут следующими в заданной последовательности. Это позволяет ему генерировать связный и плавный текст, который читается так, как будто он был написан человеком.

Как мы получаем полезное значение в компьютере?

Ответ:
Общее решение НЛП: используйте WordNet, тезаурус, содержащий списки наборов синонимов и гипернимов (отношения «является»)

  • Это правильно только в некоторых контекстах.
  • Отсутствуют новые значения слов. Пример злой, крутой, изящный, волшебник, гений, ниндзя, напыщенный).
  • Субъективный.
  • Требуют человеческого труда для создания и адаптации.
  • Невозможно вычислить точное сходство слов.

Векторы слов

  • При обработке естественного языка векторы слов представляют собой математические представления слов, которые фиксируют значение и контекст слова в числовой форме.
  • Эти векторы обычно создаются путем обучения модели на большом корпусе текста и фиксируют отношения между словами в зависимости от того, как они используются в тексте.
  • Например, векторы слов для слов «кошка» и «котенок» будут похожи, потому что они оба связаны с понятием маленького пушистого животного.
  • Векторы слов полезны для различных задач обработки естественного языка, таких как языковой перевод, суммирование текста и анализ тональности.

Примеры:

  • «кошка» и «котенок» могут иметь схожие векторы слов, потому что они оба связаны с маленькими пушистыми животными.
  • «собака» и «кошка» могут иметь разные векторы слов, потому что это разные виды животных.
  • «счастливый» и «грустный» могут иметь противоположные векторы слов, потому что они представляют противоположные эмоциональные состояния.
  • «яблоко» и «фрукты» могут иметь похожие векторы слов, потому что они оба связаны с едой.

Это всего лишь примеры, и точные отношения между разными словами будут зависеть от конкретной модели и обучающих данных, используемых для создания векторов слов. Однако общая идея заключается в том, что векторы слов фиксируют значение и контекст слов в числовой форме, что позволяет использовать их для различных задач обработки естественного языка.

Word2vec

  • Word2vec — это метод создания векторов слов, представляющих собой математическое представление слов, используемых при обработке естественного языка.
  • В word2vec каждое слово представлено двумя векторами: вектором самого слова и вектором контекста, в котором это слово встречается. Эти векторы используются для обучения модели и создания векторов слов, которые фиксируют значение и контекст слов.

Идея word2vec

  • Чтобы использовать нейронную сеть, изучите отношения между словами на основе контекста, в котором они появляются в большом корпусе текста.
  • Это позволяет модели фиксировать значение и контекст слов в числовой форме, известной как векторы слов.

Пример:

  • Предположим, у нас есть корпус текста, содержащий следующее предложение: «Кошка сидела на коврике». Мы хотим использовать word2vec для создания векторов слов для этого предложения.
  • Во-первых, мы обучаем нейронную сеть на корпусе, используя непрерывный алгоритм набора слов или алгоритм пропусков грамм. Сеть учится представлять слова в многомерном пространстве, где семантически похожие слова сопоставляются с соседними точками.
  • Далее мы вводим в обученную сеть предложение «Кошка сидела на коврике». Сеть обрабатывает предложение и генерирует векторы слов для каждого слова в предложении.
  • Например, вектор слова «кошка» может отражать тот факт, что это маленькое пушистое животное. Слово «вектор» для слова «коврик» может отражать тот факт, что это плоский объект, на котором можно сидеть или лежать. Эти векторы слов фиксируют значение и контекст слов, что позволяет использовать их для различных задач обработки естественного языка.
  • Это очень упрощенный пример, но он иллюстрирует основную идею работы word2vec. Обучая нейронную сеть на большом корпусе текста, word2vec может изучать отношения между словами и генерировать векторы слов, которые фиксируют их значение и контекст.

Word2vec: целевая функция

Точная форма целевой функции будет зависеть от конкретной реализации word2vec, но в целом она будет включать измерение точности прогнозов модели и использование этой информации для настройки параметров модели. Цель состоит в том, чтобы найти значения параметров модели, которые приводят к наиболее точным векторам слов.

Другими словами, целевая функция word2vec определяет, насколько хорошо модель способна фиксировать значение и контекст слов в своих векторах слов. Оптимизируя эту функцию, модель может научиться генерировать более точные и полезные векторы слов.

Поймите разницу между центральным словом и контекстным словом

  • В контексте word2vec центральное слово — это целевое слово, которое модель пытается предсказать, а контекстные слова — это слова, которые появляются в окружающем контексте центрального слова.
  • Например, если в предложении «Кошка сидела на коврике», центральным словом может быть «сидел», а контекстными словами могут быть «The», «cat», «on», «the» и «mat». ” Модель использует контекстные слова для предсказания центрального слова и при этом учится представлять отношения между словами в числовой форме.
  • Центральное слово и слова контекста являются важной частью модели word2vec, поскольку они используются для обучения модели и создания векторов слов, которые фиксируют значение и контекст слов. Используя слова контекста для предсказания центрального слова, модель может изучать отношения между словами и генерировать точные векторы слов.

  • Общая форма функции softmax выглядит следующим образом:

softmax(x) = exp(x_i) / сумма(exp(x_j))

  • где x — вектор входных данных, а x_i — i-й элемент вектора. Функция сопоставляет каждому элементу входного вектора значение от 0 до 1, так что сумма всех значений равна 1. Это делает ее полезной для создания вероятностей классов в задачах классификации.
  • В целом, функция softmax — это мощный инструмент для сопоставления выходных данных моделей машинного обучения с вероятностями, и она широко используется в различных приложениях.

Семейство алгоритмов Word2vec

Семейство алгоритмов word2vec включает модель непрерывного набора слов (CBOW) и модель пропуска грамм, которые обучаются с использованием разных целей, но имеют схожую архитектуру.

1. Модель пропуска грамм

  • Модель скип-граммы — это метод на основе нейронной сети для задач обработки естественного языка (NLP), таких как моделирование языка и изучение представления слов.
  • Он принимает слово в качестве входных данных и предсказывает окружающие слова в контексте входного слова. Модель пропуска грамм использует неглубокую двухслойную нейронную сеть с одним входным и одним выходным слоями.
  • Входной слой представляет входное слово, а выходной слой представляет слова окружающего контекста. В модели используется метод, называемый «встраиванием слов», для сопоставления слов с низкоразмерными непрерывными векторными представлениями, которые фиксируют семантическое и синтаксическое сходство между словами.
  • Во время обучения модель использует функцию активации soft-max на выходном слое, чтобы предсказать вероятности слов контекста при заданном входном слове. Модель минимизирует перекрестную энтропийную потерю между предсказанными вероятностями и истинными вероятностями контекстных слов.
  • Однако основная проблема возникает, когда мы хотим вычислить знаменатель, который является нормализующим коэффициентом, который необходимо вычислить для всего словаря. Учитывая тот факт, что размер словаря может достигать сотен тысяч или даже несколько миллионов слов, вычисления становятся неразрешимыми. Именно здесь в игру вступает отрицательная выборка, которая делает это вычисление возможным.

2. Модель Skip-gram с отрицательной выборкой

  • Это расширение исходной модели скип-грамм, представляющей собой нейронную сеть, которая принимает слово в качестве входных данных и предсказывает окружающие слова в контексте входного слова. Модель скип-граммы с отрицательной выборкой использует выборку «отрицательных» слов, не связанных с входным словом, для повышения эффективности и производительности модели.
  • Во время обучения модель использует функцию активации softmax на выходном слое, чтобы предсказать вероятности контекстных слов при заданном входном слове.
  • Однако вместо того, чтобы иметь один выходной нейрон для каждого возможного слова контекста, как в исходной модели скип-граммы, модель скип-граммы с отрицательной выборкой рассматривает только небольшую выборку отрицательных слов в выходном слое. Эти отрицательные слова выбираются из словаря случайным образом и не связаны с входным словом. Модель минимизирует перекрестную энтропийную потерю между предсказанными вероятностями контекстных слов и истинными вероятностями контекстных слов.

3. Непрерывный набор слов

  • Это алгоритм, который преобразует текст в векторы фиксированной длины. Это возможно путем подсчета количества раз, когда слово присутствует в документе.

Стемминг

  • Stemming — это техника НЛП, которая понижает словоизменение в словах до их корневой формы.
  • Процесс приведения зараженных слов к их основе слова.
  • Стемминг не может быть легитимным словом в языке.
  • Например, корень слова «проблема», «проблема», «беспокойство» и «проблемы» — это «проблема». Беда - это непривычное слово.
from nltk.stem import PorterStemmer
from nltk.corpus import stopwords 
## we use stopwords  because words like {them, them, of, .. etc} are repeated more 
## stops remove these kind of words which do not have much application
## Tokenize
sentences= nltk.sent_tokenize(paragraph)
stemmer= PorterStemmer()
## stemming
for i in range(len(sentences)): # for all the sentences
    words=nltk.word_tokenize(sentences[i]) # word tokenize from each sentence.
    words=[stemmer.stem(word) for word in words if word not in set(stopwords.words('english'))]
    sentences[i]= ' '.join(words)
pd.DataFrame(sentences)

лемматизация

  • Цель лемматизации такая же, как и у стемминга, но она устраняет недостатки стемминга.
  • Лемматизация входит в картину, поскольку она дает осмысленное слово.
  • Лемматизация занимает больше времени по сравнению со стеммингом, потому что она находит осмысленное слово/представление.
  • Лемматизация используется для получения допустимых слов, поскольку возвращается фактическое слово.
  • Дает значимое репрезентативное слово.
import nltk 
from nltk.stem import WordNetLemmatizer
from nltk.corpus import stopwords
nltk.download('wordnet')
nltk.download('omw-1.4')

sentences = nltk.sent_tokenize(paragraph)
lemmatizer = WordNetLemmatizer()

for i in range(len(sentences)):
    words= nltk.word_tokenize(sentences[i])
    words=[lemmatizer.lemmatize(word) for word in words if word not in set(stopwords.words('english'))]
    sentences[i]= ' '.join(words)

pd.DataFrame(sentences)

Серия НЛП будет освещена в следующих блогах. Этот блог является частью моего учебного процесса, не стесняйтесь комментировать, если вы обнаружите какие-либо ошибки в блоге.

Проверьте мои другие блоги







Спасибо за прочтение статьи.

Свяжитесь со мной в Твиттере.
https://twitter.com/amansinganamala