Как начать правильно!

Начать работу в новой области не всегда легко, если у вас нет нужных ресурсов или не хватает важной информации, даже если эта область так интересна, как обработка естественного языка!

Последние два года я изучаю НЛП, и есть несколько вещей, которые мне хотелось бы знать до того, как я начал получать степень магистра. В этом посте я расскажу вам о четырех главных вещах, которые сэкономили бы мне массу времени, когда я начал изучать НЛП.

1. Изучите основы и библиотеки Python

print("Hello world!")

В настоящее время Python является самым популярным языком программирования для машинного обучения, искусственного интеллекта и НЛП. По сути, он имеет доступ к большому количеству полезных библиотек и удобен для пользователя, как объясняется в этой статье.

Вы должны тренировать свои базовые навыки обработки текста и практиковать такие функции Python, как split(), lower() и т. д. Знание структур данных (списки, словари, наборы) и способы их обработки также важны (срезы списков, перебор словарей в цикле, функции zip() и enumerate() ).

Есть несколько важных библиотек Python, с которыми вам следует ознакомиться:

  • NLTK предлагает множество полезных инструментов для обработки языка, включая токенизаторы, парсеры, классификаторы, а также текстовые корпуса, которые вы можете использовать в своих проектах.
  • NumPy использует очень эффективные объекты массива и способы работы с ними. Он используется в большинстве библиотек машинного обучения, поэтому к нему обязательно нужно привыкнуть.
  • Pandas очень удобен для хранения ваших данных в легко интерпретируемых объектах DataFrame.
  • Matplotlib пригодится для построения графиков, визуализации данных и наблюдения за результатами.

Numpy, Pandas и Matplotlib очень популярны на стороне машинного обучения NLP, и вы часто будете сталкиваться со следующими строками в начале скриптов:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

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



2. Разберитесь с математикой

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

Как новичок, вот с чем вы должны ознакомиться, углубляясь в НЛП:

  • Вероятности важны для языкового моделирования и понимания концепции n-грамм. Этот пост на Medium отлично объясняет вероятности для НЛП, посмотрите!
  • Линейная алгебра используется для вычисления функций потерь при обучении вычислительной модели и функций регуляризации, чтобы сделать ваши модели более надежными. Знание векторных/матричных операций также поможет вам.
  • Функции, называемые в машинном обучении функциями активации, используются для выполнения линейных и нелинейных преобразований в нейронных сетях. В этом посте перечислены самые популярные функции активации и объясняется, как они работают.
  • Основные концепции исчисления очень важны для понимания основных процессов машинного обучения, таких как градиентный спуск и обратное распространение. Фреймворки машинного обучения, такие как TensorFlow или PyTorch, реализуют их за вас, но вы все равно должны понимать их назначение.
  • Показатели оценки — это ключ к измерению производительности вашей системы НЛП, поэтому, если вы еще не знакомы с точностью, отзывом и точность, сейчас самое время это сделать. Затем вы можете узнать о более сложных метриках, таких как затруднение, BLEU, кросс-энтропия, RSME и т. д. Каждая задача НЛП требует определенных показателей, поэтому их знание даст вам значительное преимущество.

Чем больше вы знаете об основах математики, тем легче вам будет понять основные концепции НЛП. Но хватит о математике!

3. Настройте рабочую среду

Как будущему мастеру НЛП, вам довольно часто придется создавать новую, чистую среду программирования для нового проекта. Но если вы новичок, то настройку вашего самого первого проекта можно сделать намного проще, используя следующие инструменты:

  • virtalenv или venv, полезные для создания изолированной среды на вашем компьютере и удобные, например, для установки/экспорта набора необходимых пакетов Python. Проверьте официальный документ для получения дополнительной информации.
$ virtualenv nlp_directory
  • pip необходим для управления пакетами Python, знание того, как его использовать и работать с зависимостями, может сэкономить вам много времени. Сообщество НЛП весьма активно занимается разработкой новых библиотек, так что следите за ним!
  • Jupyter использует iPython для интерактивных универсальных настроек, которые отлично подходят для визуализации данных, пошагового написания сценариев и создания отчетов. И Jupyter notebook, и Jupyter lab удобны в использовании и часто используются для демонстраций.
$ jupyter notebook
  • Git — это замечательный инструмент управления версиями, который вы должны использовать, чтобы отслеживать продвижение своих проектов и сотрудничать с другими! Ваш код и файлы размещены на GitHub, который, по сути, является золотой жилой для программистов и инженеров НЛП.
  • Знание систем UNIX (Linux, MacOS и т. д.) жизненно важно для НЛП: вам часто потребуется читать и записывать файлы, менять каталоги, получать/устанавливать переменные среды и т. д. Ознакомьтесь с функциями командной строки, такими как ls, grep, wget, sed. /awk, head/tail, cp и mv.

4. Начните читать научные статьи

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

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

  • Привыкайте к важным ключевым словам: исследовательские статьи поначалу будут выглядеть и звучать как ерунда, но через некоторое время вы начнете замечать ключевые слова, которые также появляются в учебных пособиях или классах. Знание этих ключевых слов в конечном итоге улучшит ваше общее понимание области.
  • Вы учитесь у лучших! Статьи часто содержат большой объем знаний и проверяются коллегами-исследователями перед публикацией, что обеспечивает достоверность информации.
  • Не ждите учебника! Следите за последними достижениями в области НЛП на Google Scholar, ACL и других онлайн-ресурсах, которые помогут вам быстрее достичь отличного понимания современного состояния дел методы.

Честно говоря, я хотел бы иметь эти советы под рукой, когда начал изучать НЛП и машинное обучение.

Изучение Python и основ математики поможет вам подняться по кривой обучения, создание хорошей рабочей среды сэкономит вам массу времени на управлении файлами и пакетами, а чтение научных статей поможет информировать вас о новинках.

Спасибо, что прочитали, я искренне надеюсь, что эти советы сэкономят вам время и нервы при изучении НЛП. Не стесняйтесь оставить отзыв и рассказать мне о том, что вы хотели бы знать, когда начали изучать НЛП и машинное обучение!