Nlp: Основы Natural Language Processing для текста / Блог компании Voximplant / Хабр

Содержание

Что такое НЛП и работает ли оно

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

Что такое НЛП

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

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

  • «нейро» — нервная система и мозг;
  • «лингвистическое» — язык и речь;
  • «программирование» — паттерны (шаблоны) поведения.

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

философские концепции конструктивизма и структурализма. Упрощённо их можно описать так: человек не пассивный наблюдатель, а творец этого мира, и изучать его нужно как сложный механизм.

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

Сейчас читают 🔥

Кто, когда и зачем придумал НЛП

НЛП появилось в США в начале 70‑х годов. Его создателями стали

студент‑психолог Ричард Бендлер и профессор лингвистики Джон Гриндер из Калифорнийского университета.

Бендлер увлекался компьютерами и программированием. Обучаясь на математическом факультете, он заинтересовался записями лекций американских психотерапевтов Фрица Перлза и Вирджинии Сатир. Перлз в 40‑е годы отошёл от теории психоанализа и создал собственный метод гештальт‑терапии. Сатир была одним из основателей Института ментальных исследований в Пало‑Альто. В 1972 году она познакомилась с Бендлером и Гриндером и стала сотрудничать  с ними.

Также большое влияние на концепцию НЛП оказали взгляды Милтона Эриксона, Грегори Бейтсона и Альфреда Коржибски. Эриксон исследовал терапевтическое воздействие гипноза. Его речевые гипнотические модели вошли в НЛП под названием «модели Милтона». Бейтсон, британо‑американский антрополог, занимался изучением природы познания и человека. Его образ мышления стал одним из эталонов для создателей НЛП. Коржибски — лингвист, основатель общей семантики, науки о значении слов. Он первым употребил термин «нейролингвистический». Его утверждение «Карта ещё не территория» является

 одним из главных положений НЛП.

Но вернёмся к Бендлеру. Он, увлёкшись психотерапией, стал копировать поведение Перлза и Сатир и ощутил, что может оказывать воздействие на людей: убеждать их в своей правоте, находить общий язык. Бендлер открыл свою школу, и его деятельностью заинтересовался профессор лингвистики в Калифорнийском университете Гриндер. Вместе они стали создавать концепцию НЛП. Свои наработки Бендлер и Гриндер изложили в двух частях книги The Structure of Magic (1975).

Эффект применения НЛП его создатели назвали терапевтической магией. Достаточно быстро концепция и основанные на ней тренинги стали приносить им большие деньги.

В начале 80‑х годов Бендлер и Гриндер повздорили, и их пути разошлись. Они продолжили развивать концепцию, но каждый по‑своему.

Как НЛП должно работать, по мнению его создателей

Сторонники НЛП верят , что оно формирует:

  • способы постановки и достижения целей;
  • умение найти мотивацию;
  • рецепты самосовершенствования;
  • навыки находить общий язык;
  • способность управлять людьми;
  • методы объективной оценки окружающего мира и самого себя.

Главным способом достижения этих целей последователи НЛП считают

умение правильно воспринимать и использовать поступающие в мозг сведения.

Считается, что каждый человек имеет предпочтительный метод обработки информации: визуальный (зрение), аудиальный (слух) или кинестетический (язык тела). Чтобы достичь успеха, нужно стать суперкоммуникатором, то есть научиться чередовать их все. Сделать же это можно, копируя поведение суперкоммуникаторов, абстрагируясь и научившись видеть ситуацию с противоположной стороны. С этим связаны понятия «метапрограммы», то есть фильтры информации, и «категоризация» — структурирование больших объёмов данных.

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

Психолингвисты

считают, что на невербальные средства приходится 60–80% коммуникации.

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

Немного теории

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

Например, значимую роль в НЛП играют пресуппозиции. Это установки в форме афоризма, не всегда связанные с реальностью. Часто они основаны на мировоззрении и научных взглядах Коржибски, Бейтсона и Сатир. Известным примером пресуппозиции

НЛП является фраза Коржибски «Карта не территория, слово не предмет». То есть слово «собака» — это всё то, что вы знаете и думаете о собаках, а не само животное.

Также популярными у сторонников нейролингвистического программирования являются убеждения о том, что:

  • тело и сознание взаимосвязаны;
  • причиной любого действия является позитивное намерение;
  • нет поражений, есть опыт.

Часто в связи с НЛП упоминается модель TOTE (test — operation — test — exit). Она предполагает , что человек для достижения цели повторяет рутинные операции (действие и сверка с образцом).

Ещё сторонники НЛП используют гипноз и самогипноз, а также верят в комплексную латерализацию мозга — жёсткое различие функций полушарий и невозможность их замещения. Такой взгляд не соответствует представлениям современной науки, так как доказано

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

Узнайте больше 👻

Техники НЛП

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

  • Создание якоря — стимула, провоцирующего нужную реакцию или поведение. В качестве якоря используются вкусовые, цветовые, обонятельные ассоциации, которые срабатывают как условный рефлекс и направляют поведение человека в нужную сторону.
  • Использование репрезентативных систем — воображения и чувственного опыта.
  • Ассоциация и диссоциация — соотнесение себя с кем‑либо и независимый взгляд на себя со стороны.
  • Моделирование — поиск ответа на вопрос, как успешные люди достигают поставленных целей, основа НЛП.
  • Следование и ведение — копирование жестов, поз.
  • Притягательное будущее (репрезентация) — представление чего‑либо настолько реалистично, что оно воплощается в действительность.
  • Фрейминг и рефрейминг — установка чётких границ, помогающих достичь желаемого, и взгляд на себя с другой стороны («Я слишком ленив. Зато не делаю лишних ошибок»).
  • Осознание экологической роли — изучение возможных последствий деятельности человека, установление причинно‑следственных связей.
  • Стратегия Уолта Диснея — применение трёх ролей в командной работе для достижения результата: мечтатель придумывает различные варианты решения проблемы, в том числе нереалистичные, критик оценивает их ценность и находит слабые места, реалист составляет конкретные шаги.
  • Использование метамоделей — трёх уровней осмысления опыта: вычёркивания, генерализации (широких универсальных формулировок), искажения (игнорирования части информации).
  • Перцептивные позиции — разные точки зрения: от первого лица, от лица другого человека, от лица «мухи на стене» или «внутреннего мудреца».

Будьте начеку 🙆‍♂️

Почему на самом деле НЛП не работает

Научная критика

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

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

Чуть более оптимистичные для сторонников НЛП результаты получили голландские психологи в 2016 году. После однократного сеанса нейролингвистического программирования 64% пациентов с несерьёзными психологическими нарушениями сообщили об улучшении своего душевного состояния. В эксперименте участвовали 25 человек. Тем не менее, учёные из Нидерландов рекомендовали дальнейшее изучение методики НЛП.

Гораздо больше учёных выступают с критикой нейролингвистического программирования. Ещё в 2004 году профессор Университета Джорджа Мэйсона Дэниэл Дракман опубликовал исследование, проведённое по заказу армии США. В нём он заключил , что методы НЛП не работают.

В 2010 году польский психолог и автор научных книг Томаш Витковски отобрал из 315 статей о нейролингвистическом программировании 63, опубликованные в журналах из рейтинга международного научного индексирования (ISI), и проанализировал выводы из них. Только в 18,2% исследований подтверждается эффективность НЛП. 27,3% опубликовали неопределённые результаты. Большая же часть (54,5%) опровергают концепцию.

В 2014 году вышло исследование сотрудников Канадского агентства по лекарствам и технологиям в здравоохранении. Они пришли к выводу , что НЛП не помогает при лечении посттравматического, тревожного и стрессового расстройств.

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

Мария Николаева

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

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

НЛП и секты

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

В целом НЛП — продукт своего времени. Сравнение с нью‑эйджем не случайно: нейролингвистическое программирование появилось в одну эпоху с религиями нового века. Исследователь сект и культов Джозеф Хант назвал НЛП альтернативой саентологии. Тот же Бендлер, персонаж абсолютно в духе той эпохи, был наркоманом и проходил подозреваемым в деле об убийстве.

Что в итоге

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

Читайте также 🧐

Что такое NLP: история, терминология, библиотеки

Обработка естественного языка Natural language processing (NLP) – это сфера искусственного интеллекта, которая занимается применением алгоритмов машинного обучения и лингвистики для анализа текстовых данных. Цель NLP – понимание и воспроизведение естественного человеческого языка.

История

В 1954 году IBM проводит исследование в области машинного перевода с русского на английский (Джорджтаунский эксперимент) [1]. Система, которая состояла из 6 правил, перевела 60 предложений с транслитерированного (записанным латинским алфавитом) русского на английский. Авторы эксперимента заявили, что проблема машинного перевода будет решена через 3-4 года. Несмотря на последующие инвестиции правительства США прогресс был низкий. В 1966 году после отчета ALPAC о кризисе в машинного перевода и вычислительной лингвистики поток инвестиций уменьшается.

В 60-xх появилась интерактивная система с пользователем – SHRDLU [2]. Это был парсер с небольшим словарем, который определяет главные сущности в предложении (подлежащее, сказуемое, дополнение).

В 70-х годах В. Вудс предлагает расширенную систему переходов (Augmented transition network) – графовая структура, использующая идею конечных автоматов для парсинга предложений [3].

После 80-хх для решения NLP-задач начинают активно применяться алгоритмы машинного обучения (Machine Learning). Например, одна из ранних работ опиралась на деревья решений (Decison Tree) для получения создания системы с правилами if-else. Кроме того, начали применяться статистические модели.

В 90-х годах стали популярны n-граммы [3]. В 1997 году была предложена модель LSTM (Long-short memory), которая была реализована на практике только в 2007 [4]. В 2011 году появляется персональный помощник от Apple – Siri. Вслед за Apple остальные крупные IT-компании стали выпускать своих голосовых ассистентов (Alexa от Amazon, Cortana от Microsoft, Google Assistant). В этом же году вопросно-ответная система Watson от IBM победила в игре Jeopardy!, аналог “Своей игры”, в реальном времени [5].

На данный момент благодаря развитию Deep Learning, появлению большого количества данных и технологий Big Data методы NLP применяются во многих задачах, начиная от распознавания речи и машинного перевода, заканчивая написанием романов [6].

