Процесс изучения человеческого языка называется НЛП. Людей, углубленно изучающих язык, называют лингвистами, а термин «вычислительный лингвист» применяется к тем, кто применяет вычисления для изучения языковой обработки. По сути, компьютерный лингвист — это ученый-компьютерщик с глубоким пониманием языка, и компьютерный лингвист может применять вычислительные навыки для моделирования различных аспектов языка. Компьютерные лингвисты решают проблемы теории языка, а НЛП — не более чем приложение компьютерной лингвистики.
НЛП больше касается применения компьютеров, работы с нюансами разных языков и создания реальных приложений с использованием методов НЛП. В практическом контексте НЛП похоже на обучение ребенка языку. Некоторые из наиболее распространенных задач, такие как понимание слов и предложений, а также формирование грамматически и структурно правильных предложений, даются людям естественным образом. В области НЛП такие задачи трансформируются в токенизацию, фрагментацию, тегирование частей речи, синтаксический анализ, машинный перевод и распознавание речи. Многие из этих задач остаются самыми сложными задачами, стоящими перед компьютерами.
Зачем изучать НЛП
В этом разделе обсуждение начинается с цикла ажиотажа Gartner, из которого ясно видно, что НЛП находится на вершине цикла ажиотажа. В настоящее время НЛП является одним из редких навыков, необходимых в отрасли. После появления больших данных основная проблема НЛП заключается в том, что НЛП требует большого количества технического персонала, который не только хорошо разбирается в структурированных данных, но и хорошо обрабатывает полуструктурированные или неструктурированные данные. Мы генерируем петабайты веб-блогов, твитов, каналов Facebook, чатов, электронных писем и комментариев. Некоторые компании собирают все эти различные виды данных, чтобы лучше ориентироваться на клиентов и извлекать из них ценную информацию. Чтобы обрабатывать эти неструктурированные источники данных, нам нужны технические специалисты, которые понимают НЛП.
Мы живем в информационный век, мы даже не представляем жизни без Google. Мы используем Siri для большинства основных голосовых функций. Мы используем спам-фильтры для фильтрации спама. В документе Word нам понадобится проверка орфографии. Есть много примеров применения НЛП в окружающем нас реальном мире.
(Изображение с сайта Gartner)
Ниже также приведены несколько примеров удивительных приложений НЛП, которые вы можете использовать, даже не подозревая, что они построены на НЛП.
- Исправление орфографии (Microsoft Word/любой другой редактор)
- Поисковые системы (Google, Bing, Yahoo и WolframAlpha)
- Голосовой движок (Siri и Google Voice)
- Классификация спама (все почтовые сервисы)
- Лента новостей (Google и Yahoo и т. д.)
- Машинный перевод (Google Translate и т. д.)
- IBM Watson
Для создания этих приложений требуется очень специфический набор навыков, вам нужно очень хорошо знать язык и иметь инструменты для эффективной работы с ним. Итак, не реклама делает НЛП одной из самых выгодных областей, а вид приложений, которые можно создавать с помощью НЛП, что делает НЛП одним из самых уникальных навыков.
Для реализации некоторых из вышеперечисленных приложений, а также другой базовой предварительной обработки НЛП у нас есть множество доступных инструментов с открытым исходным кодом. Некоторые из этих инструментов разрабатываются определенными организациями для создания собственных приложений НЛП, в то время как другие имеют открытый исходный код. Вот список доступных инструментов НЛП.
- GATE
- Mallet
- Open NLP
- UIMA
- Стэнфордский инструментарий
- Genism
- Инструментарий естественного языка (NLTK)
Список книг по обработке естественного языка
1. Обработка естественного языка Python
[США] Стивен, Берд Юэн, Кляйн Эдвард, Лопер, перевод Чен Тао, Чжан Сюй, Цуй Ян, Лю Хайпин
Это книга об обработке естественного языка. Так называемый «естественный язык» относится к языку, который люди используют в повседневном общении, например, английскому, хинди, португальскому и так далее. В отличие от искусственных языков, таких как языки программирования и математические обозначения, естественные языки развиваются на протяжении поколений, и поэтому их трудно определить с помощью явных правил. В широком смысле «обработка естественного языка» (НЛП) охватывает все манипуляции с естественным языком с помощью компьютеров, от простейшего сравнения различных стилей письма путем подсчета частоты слов, до наиболее сложного полного «понимания» того, что человек говорит или по крайней мере, до такой степени, чтобы быть в состоянии эффективно реагировать на то, что человек говорит.
Эта книга представляет собой вводное руководство по обработке естественного языка. Его можно использовать для самостоятельного изучения, в качестве учебника для курсов по обработке естественного языка или компьютерной лингвистике или как дополнение к курсам по искусственному интеллекту, анализу текста, корпусной лингвистике. Эта книга практична и сильна, она включает в себя сотни примеров и оценочных упражнений.
Эта книга основана на языке программирования Python и библиотеке с открытым исходным кодом под названием Natural Language Toolkit (NLTK). NLTK содержит большое количество программного обеспечения, данных и документации, которые можно бесплатно загрузить с http://www.nltk.org/. Дистрибутив NLTK поддерживает платформы Windows, Macintosh и UNIX. Настоятельно рекомендуется загрузить Python и NLTk, чтобы вместе с нами опробовать примеры и упражнения из книги.
2. Обработка естественного языка на практике Используйте Python для понимания, анализа и генерации текста
[Америка] Хобсон Лейн, Коул Ховард, Ханнес Макс Хапке, перевод Ши Ляна, Лу Сяо, Тан Кексина, Ван Биня
Эта книга представляет собой практическое введение в обработку естественного языка (NLP) и глубокое обучение. НЛП стало основной областью применения глубокого обучения, а глубокое обучение является важным инструментом в исследованиях и применении НЛП. Книга разделена на 3 части: первая часть знакомит с основами НЛП, включая сегментацию слов, векторизацию TF-IDF и преобразование частотных векторов слов в семантические векторы; вторая часть описывает глубокое обучение, включая нейронные сети, вектора слов. , сверточные нейронные сети (базовые модели и методы глубокого обучения, такие как CNN), рекуррентная нейронная сеть (RNN), сеть с долговременной кратковременной памятью (LSTM), последовательное моделирование и механизмы внимания; третья часть знакомит с практическими аспектами , включая извлечение информации, построение модели ответов на вопросы, проблемы с производительностью и решения для реальных систем, таких как системы и диалог человек-машина.
Эта книга предназначена для разработчиков Python среднего и продвинутого уровня.Она сочетает в себе базовую теорию и практику программирования.Это практический справочник для практиков в современной области НЛП.
3. Обработка естественного языка и компьютерная лингвистика
Бхаргав Шриниваса-Десикан, перевод Хе Вей
В этой книге показано, как применять алгоритмы обработки естественного языка и компьютерной лингвистики для анализа существующих данных и получения интересных аналитических результатов. Эти алгоритмы основаны на современных основных технологиях статистического машинного обучения и искусственного интеллекта, а инструменты реализации легко доступны, такие как Gensim и spaCy в сообществе Python.
Эта книга начинается с изучения очистки данных, изучения того, как выполнять алгоритмы компьютерной лингвистики, а затем использования реального языка и текстовых данных с использованием Python для изучения более сложных тем НЛП и глубокого обучения. Мы также научимся использовать инструменты с открытым исходным кодом для токенизации, анализа и моделирования текста. Читатели получат практические знания о хороших фреймворках, о том, как выбрать такие инструменты, как Gensim, для тематических моделей и как проводить глубокое обучение с помощью Keras.
Эта книга охватывает теоретические знания и практические примеры, чтобы читатели могли применять алгоритмы обработки естественного языка и компьютерной лингвистики в сценариях, с которыми они сталкиваются. Мы откроем для себя богатую экосистему инструментов Python, доступных для выполнения НЛП, и познакомим читателей с захватывающим миром современного анализа текста.
4. Python и обработка естественного языка NLTK
[Индия] Нитин Хардения, Джейкоб Перкинс, Дипти Чопра, Ниш Шоши и др. Перевод Лин Си
В модуле 1 обсуждаются все этапы предварительной обработки, необходимые для задач анализа текста/NLP. В этом модуле подробно обсуждаются токенизация, выделение корней, удаление стоп-слов и другие процессы очистки текста, а также то, как легко реализовать эти операции в NLTK.
Модуль 2 объясняет, как использовать средство чтения корпусов и создавать собственные корпуса. Здесь также описывается, как использовать некоторые корпуса, поставляемые с NLTK. Он охватывает процесс разделения на фрагменты (также называемый частичным анализом), который идентифицирует фразы и именованные сущности в предложениях. В нем также объясняется, как обучать собственные чанкеры и создавать специальные распознаватели именованных сущностей.
В модуле 3 обсуждается, как рассчитать частотность слов и реализовать различные методы языкового моделирования. Также обсуждаются концепции и приложения поверхностного семантического анализа (т.е. NER) и TSD с использованием Wordnet.
Модуль 3 поможет вам понять и применить концепции поиска информации и суммирования текста.
5. Опыт обработки естественного языка Python
Дипти, Чопра, Нишит, Джоши, Ити... Перевод Ван Вэй
В этой книге подробно рассказывается, как использовать Python для выполнения различных задач обработки естественного языка (NLP), и она помогает читателям освоить практику проектирования и создания приложений на основе NLP с помощью Python. Эта книга знакомит читателя с применением инструментов машинного обучения для разработки самых разных моделей. В этой книге четко представлены создание обучающих данных и реализация основных приложений НЛП, таких как распознавание именованных сущностей, системы ответов на вопросы, анализ дискурса, устранение неоднозначности слов, поиск информации, анализ настроений, обобщение текста и разрешение метафор. Эта книга поможет читателям создавать проекты НЛП с использованием NLTK и стать экспертами в смежных областях.
Прочитав эту книгу, вы сможете:
● Внедрение алгоритмов сопоставления строк и методов стандартизации;
● Внедрение технологии статистического языкового моделирования;
● Глубокое понимание разработки стеммеров, лемматизаторов, морфологических анализаторов и морфологических генераторов;
● Разработка поисковых систем и внедрение связанных концепций, таких как определение частей речи и статистическое моделирование (включая методы n-грамм);
● Знаком с родственными понятиями, такими как построение древовидной библиотеки, построение CFG, CYK и алгоритм анализа линейного графа Эрли;
● Разрабатывать системы на основе NER, понимать и применять соответствующие концепции анализа настроений;
● Понимание и внедрение связанных концепций, таких как поиск информации и резюмирование текста;
● Разрабатывать системы анализа дискурса и системы, основанные на референциальном разрешении.