Обработка естественного языка: с чего начать и что изучать дальше
Если вас интересует, что такое обработка естественного языка, как в ней разобраться и как начать его использовать, то эта статья для вас.
Где-то я читала, что если ты встречаешь какой-то вопрос дважды, то возможно хорошая идея - написать об этом в блог. Следуя этому правилу и желанию сохранить в будущем немного времени, вот мой ответ на стандартный вопрос: "Я изучал *такую-то* науку и мне интересно NLP (Natural Language Processing - обработка естественного языка), как мне начать его изучать?"
Перед тем, как вы начнёте, хочу заметить, что приведённый ниже список скорее всего является неполным и служит лишь отправной точкой. Для лучшего ориентирования в потоке информации также приведены краткое описание и оценка сложности. Рекомендуется иметь базовые навыки программирования (например, на Python).
Онлайн курсы
- Dan Jurafsky & Chris Manning: Natural Language Processing - отличное введение в виде серии видео уроков.
- Stanford CS224d: Deep Learning for Natural Language Processing - более продвинутые ML алгоритмы, архитектура нейронной сети для того, чтобы обработка естественного языка.
- Coursera: Introduction to Natural Language Processing - начальный курс NLP от университета Мичигана.
- Введение в обработку естественного языка - первый онлайн-курс по прикладной лингвистике, который фокусируется на обработке русского языка
Библиотеки и открытые ресурсы
- spaCy (website, blog) - Python; новая открытая библиотека с превосходными примерами, API документацией и демо-приложениями.
- Natural Language Toolkit (NLTK) (website, book) - Python; практическое введение в программирование для NLP, в основном используемое для обучения.
- Stanford CoreNLP (website) - Java; высококачественный инструментарий для анализа.
Блоги
- Natural language processing blog (Хэл Дауме)
- Google Research blog
- Language Log (Марк Либерман)
Книги
- Speech and Language Processing (Даниэль Юрафски и Джеймс Х. Мартин) - классический учебник, который раскрывает все базовые аспекты обработки естесственного языка.
- Foundations of Statistical Natural Language Processing (Крис Мэннинг и Хинрих Шютце) - более продвинутые статистические методы обработки естесственного языка.
- Introduction to Information Retrieval (Крис Мэннинг, Прабхакар Рагхаван и Хинрих Шютце) - отличный справочник по ранжированию и поиску.
- Neural Network Methods in Natural Language Processing (Yoav Goldberg) - введение в подходы, связанные с нейронными сетями для НЛП, учебник можно найти здесь.
Другие источники
- Как создать word2vec модель in TensorFlow - практическое руководство.
- Deep Learning for NLP resources - отсортированный по темам обзор современных ресурсов для глубокого изучения.
- Last Words: Computational Linguistics and Deep Learning — A look at the importance of Natural Language Processing (Крис Мэннинг) - авторская статья.
- Natural Language Understanding with Distributed Representation (Кайнгхуан Чо) - выдержки из лекций по ML/NN подходам к NLU (Natural Language understanding - понимание естественного языка).
- Bayesian Inference with Tears (Кевин Найт) - сборник упражнений для исследователей естественного языка.
- Quora: How do I learn Natural Language Processing? - специалисты о том, как учить NLP.
Что вы можете сделать сами?
- Создайте определитель частей речи с использованием скрытой Марковской модели.
- Используйте алгоритм Кока — Янгера — Касами для распознавания контекстно-свободных грамматик.
- Проанализируйте семантическое сходство между двумя словами в тексте.
- Попробуйте использовать Наивный байесовский классификатор, чтобы фильтровать спам.
- Используйте систему проверки правописания, основанную на алгоритме вычисления расстояния редактирования.
- Изучите тематическое моделирование с использованием латентного размещения Дирихле
Автор: Melanie Tosik
Обработка естественного языка: другие материалы по теме
Основы машинного обучения за неделю