Терминология NLP

  1. Токен– текстовая единица, например, слово, словосочетание, предложение и т.д. Разбиение текста на токены называется токенизацией.
  2. Документ– это совокупность токенов, которые принадлежат одной смысловой единице, например, предложение, абзац, пост или комментарий.
  3. Корпус– это генеральная совокупность всех документов.
  4. Нормализация– приведение слов одинакового смысла к одной морфологической форме. Например, слово хотеть в тексте может встречаться в виде хотел, хотела, хочешь. К нормализации относится стемминг и лемматизация.
  5. Стемминг– процесс приведения слова к основе. Например, хочу может стать хоч. Для русского языка предпочтительней лемматизация.
  6. Лемматизация– процесс приведения слова к начальной форме. Слово глотаю может стать глотать, бутылкой – бутылка и т.д. Лемматизация затратный процесс, так как требуется работать со словарем.
  7. Стоп-слова– те слова, которые не несут информативный смысл. К ним чаще всего относятся служебные слова (предлоги, частицы и союзы).

ML-библиотеки для обработки естественного языка

  1. pymorphy2– морфологической анализатор для российского и украинского текстов. В нем присутствует лемматизатор.
  2. PyMystem3– аналог pymorhy2 от Яндекса.
  3. nltk– большой инструмент для работы с текстами. Предоставляет токенизатор, лемматизатор, стемминг, стоп-слова (в том числе и для русского языка).
  4. spacy– аналог nltk, но многие функции работают быстрее. Также как и nltk, плохо работает с русским языком. Однако, могут использоваться специальные модели ru2 или spacy russiantokenizer.
  5. scikitlearn– самая популярна библиотека машинного обучения, которая также пересоставляет способы обработки текстов, например, TFIDF.
  6. gensim– библиотека предоставляет методы векторизации слов.
  7. deeppavlov– фреймфворк для разработки чатботов и персональных помошников.
  8. yargy– парсер для извлечения сущностей в текстах на русском языке.

 

Подробнее про обработку текста читайте в нашей отдельной статье  «4 метода векторизации текстов».

Источники

  1. https://ru.wikipedia.org/wiki/Джорджтаунский_эксперимент
  2. https://ru.wikipedia.org/wiki/Расширенная_сеть_переходов
  3. https://ru.wikipedia.org/wiki/N-грамма
  4. https://ru.wikipedia.org/wiki/LSTM
  5. https://ru.wikipedia.org/wiki/IBM_Watson
  6. https://openai.com/blog/better-language-models/#sample1

как стать специалистом по обработке естественного языка

Рассказывает Ирина Смазневич


Вместе с развитием сферы Data Science растёт и востребованность в кадрах для этой отрасли. Как же стать специалистом в такой части анализа данных, как обработка естественного языка (Natural Language Processing)?

Кадровый рынок в этой сфере пока не очень большой. Хотя вакансий по Data Science кажется довольно много, задачи NLP встречаются в запросах работодателей достаточно редко. И в основном специалистов по обработке естественного языка ищут компании в крупных городах — Москве, Санкт-Петербурге, Новосибирске, Екатеринбурге. При этом работодателями выступают не только корпорации, но и небольшие коллективы разработчиков и даже стартапы. Так что в сегменте NLP для начинающих специалистов есть определённые перспективы.

Специальности и задачи по обработке естественного языка

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

Язык — это сложная совокупность различных уровней, таких как синтаксис, морфология, семантика, дискурс.

Для каждого уровня выделяются свои специфические задачи. Но на практике чаще всего задействуются несколько или все уровни языка. Например, классическими задачами синтаксиса и морфологии являются токенизация (деление текста на слова) и лемматизация (приведение слова к начальной форме). Есть задачи синтаксического анализа теста (парсинга), извлечения сущностей — например, имён и географических названий. С семантикой связаны задачи тематического моделирования (выделения тем в большой коллекции документов) и определения эмоциональной окраски. Уровень дискурса затрагивает задача суммаризации текста. Машинный перевод задействует все уровни языка. Распознавание и генерация устной речи также относятся к сфере NLP.

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

Интернет-магазины тоже ищут таких специалистов, потому что улучшают поиск по своим каталогам, внедряют диалоговые и рекомендательные системы. Есть запрос в сфере маркетинга и PR: исследовать освещение деятельности компании в медиа и отслеживать, какой образ создаётся у аудитории — позитивный или негативный. Таким же образом исследуют отзывы и комментарии в соцсетях.

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

Кроме таких компаний, которым нужны собственные системы под обслуживание своих бизнес-процессов, специалистов по обработке естественного языка ищут многие IT-компании сектора B2B. Они разрабатывают программные решения для продажи своим клиентам. В частности, независимо от отрасли, компаниям с большим потоком входящих документов и обращений могут быть полезны системы, оптимизирующие работу. Нужно распределять обращения по темам и отделам, выделять наиболее важные и негативные, ускорять перевод на другие языки и улучшать поиск по базе данных компании. Многим средним и крупным компаниями рано или поздно приходится сегментировать клиентскую базу.

Необходимые навыки для специалиста по NLP

Какие навыки нужны, чтобы освоить профессию специалиста по обработке естественного языка?

Нужно понимать, что обработка естественного языка состоит из нескольких компонентов: знаний о языке, знаний по математике и статистике и навыков в программировании. Причём математика и программирование важнее лингвистики.

Есть общие требования, которые работодатели предъявляют к претендентам на вакансии по NLP. К ним относятся: знание математики, теории вероятностей, статистики, знание сфер применимости, понимание плюсов и минусов различных семейств алгоритмов машинного обучения (таких как логистическая регрессия, различные алгоритмы кластеризации, нейронные сети, бустинг, случайный лес).

Специалисту по NLP нужно уметь работать с базами данных и знать SQL. Иногда требуются знания не только реляционных БД и соответствующих инструментов (PostgreSQL, MySQL, MS SQL, Oracle), но и понимание NoSQL-систем (Cassandra, Redis, MongoDB). Может понадобиться знакомство с фреймворками для работы с большими данными и с различными поисковыми движками.

Обязательным условием является знание структур данных.

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

Какой язык программирования необходимо освоить? Тут нет однозначного ответа. Наиболее часто встречается запрос на Python, реже специалистам по NLP требуется знание R. Для разработки конечных решений программистам чаще всего нужны Java, C#/C++, Scala.

Наиболее часто встречается запрос на Python, реже специалистам по NLP требуется знание R.

Кроме того, есть набор технологий, с которыми нужно уметь обращаться. Это стек технологий Data Science для Python.

Базовые библиотеки для любого аналитика данных — pandas (для работы с данными в табличном виде), numpy (для работы с большими числовыми массивами) и scipy (для вычислений). Для визуализации могут понадобиться библиотеки matplotlib и seaborn. Для машинного обучения требуется знание основной библиотеки scikit-learn и других специфицированных библиотек (например, XGBoost и LGBM для градиентного бустинга). Для задач обработки естественного языка нужно разбираться в содержании специальных библиотек: nltk, StanfordNLP, spacy, gensim, bigartm, word2vec, fasttext.

Нужен опыт построения глубоких нейронных сетей с использованием фреймворков Tensorflow, Keras, PyTorch. И, конечно, желательно уметь работать с инструментами, рассчитанными именно на русский язык, такими как pymystem3, pymorphy — для морфологического анализа, Tomita parser, yargy — для извлечения фактов и сущностей. Кроме того, нужно уметь тестировать методы обработки текстовых данных и знать методики оценки качества моделей.

Конечно, это программа-максимум. В зависимости от конкретных задач работодателя может понадобиться тот или иной язык программирования, тот или иной стек технологий. Плюсом для разработчиков решений NLP является наличие собственных проектов на GitHub, а также сертификатов об участии в Kaggle и других соревнованиях по машинному обучению. Также от претендентов ожидают достаточного уровня английского, но это универсальное требование.

Смотрите также: Знакомство с Kaggle: изучаем науку о данных на практике

Где освоить профессию специалиста по NLP?

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

Но есть и другие варианты: например, обучение в вузе по специальности «компьютерная лингвистика». Выпускником такой образовательной программы является Полина Казакова, Data Scientist в проекте IRELA, сотрудник Центра анализа больших данных МИСиС. Она занимается разработкой систем анализа данных для различных компаний, то есть как раз обработкой естественного языка.

«Я училась в Высшей школе экономики на программе “Фундаментальная и компьютерная лингвистика”, которая работает в рамках филологического направления, — рассказывает Полина. — Эта программа совмещает в себе теоретическую лингвистику, то есть фундаментальные научные знания о самом языке, и прикладные методы анализа данных, а также программистские навыки. Таким штукам мало где учат в России».

Кроме указанной программы по компьютерной лингвистике ВШЭ (которая также открыта в двух филиалах вуза), в России есть ещё несколько учебных программ по компьютерной лингвистике.

Магистратура по специальности NLP есть в СПбГУ на кафедре информационных систем в искусстве и гуманитарных науках. Несмотря на то, что кафедра относится к гуманитарному факультету, программа «Инженерия гуманитарных знаний» рассчитана на программистов.

В МФТИ на кафедре распознавания изображений и обработки текста факультета инноваций и высоких технологий (ФИВТ) действует магистратура по компьютерной лингвистике. Кафедра была основана в 2006 году компанией ABBYY.

В МГУ на филологическом факультете действуют программы бакалавриата и магистратуры по направлению «Фундаментальная и прикладная лингвистика».

В РГГУ открыта магистратура по этому же направлению с профилем «Фундаментальная и компьютерная лингвистика».

Стоит ли поступать на компьютерную лингвистику ради работы в NLP?

«Сама эта программа по компьютерной лингвистике преследует благую цель: совместить теорию с практикой, — говорит Полина. — У нас были теоретические дисциплины, связанные с синтаксисом, фонетикой, морфологией и прочим, и были попытки ввести точные дисциплины, такие как математический анализ, линейная алгебра, статистика, основы программирования и даже машинного обучения. А машинное обучение, как вы догадываетесь, в последнее время очень активно применяется в обработке естественного языка (хотя и не во всех задачах, кое-где до сих пор обходятся rule-based подходом).

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

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

Мой совет людям, которые хотят заниматься обработкой естественного языка: идите на техническую специальность и параллельно изучайте какие-то лингвистические штуки, потому что на самом деле узкоспецифические знания о языке очень редко пригождаются в практических задачах машинного обучения. Особенно сейчас, когда есть нейросети, которые на большом наборе хорошо размеченных данных сами выводят все правила, которые лингвисты могли бы составить вручную. Можно сказать, что хорошая квалификация в лингвистике иногда может дать какой-то профит в NLP, но в большинстве случаев скорее нужна хорошая квалификация в машинном обучении. Так считаю не только я, но и мои коллеги-технари».

Идите на техническую специальность и параллельно изучайте какие-то лингвистические штуки

Кто же занимается разметкой текстовых данных для нейросетей и вообще для тренировки моделей машинного обучения?

«Это хороший вопрос. Разметка — это общая боль всех — и лингвистов, и специалистов по машинному обучению и обработке естественного языка», — говорит Полина Казакова. Хорошую разметку достаточного объёма получить непросто, для этого нужны люди, которые вручную будут размечать массив данных. И составлением методологии разметки текста должны заниматься как раз лингвисты. Например, для задачи токенизации они должны сформировать правила деления текста на слова (учитывая сложные случаи типа «диван-кровать», «какой-нибудь», «90-й год»). И после этого можно уже привлечь почти случайных людей, которые будут размечать текст в соответствии с заданными правилами. Кстати говоря, этой задачей — разметкой данных — могут заниматься стажёры, которые хотят дальше развиваться в направлении Data Science/NLP. Время от времени такие вакансии появляются.

Несмотря на всеобщую потребность в выпускниках технических специальностей, иногда в команды программистов и математиков требуются именно эксперты по языку. Полина вспоминает один такой случай: «У компании Samsung есть голосовой помощник, и недавно они начали в России активно набирать на работу именно лингвистов. Они занимаются распознаванием и синтезом речи, и взяли на работу мою однокурсницу — крутого фонетиста-теоретика, при том что у неё не было никакого опыта программирования и она не знала, что такое нейросети. Её взяли из-за специфических лингвистических знаний, но по моему ощущению, это исключительный случай».

Дополнительное образование в сфере NLP

Какое бы базовое образование вы ни получили — лингвистическое или математическое — вы всегда можете обнаружить, что каких-то знаний не хватает, тем более что NLP и Data Science активно развиваются. Как получить дополнительное образование?

Школа анализа данных (ШАД) — программа «Яндекса», обучение по которой работодатели часто упоминают в качестве преимущества потенциального кандидата. Как следует из названия, там даются основы машинного обучения и анализа данных. По формату школа больше похожа на полноценную магистратуру, чем на дополнительное образование. Программа рассчитана на два года, обучение — очное в вечернее время (филиалы есть в Москве, Минске, Екатеринбурге и Нижнем Новгороде) и заочное для иногородних студентов. В ШАД можно бесплатно поступить по конкурсу (что довольно сложно, конкурс большой), а в случае недобора баллов учиться платно — правда, только в Москве и только очно.

Записи лекций ШАД по некоторым предметам доступны для всех желающих. Некоторые из избранных курсов пригодятся будущему специалисту по NLP:

Чтобы дополнить свое образование, можно пройти онлайн-обучение, например, на платформе Coursera.

  • Список курсов, рекомендованных НИУ ВШЭ магистрантам по компьютерной лингвистике, среди которых есть курсы по NLP и машинному обучению.
  • Natural Language Processing — собственный курс по NLP от НИУ ВШЭ, который активно развивает направление онлайн-обучения.
  • Machine Learning with TensorFlow on Google Cloud Platform — специализация (набор связанных курсов), разработанная компанией Google, на платформе Coursera. Входящие туда курсы можно изучать по отдельности, например, Sequence Models for Time Series and Natural Language Processing.
  • Text Retrieval and Search Engines и Text Mining and Analytics — курсы, входящие в специализацию Data Mining в рамках программы Master of Computer Science in Data Science (MCSDS) от Иллинойсского университета (США). Курсы можно прослушать независимо.
  • Natural Language Processing (NLP) и Speech Recognition Systems — курсы, входящие в программу Microsoft Professional Program in Artificial Intelligence на платформе edX.
  • Professional Certificate Program IBM — профессиональная программа от IBM на той же образовательной платформе. Она состоит из 5 курсов: Deep Learning Fundamentals with Keras, Deep Learning with Python and PyTorch, Deep Learning with Tensorflow, Using GPUs to Scale and Speed-up Deep Learning, Applied Deep Learning Capstone Project.

Есть несколько вариантов обучения на российской платформе «Открытое образование». Особенность этой платформы в том, что она создана при участии ведущих российский вузов, все курсы доступны там бесплатно, но при этом есть возможность получить сертификат и зачесть прохождение этих курсов в своём университете. На зарубежных платформах часто курсы можно пройти бесплатно, но за сертификат придётся заплатить.

  • «Анализ данных на практике» — курс от МФТИ, на котором кроме прочего рассматривается обработка текстов.
  • «Аналитика больших данных» — программа от НИТУ «МИСиС», в рамках которой изучаются многие из требуемых для NLP технологий. Старт её намечен на февраль.
  • «Наука о данных и аналитика больших объёмов данных» — обзорный курс от Санкт-Петербургского Политеха, частично посвящённый анализу текста. Запись на этот курс сейчас закрыта, как и на многие другие из приведенных выше, которые уже идут сейчас или недавно завершились. Но можно подписаться на обновления о курсе, чтобы не пропустить следующий набор.

Плавное введение в Natural Language Processing (NLP) 

Введение в NLP с Sentiment Analysis в текстовых данных. 

Люди общаются с помощью каких-либо форм языка и пользуются либо текстом, либо речью. Сейчас для взаимодействия компьютеров с людьми, компьютерам необходимо понимать естественный язык, на котором говорят люди. Natural language processing занимается как раз тем, чтобы научить компьютеры понимать, обрабатывать и пользоваться естественными языками.

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

Что такое Natural Language Processing (NLP)?

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

Применение NLP

  • Machine translation (Google Translate)
  • Natural language generation
  • Поисковые системы
  • Спам-фильтры
  • Sentiment Analysis
  • Чат-боты

… и так далее

Очистка данных (Data Cleaning):

При Data Cleaning мы удаляем из исходных данных особые знаки, символы, пунктуацию, тэги html <> и т.п., которые не содержат никакой полезной для модели информации и только добавляют шум в данные.

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

Код на Python: Data cleaning

Предварительная обработка данных (Preprocessing of Data)

Preprocessing of Data это этап Data Mining, который включает в себя трансформацию исходных данных в доступный для понимания формат.

 

Изменение регистра:

Одна из простейших форм предварительной обработки текста — перевод всех символов текста в нижний регистр.

Источник изображения

 

Код на Python: перевод в нижний регистр

 

Токенизация:

Токенизация — процесс разбиения текстового документа на отдельные слова, которые называются токенами.

Код на Python: Токенизация

Как можно видеть выше, предложение разбито на слова (токены).

Natural language toolkit (библиотека NLTK) — популярный открытый пакет библиотек, используемых для разного рода задач NLP. В этой статье мы будем использовать библиотеку NLTK для всех этапов Text Preprocessing.

Вы можете скачать библиотеку NLTK с помощью pip:

!pip install nltk

 

Удаление стоп-слов:

Стоп-слова — это часто используемые слова, которые не вносят никакой дополнительной информации в текст. Слова типа «the», «is», «a» не несут никакой ценности и только добавляют шум в данные.

В билиотеке NLTK есть встроенный список стоп-слов, который можно использовать, чтобы удалить стоп-слова из текста. Однако это не универсальный список стоп-слов для любой задачи, мы также можем создать свой собствпнный набор стоп-слов в зависимости от сферы.

Код на Python: Удаление стоп-слов

В библиотеке NLTK есть заранее заданный список стоп-слов. Мы можем добавитьили удалить стоп-слова из этого списка или использовать его в зависимости от конкретной задачи.

 

Стеммизация:

Стеммизация — процесс приведения слова к его корню/основе.

Он приводит различные вариации слова (например, «help», «helping», «helped», «helpful») к его начальной форме (например, «help»), удаляет все придатки слов (приставка, суффикс, окончание) и оставляет только основу слова.

Источник изображения

 

Код на Python: Стеммизация

Корень слова может быть существующим в языке словом, а может и не быть им. Например, «mov» корень слова «movie», «emot» корень слова «emotion».

 

Лемматизация:

Лемматизация похожа на стеммизацию в том, что она приводит слово к его начальной форме, но с одним отличием: в данном случае корень слова будет существующим в языке словом. Например, слово «caring» прекратится в «care», а не «car», как в стеммизаци.

Код на Python: Лемматизация

WordNet — это база существующих в английском языке слов. Лемматизатор из NLTK WordNetLemmatizer() использует слова из WordNet.

 

N-граммы:

Источник изображения

N-граммы — это комбинации из нескольких слов, использующихся вместе, N-граммы, где N=1 называются униграммами (unigrams). Подобным же образом, биграммы (N=2), триграммы (N=3) и дальше можно продолдать аналогичным способом.

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

Векторизация текстовых данных (Text Data Vectorization):

Процесс конвертации текста в числа называется векторизацией. Теперь после Text Preprocessing, нам нужно представить текст в числовом виде, то есть закодировать текстовые данные в виде чисел, которые в дальнейшем могут использоваться в алгоритмах.

 

«Мешок слов» (Bag of words (BOW)):

Это одна из самых простых методик векторизации текста. В логике BOW два предложения могут называться одинаковыми, если содержат один и тот же набор слов.

Рассмотрим два предложения:

Источник изображения

В задачах NLP, каждое текстовое предложение называется документом, а несколько таких документов называют корпусом текстов.

BOW создает словарь уникальных d слов в корпусе (собрание всех токенов в данных). Например, корпус на изображении выше состоит из всех слов предложений S1 и S2.

Теперь мы можем создать таблицу, где столбцы соответствуют входящим в корпус уникальным d словам, а строки предложениям (документам). Мы устанавливаем значение 1, если слово в предложении есть, и 0, если его там нет.

Источник изображения

Это позволит создать  dxn  матрицу, где d это общее число уникальных токенов в корпусе и  n равно числу документов. В примере выше матрица будет иметь форму 11×2.

 

TF-IDF:

Источник изображения

Это расшифровывается как Term Frequency (TF)-Inverse Document Frequency (IDF).

 
Частота слова (Term Frequency):

Term Frequency высчитывает вероятность найти какое-то слово в документе. Ну, например, мы хотим узнать, какова вероятрность найти слово wi в документе dj.

Term Frequency (wi, dj) =

Количество раз, которое wi встречается в dj / Общее число слов в dj

 
Обратная частота документа (Inverse Document Frequency):

В логике IDF, если слово встречается во всех документах, оно не очень полезно. Так определяется, насколько уникально слово во всем корпусе.

IDF(wi, Dc) = log(N/ni)

Здесь Dc = Все документы в корпусе,

N = Общее число документов,

ni = документы, которые содержат слово (wi).

Если wi встречается в корпусе часто, значение IDF снижается.

Если wi используется не часто, то ni снижается и вследствие этого значение IDF возрастает.

TF(wi, dj) * IDF(wi, Dc)

TF-IDF — умножение значений TF и IDF. Больший вес получат слова, которые встречаются в документе чаще, чем во всем остальном корпусе.

Sentiment Analysis: Обзоры фильмов на IMDb

Источник изображения

Краткая информация

Набор данных содержит коллекцию из 50 000 рецензий на сайте IMDb, с равным количеством положительных и отрицательных рецензий. Задача — предсказать полярность (положительную или отрицательную) данных отзывов (тексты).

1. Загрузка и исследование данных

Набор данных IMDB можно скачать здесь.

Обзор набора данных:

Положительные рецензии отмечены 1, а отрицательные 0.

Пример положительной рецензии:

 
Пример отрицательной рецензии:

 

2. Data Preprocessing

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

Использовать ли стеммизацию или лемматизацию или и то, и другое — зависит от поставленной задачи, так что нам стоит попробовать и решить, какой способ сработает лучше для данной задачи.

Добавляем новую колонку preprocessed_review в dataframe, применяя data_preprocessing() ко всем рецензиям.

 

3.

Vectorizing Text (рецензии)
Разделяем набор данных на train и test (70–30):

Используем train_test_split из sklearn, чтобы разделить данные на train и test. Здесь используем параметр stratify,чтобы иметь равную пропорцию классов в train и test.

BOW

Здесь мы использовали min_df=10, так как нам нужны были только те слова, которые появляются как минимум 10 раз во всем корпусе.

TF-IDF

 

4. Создание классификаторов ML

Наивный байесовский классификатор (Naive Bayes) с рецензиями, закодированными BOW

Naive Bayes c BOW выдает точность 84.6%. Попробуем с TF-IDF.

 
Наивный байесовский классификатор (Naive Bayes) с рецензиями, закодированными TF-IDF

TF-IDF выдает результат немного лучше (85.3%), чем BOW. Теперь давайте попробуем TF-IDF с простой линеарной моделью, Logistic Regression.

 
Logistic Regression с рецензиями, закодированными TF-IDF

Logistic Regression с рецензиями, закодированными TF-IDF, выдает результат лучше, чем наивный байемовский — точность 88.0%.

Построение матрицы неточностей даст нам информацию о том, сколько точек данных верны и сколько неверны, классифицированную с помощью модели.

Из 7500 отрицательных рецензий 6515 были верно классифицированы как отрицательные и 985 были неверно классифицированы как положительные. Из 7500 положительных рацензий 6696 были верно классифицированы как положительные, и 804 неверно классифицированы как отрицательные.

Итоги

Мы узнали основные задачи NLP и создали простые модели ML для сентимент-анализа рецензий на фильмы. В дальнейшем усоверешенствований можно добиться с помощью Word Embedding с моделями Deep Learning.

Благодарю за внимание! Полный код смотрите здесь. 

 

Ссылки:

 

Источник

НЛП (NLP) — нейролингвистическое программирование

 

Если ты не можешь что-то контролировать, то хотя бы присоединись к этому, — и начинай делать вид, что контролируешь! И тогда ты начнёшь управлять этим. И потому ты никогда не будешь в проигрыше, а всегда будешь в выигрыше!
© 2015 Сазонов В.Ф. © 2015 kineziolog.bodhy.ru. © 2016-2017 kineziolog.su.

 

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

Теоретической основой НЛП можно считать тезис Чёрча — Тьюринга о том, что «любую интуитивно понятную задачу можно алгоритмизировать» (Тьюринг А. Может ли машина мыслить. М.: Физматгиз, 1960; Чёрч А. Введение в математическую логику (Introduction to Mathematical logic). В 2-х т. Т. 1. М: Иностранная литература, 1960. 484 с.). Вот НЛП и делает алгоритмы на основе успешно решённых кем-то интуитивно задач по коммуникации (общению).

Ресурсы по НЛП Здесь есть дополнительные интернет-ресурсы по НЛП

Электронный курс «Основы НЛП» В.Ф. Сазонова.

Отзывы о курсах НЛП.

Расписание и заявки на проведение курсов.

Тренироваться в общении можно почти везде и почти всегда! Вот, к примеру, как мой добровольный бесплатный тренер щедро даёт мне материал для тренировки в коммуникации! 😉 И сам тренируется, разумеется! — Взаимный тренинг: «Игровая борьба трикстеров за доминацию»..

Вводный краткий курс «Инструменты НЛП» от А. Бакирова: Перейти туда

 

Источник изображения: http://kladvsebe.ru/samorazvitie/uchim-sebya-programmirovat.html

Поясняющие видеоматериалы

Видео: НЛП. Техника якорения

Видео: НЛП. Техника взмаха

 Видео: Сеанс эриксоновского гипноза проводит сам его создатель, легенда НЛП, — Милтон Эриксон

Видео 1.

Видео 2.

 Видео 3.

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

 

Выявление ценностей

Светильник Navigator 71 395 NLP-RW1-24W-R300-840-WH-LED(d300) -Официальный сайт компании Navigator (Навигатор)

Способ монтажаНакладн. на поверхность
Тип лампыСветодиод. (LED)
Цоколь (патрон) лампыПрочее
Мощность лампы24 (Вт)
Количество ламп (источников света)1
С ламп. в комплектеДа
Номин. напряжение90…260 (В)
Тип устройства управления (ПРА/трансформатора)Светодиодный драйвер
Блок управления/ ПРА в комплектеДа
СветораспределениеСимметричный (-ое)
Материал корпусаАлюминий
Цвет корпусаБелый
Материал плафона/рассеивателяПластик опал./матовый
Цвет плафона/рассеивателяБелый
Степень защиты (IP)IP20
Вид растра/решеткиПрочее
Длина300 (мм)
Ширина300 (мм)
Высота/глубина30 (мм)
Наруж. диаметр300 (мм)
Длина монтажная (встраив.)300 (мм)
Ширина монтажная (встраив.)300 (мм)
Глубина монтажная (встраив.)30 (мм)
Диаметр монтажный (встраив.)300 (мм)
Режим аварийного освещенияНе пригоден
Импульсно-зажигающее устройство (ИЗУ)Не требуется
Материал растра/решеткиПрочее
Отражатель (рефлектор)Прочее
Выход светового потокаПрямой
Класс защитыII
Предельная температура-30…50 (°C)
Световой поток1600 (лм)
Цветовая температура4000 (К)
Категория цветности светаНейтральная холодно-белая (3300-5300 К) (К)
Средн. номин. срок службы40000 (ч)

Автор онлайн-учебника по NLP о том, как и зачем его изучать — Академия Яндекса

Natural language processing (NLP) – это область машинного обучения, которая посвящена тому, как компьютер анализирует естественный, то есть человеческий язык. Благодаря наработкам в этой сфере Переводчик переводит выражения с одного языка на другой, а Алиса, услышав и обработав последовательность звуков человеческой речи, понимает, что хочет узнать пользователь.

Исследовательница Елена Войта занимается NLP последние 4 года: она  аспирантка Эдинбургского и Амстердамского университетов, работала в Yandex Research бок о бок с командой Переводчика, придумала и ведёт курс по обработке естественного языка в ШАДе, публикует научные статьи и входит в комитеты международных конференций. В этом учебном году она запустила онлайн-учебник по обработке естественного языка. Елена рассказала Академии Яндекса о своём пути в NLP, о том, как ему учить и учиться, и почему для этого важен исследовательский подход.

Из фундаментальной математики в NLP

Моё первое образование — бакалавриат и магистратура мехмата в Южном федеральном университете в Ростове-на-Дону. Там я училась на прикладной математике, но больше занималась фундаментальной: функциональным анализом и так далее.

Долгое время я работала в Ростове автором книг по подготовке к ЕГЭ по математике. Я начала заниматься этим с 10 класса, и так получилось, что даже мои одноклассники занимались по учебникам, которые я составляла. Ещё  у нас был кружок, где мы готовили детей к олимпиадам и экзаменам, организовывали летние школы. Это была замечательная масштабная деятельность, которую я очень любила. Но поскольку я занималась этим со старших классов, то к концу университета мне это уже немного надоело.

Про Школу анализа данных Яндекса мне рассказали друзья. Тогда я не знала, что такое машинное обучение и для чего его применяют, и очень смутно представляла себе, чем занимаются в Яндексе. А в ШАДе меня больше всего заинтересовали нетривиальные математические задачи, которые нужно было решать на вступительных. Я успешно прошла экзамен и легко прижилась в Школе.

После первого же семестра в ШАДе я стала работать в Яндексе, в самом сердце Поиска. Я провела там 1,5 года до тех пор, пока не выпустилась из Школы. Мне было очень интересно работать в команде Поиска: учёба — это здорово, но только на практике ты видишь, как применять те или иные алгоритмы, какие есть продуктовые ограничения Но математическое прошлое не давало мне покоя, и мне очень хотелось работать именно в Yandex Research, чтобы больше размышлять над фундаментальными задачами и заниматься исследованиями. 

Есть люди, которых по-настоящему вдохновляет создавать то, что принесёт людям пользу. У меня есть несколько таких друзей. Когда я начала работать в Яндексе, они говорили: «Ой, как здорово! Ты же делаешь что-то для миллионов пользователей». Многих это очень мотивирует, но я не из их числа. 

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

Я поступила в аспирантуру Амстердамского университета, стала official visitor в Эдинбургском (затем у меня получилось стать студенткой и формально) и вскоре прошла отбор в Yandex Research. Мне удалось договориться, чтобы я проходила её дистанционно: обычно аспиранты проводят время в университете, общаются с научным руководителем — но в Амстердаме меня так и не увидели. Однако у того, чтобы так совмещать учёбу с работой были и преимущества. И там, и там я занималась NLP (обработкой естественного языка), но в аспирантуре у меня была возможность фантазировать и не задумываться о метриках качества, а в Яндексе я работала бок-о-бок с командой Переводчика и видела практические приложения своих и чужих исследований.

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

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

Преподавание в ШАДе и новый курс по NLP

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

Поэтому руководитель ШАДа Стас Федотов собрал большую встречу, на которой он хотел обсудить, что можно сделать с курсом и как это должно происходить. Сначала я даже не хотела туда идти, но согласилась, потому что на этом настоял Стас. Я слушала чужие предложения, у меня в голове начала складываться картина полноценного курса, и я стала очень эмоционально и упорно описывать её всем вокруг.

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

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

Наш курс сильно отличается от других тем, как мы подаём информацию, он хорошо объединяет в себе теоретическую и практическую части благодаря тому, что над ним вместе работали исследователи и разработчики. Так, в лекции по классификации текстов мы сразу рассказываем про то, как она используется в Алисе. Д: для того, чтобы ответить на вопрос «Алиса, какая завтра погода?», голосовому помощнику нужно его сначала классифицировать, понять, к какому из сценариев он относится и из какого сервиса брать ответ.

Второе отличие в том, что каждую лекцию у нас ведёт тот человек, которому действительно интересна эта тема. Например, лекцию про доменную адаптацию читает Боря Коварский, один из наших лекторов, который с нуля запускал её в переводчике. Он не просто где-то про это прочитал, а целенаправленно и долго разбирался в теме, чтобы потом использовать эти знания в продакшене. Когда у преподавателя горят глаза, это передаётся и тем, кто его слушает, позволяет им искренне заинтересоваться предметом.

Учебный год или семестр в ШАД обычно начинается со встречи, на которой каждый преподаватель должен немного рассказать о своем курсе, чтобы студенты могли выбрать. Я уже три раза повторяла одно и то же и чувствую, что четвертый раз буду говорить то же самое. Я рассказываю: «Ребята, наш курс рожден в большой и светлой любви Yandex Research и Переводчика. И к тому, что мы делаем, и к NLP, и к людям, и к Яндексу, и ко всему прекрасному, что нас окружает». 

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

Cоздание учебника по NLP

Я начала разрабатывать онлайн-учебник NLP Course For You, потому что ещё в университете сталкивалась с такой проблемой: преподаватели редко применяют индивидуальный подход, чаще всего они рассказывают всем одно и то же и иногда отвечают на вопросы. Но обработку естественного языка можно изучать с совершенно разными целями: кому-то нужно просто закрыть курс в университете, кто-то хочет создать свой стартап, кому-то интересно поступить в магистратуру или аспирантуру. Когда задания и подход ко всем студентам одинаковый, когда нет пространства для творчества, тяжело дать каждому то, что ему нужно.

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

Кроме того, я старалась подавать информацию в интерактивном и доступном формате: если ты смотришь лекцию в записи, то через пару дней тебе уже будет тяжело вспомнить, в какой момент преподаватель рассказывал то, что тебе нужно. В NLP Course For You теоретический материал расположен рядом с соответствующими заданиями, в нём есть анимации для того, чтобы учащимся было нагляднее, чтобы они интуитивно понимали, как работают разные алгоритмы. 

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

Структура учебника похожа на курс в ШАДе: сначала идут вводные материалы по эмбеддингам — векторным представлениям слов, которые может считывать модель. Затем нужно изучить классификацию текстов: с её помощью можно, например, узнать, является ли полученное вами письмо спамом. Следом идёт раздел про моделирование языка, потом — про машинный перевод. Последняя (пока что) глава курса — о трансферном обучении, о моделях ELMo и BERT.

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

В NLP очень важно не только уметь использовать готовые модели или алгоритмы, но и придумывать решения почти что с нуля, а затем анализировать эффективность: как они работают в тех или иных ситуациях, какие могут быть граничные случаи. Поэтому в упражнениях есть вопросы вроде «Как вы думаете, какие достоинства есть у предложенного решения? Какие недостатки? Какие входные данные нужны для того, чтобы оно работало? Легко ли их получить?».

Каждый может проходить учебник в своём режиме, и, если ему неинтересно, не биться над решением задачи, а сразу посмотреть ответ. Но я не советую так делать: лучше какое-то время подержать сложное задание в голове, мозг будет работать над ним в фоновом режиме и, возможно, к вам придёт озарение — особенно если вы делаете что-то другое по теме.

Ещё у нас есть рубрика “have fun”, где можно погенерировать тексты в языковой модели, посмотреть, как нейросеть понимает смысл слов. С её помощью хотелось передать то ощущение радости, когда ты узнаёшь что-то новое и искренне этому удивляешься — в обработке естественного языка таких моментов достаточно.

Пример упражнения из раздела “have fun”

Как развивается учебник

Я планирую расширить количество лекций или сделать больше упражнений по тем, что уже есть, добавить на сайт новые научные статьи. Пока что я занимаюсь учебником в одиночку: даже выучила HTML и CSS, чтобы создать сайт. 

Учебник — не моё основное занятие, но он для меня важен. Я очень радуюсь, когда ко мне обращаются те, кто им пользовался: кто-то пишет на почту, кто-то подходит на конференциях. Большая часть людей узнаёт об учебнике через сарафанное радио, ещё я рассказывала про него в выпуске подкаста Machine Learning Street Talk.

Мой учебник довольно много используют в Индии и Китае — я знаю об этом как раз благодаря тем, кто пишет письма. Кроме того, после его запуска меня стали активно приглашать преподавать. Мне писали учебные ассистенты ведущих университетов, а один американский вуз запросил официальное разрешение на использование курса для студентов. Я не ожидала такого эффекта: изначально я задумывала, что им будут пользоваться учащиеся ШАДа и те, кто собираются туда поступать.

Здорово, что так произошло: NLP – стремительно развивающаяся область, и задач в ней хватит на всех. Постоянно появляются новые state-of-the-art модели. Хочется, чтобы большее количество исследователей и практиков могло двигать эту область вперёд, исследовать границы применения технологий.

Что такое обработка естественного языка?

Последнее обновление 7 августа 2019 г.

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

Изучение обработки естественного языка существует уже более 50 лет и выросло из области лингвистики с появлением компьютеров.

В этом посте вы узнаете, что такое обработка естественного языка и почему это так важно.

Прочитав этот пост, вы будете знать:

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

Начните свой проект с моей новой книги «Глубокое обучение для обработки естественного языка», включая пошаговые руководства и файлы исходного кода Python для всех примеров.

Приступим.

Что такое обработка естественного языка?
Фото pedrik, некоторые права защищены.

Естественный язык

Естественный язык относится к тому, как мы, люди, общаемся друг с другом.

А именно речь и текст.

Мы окружены текстом.

Подумайте, сколько текста вы видите каждый день:

  • Знаки
  • Меню
  • Электронная почта
  • SMS
  • Веб-страницы
  • и многое другое…

Список бесконечен.

А теперь подумайте о речи.

Мы можем говорить друг с другом как вид больше, чем писать. Может быть, даже легче научиться говорить, чем писать.

Голос и текст — это то, как мы общаемся друг с другом.

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

Нужна помощь с глубоким обучением текстовых данных?

Пройдите мой бесплатный 7-дневный ускоренный курс электронной почты (с кодом).

Нажмите, чтобы зарегистрироваться, а также получите бесплатную электронную версию курса в формате PDF.

Начните БЕСПЛАТНЫЙ ускоренный курс прямо сейчас

Вызов естественного языка

Работа с данными на естественном языке не решена.

Его изучали полвека, и это действительно сложно.

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

— стр. 248, Математическая лингвистика, 2010.

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

И все же большую часть времени мы легко понимаем друг друга.

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

— страница 1, Методы нейронных сетей в обработке естественного языка, 2017.

От лингвистики к обработке естественного языка

Языкознание

Лингвистика — это научное изучение языка, включая его грамматику, семантику и фонетику.

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

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

Математика — инструмент науки. Математики, работающие над естественным языком, могут называть свои исследования математической лингвистикой, уделяя особое внимание использованию дискретных математических формализмов и теории естественного языка (например,грамм. формальные языки и теория автоматов).

Компьютерная лингвистика

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

Компьютерная лингвистика — это исследование компьютерных систем для понимания и создания естественного языка. … Одной из естественных функций компьютерной лингвистики было бы тестирование грамматик, предложенных лингвистами-теоретиками.

— страницы 4-5, Компьютерная лингвистика: введение, 1986.

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

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

Методы Data-Drive для обработки естественного языка в настоящее время стали настолько популярными, что их следует считать основными подходами к компьютерной лингвистике. … Сильным фактором, способствующим этому развитию, несомненно, является увеличение количества доступных в электронном виде данных, к которым могут быть применены эти методы; другим фактором может быть определенное разочарование в подходах, основанных исключительно на правилах, разработанных вручную, из-за их наблюдаемой хрупкости.

— страница 358, Оксфордский справочник по компьютерной лингвистике, 2005 г.

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

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

— стр. 377, Оксфордский справочник по компьютерной лингвистике, 2005 г.

Статистическая обработка естественного языка

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

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

Я считаю, что в компьютерной лингвистике есть как научная, так и инженерная сторона. Инженерная сторона вычислительной лингвистики, часто называемая обработкой естественного языка (NLP), в значительной степени связана с созданием вычислительных инструментов, которые делают полезные вещи с языком, например.g., машинный перевод, реферирование, ответы на вопросы и т. д. Как и в любой другой инженерной дисциплине, обработка естественного языка опирается на множество различных научных дисциплин.

— Как статистическая революция меняет (вычислительную) лингвистику, 2009.

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

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

— Стр. Xix, Оксфордский справочник по компьютерной лингвистике, 2005 г.

Обработка естественного языка

Как практики машинного обучения, заинтересованные в работе с текстовыми данными, мы заинтересованы в инструментах и ​​методах из области обработки естественного языка.

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

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

Цель лингвистической науки состоит в том, чтобы иметь возможность охарактеризовать и объяснить множество лингвистических наблюдений, циркулирующих вокруг нас, в разговорах, письмах и других средствах массовой информации.Частично это связано с когнитивным размером того, как люди приобретают, производят и понимают язык, частично — с пониманием взаимосвязи между языковыми высказываниями и миром, а частично — с пониманием языковых структур с помощью какой язык общается.

— Стр. 3, Основы статистической обработки естественного языка, 1999.

Они продолжают сосредотачиваться на выводе посредством использования статистических методов в обработке естественного языка.

Статистическое НЛП предназначено для статистических выводов в области естественного языка. Статистический вывод в целом состоит из взятия некоторых данных (сгенерированных в соответствии с некоторым неизвестным распределением вероятностей) и последующего вывода об этом распределении.

— Стр. 191, Основы статистической обработки естественного языка, 1999.

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

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

— Стр. Ix, Обработка естественного языка с помощью Python, 2009 г.

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

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

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

— Страница xvii, Методы нейронных сетей в обработке естественного языка, 2017.

Глубокое обучение для обработки естественного языка

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

Обзор того, как нейронные сети глубокого обучения могут использоваться для естественного языка, см. В сообщении:

Дополнительная литература

В этом разделе представлены дополнительные ресурсы по теме, если вы хотите углубиться.

Книги

Википедия

Сводка

В этом посте вы узнали, что такое обработка естественного языка, почему это так важно.

В частности, вы выучили:

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

Есть вопросы?
Задайте свои вопросы в комментариях ниже, и я постараюсь ответить.

Разрабатывайте модели глубокого обучения для текстовых данных уже сегодня!

Разработка собственных текстовых моделей за считанные минуты

…с всего несколькими строками кода Python

Узнайте, как это сделать, в моей новой электронной книге:
Глубокое обучение для обработки естественного языка

Он предоставляет самоучителей по таким темам, как:
Пакет слов, встраивание слов, языковые модели, создание титров, перевод текста и многое другое …

Наконец-то привнесите глубокое обучение в свои проекты по обработке естественного языка

Пропустить академики. Только результаты.

Посмотрите, что внутри

Что такое обработка естественного языка?

Развитие обработки естественного языка

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

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

Действительно, программисты использовали перфокарты для связи с первыми компьютерами 70 лет назад. Это руководство и трудоемкий процесс поняло относительно небольшое количество людей.Теперь вы можете сказать: «Алекса, мне нравится эта песня», и устройство, воспроизводящее музыку в вашем доме, уменьшит громкость и ответит: «ОК. Рейтинг сохранен », — сказал он по-человечески. Затем он адаптирует свой алгоритм для воспроизведения этой песни и других подобных песен в следующий раз, когда вы слушаете эту музыкальную станцию.

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

Почему НЛП важно?

Большие объемы текстовых данных

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

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

Структурирование источника данных с высокой степенью неструктурированности

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

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

Ваш путеводитель по обработке естественного языка (NLP) | Диего Лопес Исе

Как машины обрабатывают и понимают человеческий язык

Все, что мы выражаем (устно или письменно), несет в себе огромное количество информации. Тема, которую мы выбираем, наш тон, наш выбор слов — все это добавляет какой-то тип информации, которую можно интерпретировать и извлечь из нее ценность.Теоретически мы можем понять и даже предсказать поведение человека, используя эту информацию.

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

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

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

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

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

NLP может помочь вам с множеством задач, и области применения, кажется, увеличиваются с каждым днем. Приведем несколько примеров:

  • NLP позволяет распознавать и прогнозировать заболевания на основе электронных медицинских карт и собственной речи пациента.Эта способность исследуется в условиях здоровья, которые варьируются от сердечно-сосудистых заболеваний до депрессии и даже шизофрении. Например, Amazon Comprehend Medical — это служба, которая использует NLP для извлечения болезненных состояний, лекарств и результатов лечения из записей пациентов, отчетов о клинических испытаниях и других электронных медицинских записей.
  • Организации могут определять, что клиенты говорят об услуге или продукте, идентифицируя и извлекая информацию из таких источников, как социальные сети.Этот анализ настроений может предоставить много информации о выборе клиентов и их факторах принятия решений.
  • Изобретатель в IBM разработал когнитивного помощника , который работает как персонализированная поисковая машина, узнавая все о вас, а затем напоминая вам имя, песню или что-нибудь, что вы не можете вспомнить, в тот момент, когда вам это нужно.
  • Такие компании, как Yahoo и Google, фильтруют и классифицируют ваши электронные письма с помощью NLP, анализируя текст в электронных письмах, проходящих через их серверы, и останавливают спам еще до того, как они попадут в ваш почтовый ящик.
  • Чтобы помочь идентифицировать фальшивые новости , NLP Group в Массачусетском технологическом институте разработала новую систему, чтобы определить, является ли источник точным или политически предвзятым, определяя, можно ли доверять источнику новостей или нет.
  • Amazon Alexa и Apple Siri являются примерами интеллектуальных голосовых интерфейсов , которые используют NLP для ответа на голосовые подсказки и делают все, например, найти конкретный магазин, сообщить нам прогноз погоды, предложить лучший маршрут до офиса или включить огни дома.
  • Понимание того, что происходит и о чем говорят люди, может быть очень ценным для финансовых трейдеров . NLP используется для отслеживания новостей, отчетов, комментариев о возможных слияниях компаний, все может быть затем включено в торговый алгоритм для получения огромной прибыли. Помните: покупайте слухи, продавайте новости.
  • NLP также используется на этапах поиска и отбора набора талантов , выявляя навыки потенциальных сотрудников, а также выявляя потенциальных клиентов до того, как они станут активными на рынке труда.
  • На основе технологии IBM Watson NLP LegalMation разработала платформу для автоматизации рутинных судебных процессов и помогает юридическим группам сэкономить время, сократить расходы и сместить стратегический фокус.

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

Количество публикаций, содержащих предложение «обработка естественного языка» в PubMed за период 1978–2018 гг. По состоянию на 2018 год PubMed содержит более 29 миллионов ссылок на биомедицинскую литературу.

Компании, такие как Winterlight Labs, значительно улучшают лечение болезни Альцгеймера, отслеживая когнитивные нарушения с помощью речи, а также могут поддерживать клинические испытания и исследования для широкого круга центральных расстройства нервной системы.Следуя аналогичному подходу, Стэнфордский университет разработал Woebot, чат-бота-терапевта с целью помочь людям с тревогой и другими расстройствами.

Но по этому поводу ведутся серьезные разногласия. Пару лет назад Microsoft продемонстрировала, что, анализируя большие выборки поисковых запросов, они могут идентифицировать интернет-пользователей, страдающих от рака поджелудочной железы, еще до того, как им поставят диагноз. Как пользователи отреагируют на такой диагноз? А что было бы, если бы у вас был ложноположительный результат? (это означает, что у вас может быть диагностирована болезнь, даже если у вас ее нет).Это напоминает случай с Google Flu Trends, который в 2009 году был объявлен способным прогнозировать грипп, но позже исчез из-за его низкой точности и неспособности соответствовать прогнозируемым показателям.

НЛП может стать ключом к эффективной клинической поддержке в будущем, но в краткосрочной перспективе еще предстоит решить множество проблем.

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

Пакет слов

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

Чтобы привести короткий пример, я взял первое предложение песни «Через Вселенную» из The Beatles:

Слова текут, как бесконечный дождь в бумажный стаканчик,

Они скользят, когда проходят, они ускользают по всей вселенной

Теперь давайте посчитаем слова:

Этот подход может отражать несколько недостатков, таких как отсутствие семантического значения и контекста, а также факты, которые останавливают слова (например, «the» или «a»), добавляют шум в анализ. и некоторые слова не имеют соответствующего веса («вселенная» весит меньше, чем слово «они»).

Чтобы решить эту проблему, один из подходов состоит в том, чтобы изменить масштаб частоты слов в зависимости от того, как часто они появляются во всех текстах (а не только в том, который мы анализируем), чтобы оценки для часто встречающихся слов, таких как «the», также часто встречаются во всех текстах. другие тексты наказываются. Этот подход к оценке называется «Частота термина — обратная частота документа» (TFIDF) и улучшает набор слов по весу. Через TFIDF часто встречающиеся в тексте термины «вознаграждаются» (например, слово «они» в нашем примере), но они также «наказываются», если эти термины часто встречаются в других текстах, которые мы также включаем в алгоритм.Напротив, этот метод выделяет и «награждает» уникальные или редкие термины с учетом всех текстов. Тем не менее, у этого подхода нет ни контекста, ни семантики.

Токенизация

Это процесс сегментирования бегущего текста на предложения и слова. По сути, это задача разрезать текст на части, называемые токенами , и в то же время отбросить определенные символы, такие как знаки препинания. Следуя нашему примеру, результат токенизации будет:

Довольно просто, не так ли? Что ж, хотя в этом случае это может показаться довольно простым, а также в таких языках, как английский, где слова разделяются пробелом (так называемые сегментированные языки), не все языки ведут себя одинаково, и, если подумать, одних пробелов недостаточно. даже для английского, чтобы выполнить правильную токенизацию.Разделение на пробелы может разбить то, что следует рассматривать как один токен, как в случае определенных имен (например, Сан-Франциско или Нью-Йорк) или заимствованных иностранных фраз (например, laissez faire).

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

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

Более подробные сведения о токенизации можно найти в этой статье.

Удаление стоп-слов

Включает в себя избавление от общеязыковых статей, местоимений и предлогов, таких как «и», «the» или «to» в английском языке. В этом процессе некоторые очень распространенные слова, которые, по-видимому, не имеют большого значения для цели НЛП или не имеют никакого значения, фильтруются и исключаются из обрабатываемого текста, тем самым удаляя широко распространенные и часто встречающиеся термины, которые не информативны для соответствующего текста.

Стоп-слова можно безопасно игнорировать, выполняя поиск в заранее определенном списке ключевых слов, освобождая место в базе данных и сокращая время обработки.

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

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

Основание

Относится к процессу разрезания конца или начала слова с целью удаления аффиксов (лексических добавлений к корню слова).

Аффиксы, которые добавляются в начале слова, называются префиксом (например, «astro» в слове «астробиология»), а аффиксы, добавленные в конце слова, называются суффиксами (например, «ful» в слове «полезный»).

Проблема в том, что аффиксы могут создавать или расширять новые формы одного и того же слова (называемые флективными аффиксами ) или даже сами создавать новые слова (так называемые деривационные аффиксы ). В английском языке префиксы всегда являются производными (аффикс создает новое слово, как в примере с префиксом «eco» в слове «экосистема»), но суффиксы могут быть производными (аффикс создает новое слово, как в примере с суффикс «ist» в слове «гитарист») или словоизменительный (аффикс создает новую форму слова, как в примере с суффиксом «er» в слове «быстрее»).

Итак, как мы можем определить разницу и нарезать нужный кусок?

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

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

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

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

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

Например, слова « работает», «работает» и «выполняется» являются формами слова « run» , поэтому « run» — это лемма всех предыдущих слов.

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

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

Тематическое моделирование

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

Из вселенной методов тематического моделирования, вероятно, наиболее часто используется Скрытое распределение Дирихле (LDA) . Этот относительно новый алгоритм (изобретенный менее 20 лет назад) работает как метод обучения без учителя, который раскрывает различные темы, лежащие в основе набора документов.В методах неконтролируемого обучения , подобных этому, нет выходной переменной, которая бы направляла процесс обучения, и данные исследуются алгоритмами для поиска закономерностей. Чтобы быть более конкретным, LDA находит группы связанных слов по:

  1. Назначая каждое слово случайной теме, где пользователь определяет количество тем, которые он хочет раскрыть. Вы не определяете сами темы (вы определяете только количество тем), и алгоритм будет сопоставлять все документы с темами таким образом, чтобы слова в каждом документе в основном захватывались этими воображаемыми темами.
  2. Алгоритм перебирает каждое слово итеративно и переназначает слово теме, принимая во внимание вероятность того, что слово принадлежит теме, и вероятность того, что документ будет создан темой. Эти вероятности вычисляются многократно, до сходимости алгоритма.

В отличие от других алгоритмов кластеризации, таких как K-means , которые выполняют жесткую кластеризацию (где разделы разделены), LDA присваивает каждому документу набор тем, что означает, что каждый документ может быть описан одной или несколькими темами (например,грамм. Документ 1 описан на 70% темы A, 20% темы B и 10% темы C) и отражает более реалистичные результаты.

Тематическое моделирование чрезвычайно полезно для классификации текстов, построения рекомендательных систем (например, чтобы рекомендовать вам книги на основе ваших прошлых чтений) или даже для выявления тенденций в онлайн-публикациях.

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

В марте 2016 года Microsoft запустила Tay , чат-бота с искусственным интеллектом (AI), выпущенного в Twitter в качестве эксперимента НЛП.Идея заключалась в том, что чем больше пользователей будет общаться с Тэем, тем умнее он станет. Что ж, в результате через 16 часов Тэя пришлось удалить из-за его расистских и оскорбительных комментариев:

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

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

Простое введение в обработку естественного языка | Доктор Майкл Дж. Гарбаде

Обработка естественного языка — это технология, которая помогает компьютерам понимать естественный язык человека.

Обучить машины понимать, как мы общаемся, — непростая задача.

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

В этой статье дается простое введение в обработку естественного языка и способы ее достижения.

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

Конечная цель НЛП — читать, расшифровывать, понимать и понимать человеческие языки ценным способом.

Большинство техник НЛП основаны на машинном обучении для извлечения смысла из человеческих языков.

1. Шпаргалки для AI, нейронных сетей, машинного обучения, глубокого обучения и больших данных

2. Упрощенная часть науки о данных 1: принципы и процесс

3. Начало работы с построением инфраструктуры API реального времени

4.Мастерская ИИ и НЛП

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

1. Человек разговаривает с машиной

2. Машина записывает звук

3. Аудио в текст происходит преобразование

4. Обработка текстовых данных

5. Происходит преобразование данных в аудио

6. Машина реагирует на человека воспроизведением аудиофайла

Обработка естественного языка является движущей силой следующие общие приложения:

  • Приложения языкового перевода, такие как Google Translate
  • Текстовые процессоры, такие как Microsoft Word и Grammarly, которые используют NLP для проверки грамматической точности текстов.
  • Приложения интерактивного голосового ответа (IVR), используемые в центрах обработки вызовов для ответа на запросы определенных пользователей.
  • Приложения для персонального помощника, такие как OK Google, Siri, Cortana и Alexa.

Обработка естественного языка считается сложной задачей в информатике. Природа человеческого языка делает НЛП трудным.

Компьютерам нелегко понять правила, которые диктуют передачу информации на естественных языках.

Некоторые из этих правил могут быть высокоуровневыми и абстрактными; например, когда кто-то использует саркастическое замечание для передачи информации.

С другой стороны, некоторые из этих правил могут быть низкоуровневыми; например, использование символа «s» для обозначения множества элементов.

Полное понимание человеческого языка требует понимания как слов, так и того, как связаны концепции, чтобы передать намеченное сообщение.

Хотя люди могут легко овладеть языком, неоднозначность и неточные характеристики естественных языков затрудняют реализацию НЛП на машинах.

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

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

Иногда компьютер может плохо понимать значение предложения, что приводит к неясным результатам.

Например, юмористический инцидент произошел в 1950-х годах при переводе некоторых слов с английского на русский языки.

Вот библейское предложение, которое потребовало перевода:

«Дух желает, а плоть немощна».

Вот результат перевода предложения на русский и обратно на английский:

«Водка хороша, но мясо гнилое».

Синтаксический анализ и семантический анализ — основные методы, используемые для выполнения задач обработки естественного языка.

Вот описание того, как их можно использовать.

Синтаксис относится к расположению слов в предложении таким образом, чтобы они имели грамматический смысл.

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

Компьютерные алгоритмы используются для применения грамматических правил к группе слов и извлечения из них значения.

Вот несколько синтаксических приемов, которые можно использовать:

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

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

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

Вот некоторые методы семантического анализа:

  • Распознавание именованных сущностей (NER): Он включает в себя определение частей текста, которые можно идентифицировать и разбить на заранее заданные группы.Примеры таких групп включают имена людей и названия мест.
  • Устранение неоднозначности в смысле слова: Включает в себя придание значения слову в зависимости от контекста.
  • Генерация естественного языка : Это включает использование баз данных для получения семантических намерений и преобразования их в человеческий язык.

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

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

Использовали ли вы какую-либо технику НЛП для улучшения функциональности вашего приложения?

Или у вас есть вопросы или комментарии?

Поделитесь, пожалуйста, ниже.

Что такое обработка естественного языка?

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

Что такое обработка естественного языка?

Обработка естественного языка (NLP) относится к области информатики, а точнее, к области искусственного интеллекта или ИИ, которая дает компьютерам возможность понимать текст и произносимые слова так же, как это могут делать люди.

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

NLP управляет компьютерными программами, которые переводят текст с одного языка на другой, реагируют на голосовые команды и быстро резюмируют большие объемы текста — даже в режиме реального времени.Есть большая вероятность, что вы взаимодействовали с НЛП в форме голосовых GPS-систем, цифровых помощников, программного обеспечения для преобразования речи в текст, чат-ботов для обслуживания клиентов и других потребительских удобств. Но NLP также играет растущую роль в корпоративных решениях, которые помогают оптимизировать бизнес-операции, повысить производительность сотрудников и упростить критически важные бизнес-процессы.

Задачи НЛП

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

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

  • Распознавание речи , также называемое преобразованием речи в текст, является задачей надежного преобразования голосовых данных в текстовые данные. Распознавание речи требуется для любого приложения, которое выполняет голосовые команды или отвечает на устные вопросы. Что делает распознавание речи особенно сложным, так это то, как люди разговаривают — быстро, невнятно произнося слова, с разным акцентом и интонацией, с разными акцентами и часто с неправильной грамматикой.
  • Часть речевой маркировки , также называемая грамматической маркировкой, — это процесс определения части речи конкретного слова или фрагмента текста на основе его использования и контекста. Часть речи идентифицирует «сделать» как глагол в слове «Я могу сделать бумажный самолетик» и как существительное в слове «Какой у тебя автомобиль?»
  • Устранение неоднозначности смысла слова — это выбор значения слова с несколькими значениями посредством процесса семантического анализа, который определяет слово, которое имеет наибольший смысл в данном контексте.Например, устранение неоднозначности смысла слова помогает отличить значение глагола «сделать» в «сделать оценку» (достичь) и «сделать ставку» (место).
  • Распознавание именованного объекта, или NEM, идентифицирует слова или фразы как полезные объекты. NEM идентифицирует «Кентукки» как место или «Фред» как мужское имя.
  • Разрешение совмещения — это задача определения того, относятся ли два слова к одному и тому же объекту и когда. Самый распространенный пример — определение человека или объекта, к которому относится определенное местоимение (например,g., ‘she’ = ‘Mary’), но это также может включать определение метафоры или идиомы в тексте (например, случай, когда «медведь» не животное, а крупный волосатый человек).
  • Анализ настроений пытается извлечь из текста субъективные качества — отношения, эмоции, сарказм, замешательство, подозрительность.
  • Генерация естественного языка иногда описывается как противоположность распознавания речи или преобразования речи в текст; это задача перевода структурированной информации на человеческий язык.

См. Сообщение в блоге «НЛП против NLU против NLG: различия между тремя концепциями обработки естественного языка» для более глубокого изучения взаимосвязи этих концепций.

Инструменты и подходы НЛП

Python и набор средств естественного языка (NLTK)

Язык программирования Python предоставляет широкий спектр инструментов и библиотек для атаки на определенные задачи НЛП. Многие из них можно найти в Natural Language Toolkit, или NLTK, коллекции библиотек, программ и образовательных ресурсов с открытым исходным кодом для создания программ НЛП.

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

Статистическое НЛП, машинное обучение и глубокое обучение

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

Введите статистическое НЛП, которое объединяет компьютерные алгоритмы с моделями машинного обучения и глубокого обучения для автоматического извлечения, классификации и маркировки элементов текстовых и голосовых данных, а затем присваивает статистическую вероятность каждому возможному значению этих элементов.Сегодня модели глубокого обучения и методы обучения, основанные на сверточных нейронных сетях (CNN) и рекуррентных нейронных сетях (RNN), позволяют системам NLP, которые « учатся » в процессе работы, извлекают все более точное значение из огромных объемов необработанного, неструктурированного и немаркированного текста. и наборы голосовых данных.

Для более глубокого понимания нюансов между этими технологиями и подходами к их обучению см. «ИИ против машинного обучения против глубокого обучения против нейронных сетей: в чем разница?»

Примеры использования NLP

Обработка естественного языка — движущая сила машинного интеллекта во многих современных реальных приложениях.Вот несколько примеров:

  • Обнаружение спама: Вы можете не думать об обнаружении спама как о решении NLP, но лучшие технологии обнаружения спама используют возможности классификации текста NLP для сканирования электронной почты на язык, который часто указывает на спам или фишинг. Эти индикаторы могут включать чрезмерное использование финансовых терминов, характерную плохую грамматику, угрожающие выражения, неуместную срочность, неправильное написание названий компаний и многое другое. Обнаружение спама — одна из немногих проблем НЛП, которые эксперты считают «в основном решенными» (хотя вы можете возразить, что это не соответствует вашему опыту работы с электронной почтой).
  • Машинный перевод: Google Translate является примером широко доступной технологии НЛП в действии. По-настоящему полезный машинный перевод включает в себя больше, чем замену слов одного языка словами другого. Эффективный перевод должен точно улавливать значение и тон языка ввода и переводить его в текст с тем же значением и желаемым воздействием на языке вывода. Инструменты машинного перевода достигли значительного прогресса с точки зрения точности. Отличный способ протестировать любой инструмент машинного перевода — это перевести текст на один язык, а затем обратно на оригинал.Часто цитируемый классический пример: не так давно перевод « Дух желает, но плоть слаба» с английского на русский и обратно дал « Водка хорошая, но мясо гнилое ». Сегодня результат: « Дух желает, но плоть слаба» , что не идеально, но внушает гораздо больше уверенности в переводе с английского на русский.
  • Виртуальные помощники и чат-боты: Виртуальные помощники, такие как Siri от Apple и Alexa от Amazon, используют распознавание речи для распознавания шаблонов в голосовых командах и генерации естественного языка, чтобы отвечать соответствующими действиями или полезными комментариями.Чат-боты выполняют ту же магию в ответ на ввод текста. Лучшие из них также учатся распознавать контекстные подсказки о человеческих запросах и использовать их, чтобы со временем предоставлять еще более эффективные ответы или варианты. Следующее усовершенствование для этих приложений — ответы на вопросы, способность отвечать на наши вопросы — ожидаемые или нет — соответствующими и полезными ответами своими словами.
  • Анализ настроений в социальных сетях: NLP стал важным бизнес-инструментом для выявления скрытых данных из каналов социальных сетей.Анализ настроений может анализировать язык, используемый в сообщениях, ответах, обзорах и т. Д. В социальных сетях, чтобы определить отношения и эмоции в ответ на продукты, рекламные акции и события — информацию, которую компании могут использовать в дизайне продуктов, рекламных кампаниях и т. Д.
  • Обобщение текста: Обобщение текста использует методы НЛП для переваривания огромных объемов цифрового текста и создания резюме и синопсисов для указателей, исследовательских баз данных или занятых читателей, у которых нет времени читать полный текст.Лучшие приложения для реферирования текста используют семантическое мышление и генерацию естественного языка (NLG) для добавления полезного контекста и выводов к сводкам.

Обработка естественного языка и IBM Watson

  • IBM внедрила инновации в области искусственного интеллекта, представив инструменты и услуги на основе NLP, которые позволяют организациям автоматизировать свои сложные бизнес-процессы, получая при этом важные бизнес-идеи. Эти инструменты включают:
    • Watson Discovery — Получайте качественные ответы и подробные сведения из сложных корпоративных документов — таблиц, PDF-файлов, больших данных и т. Д. — с помощью поиска AI.Позвольте вашим сотрудникам принимать более обоснованные решения и экономить время с помощью поисковой системы в реальном времени и возможностей интеллектуального анализа текста, которые выполняют извлечение текста и анализируют взаимосвязи и закономерности, скрытые в неструктурированных данных. Watson Discovery использует настраиваемые модели НЛП и методы машинного обучения, чтобы предоставить пользователям ИИ, который понимает уникальный язык их отрасли и бизнеса. Исследуйте Watson Discovery
    • Watson Natural Language Understanding (NLU) — Анализируйте текст в форматах неструктурированных данных, включая HTML, веб-страницы, социальные сети и т. Д.Повысьте свое понимание человеческого языка, используя этот набор инструментов естественного языка для определения концепций, ключевых слов, категорий, семантики и эмоций, а также для выполнения классификации текста, извлечения сущностей, распознавания именованных сущностей (NER), анализа тональности и резюмирования. Изучите Watson Natural Language Understanding
    • Watson Assistant — Повысьте качество обслуживания клиентов и поддержку клиентов по каналам, таким как чат-боты и голосовая связь, с помощью диалоговой платформы искусственного интеллекта. Предоставьте своим сотрудникам возможность отвечать на вопросы и устранять неоднозначность виртуальных помощников на основе языковых моделей, чтобы они могли сосредоточиться на более ценной работе.И все это при сокращении затрат. Изучите Watson Assistant
  • Для получения дополнительной информации о том, как начать работу с одной из технологий обработки естественного языка IBM Watson, посетите страницу IBM Watson Natural Language Processing.

Зарегистрируйтесь для получения идентификатора IBMid и создайте свою учетную запись IBM Cloud.

Что такое обработка и генерация естественного языка (NLP / NLG)? — TechTalks

Эта статья является частью серии постов Demystifying AI, которые (пытаются) устранить неоднозначность жаргона и мифов, окружающих ИИ.

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

 SELECT TOP 10 SUM (sale_total) AS total_sales FROM sales ГДЕ sale_date> DATEADD (день, -365, GETDATE ()) GROUP BY item_id 

Сегодня выполнить ту же задачу так же просто, как написать следующий запрос на такой платформе, как IBM Watson:

Какие 10 товаров были проданы больше всего за последний год?

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

Но никогда эти изменения не были более драматичными, чем за последнее десятилетие, когда искусственный интеллект превратился из научно-фантастического мифа в повседневную реальность. Благодаря появлению машинного обучения, алгоритмов искусственного интеллекта, которые обучаются на примерах, мы можем разговаривать с Alexa, Siri, Cortana и Google Assistant, и они могут отвечать нам.

За революцией в области цифровых помощников и других диалоговых интерфейсов стоит обработка и генерация естественного языка (NLP / NLG), две ветви машинного обучения, которые включают преобразование человеческого языка в компьютерные команды и наоборот.

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

Проблемы анализа человеческого языка

На протяжении десятилетий ученые пытались дать людям возможность взаимодействовать с компьютерами с помощью команд естественного языка. Одним из первых примеров является ELIZA, первое приложение для обработки естественного языка, созданное лабораторией искусственного интеллекта Массачусетского технологического института в 1960-х годах.ELIZA подражала поведению психиатра и вела диалог с пользователями, спрашивая их об их чувствах и давая соответствующие ответы. За ELIZA последовали PARRY (1972) и Jabberwacky (1988).

Другой пример — Zork, интерактивная приключенческая игра, разработанная в 1970-х годах, в которой игрок давал указания, вводя предложения в интерфейсе командной строки, такие как «положи лампу и меч в футляр».

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

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

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

Как машинное обучение и НЛП решают проблему

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

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

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

Каковы виды использования НЛП?

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

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

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

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

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

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

Создание результата, который выглядит искусственно созданным, с помощью NLG

Обратная сторона медали НЛП — NLG.Согласно Gartner, «в то время как NLP ориентировано на получение аналитических сведений из текстовых данных, NLG используется для синтеза текстового контента путем объединения аналитических выходных данных с контекстуализированными повествованиями».

Другими словами, если NLP позволяет программному обеспечению читать человеческий язык и преобразовывать его в понятные компьютеру данные, NLG позволяет ему преобразовывать компьютерные данные в понятный человеку текст.

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

Дорога впереди

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

Что будет дальше? Возможно, NLP и NLG останутся сфокусированными на выполнении все более и более утилитарных вариантов использования. Или, может быть, они приведут нас к реальным, полным по Тьюрингу машинам, которые могут заставить людей полюбить их. Как бы то ни было, впереди нас ждут захватывающие времена.

Обработка естественного языка | Что такое НЛП?

CX СЛОВАРЬ

Обработка естественного языка (NLP) — это область компьютерных наук, которая занимается применением лингвистических и статистических алгоритмов к тексту для извлечения смысла способом, очень похожим на то, как человеческий мозг понимает язык.

Почему важна обработка естественного языка?

Около 95% данных о клиентах находится в форме неструктурированного текста — в электронных письмах, ответах на анкеты, сообщениях в Twitter, онлайн-обзорах, комментариях на форумах и т. Д.

Прочитать весь этот текст практически невозможно: если предположить, что средний человек может обработать 50 элементов неструктурированных данных в час, одному человеку потребуется почти семь лет, чтобы прочитать миллион элементов.

Для сравнения, Verizon ежемесячно анализирует 700 000 опросов после звонка с помощью Clarabridge Speech, и это только один из их источников данных.Так как же понять и извлечь уроки из всей этой обратной связи?

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

Что отличает Clarabridge NLP от других?

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

Написать ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *