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

Опубликовано: 25 Июля, 2021

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

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

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

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

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

Было бы здорово, если бы компьютер понимал, что Сан-Педро - это остров в районе Белиза в Центральной Америке с населением 16 444 человека и второй по величине город Белиза. Но чтобы компьютер понял это, нам нужно научить компьютер основам письменной речи.

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

  • Шаг # 1: сегментация предложения

    Разбиение отрывка текста на различные предложения.

    Input : San Pedro is a town on the southern part of the island of Ambergris Caye in the Belize District of the nation of Belize, in Central America. According to 2015 mid-year estimates, the town has a population of about 16, 444. It is the second-largest town in the Belize District and largest in the Belize Rural South constituency.

    Output : San Pedro is a town on the southern part of the island of Ambergris Caye in the 2.Belize District of the nation of Belize, in Central America.
    According to 2015 mid-year estimates, the town has a population of about 16, 444.
    It is the second-largest town in the Belize District and largest in the Belize Rural South constituency.
    For coding a sentence segmentation model, we can consider splitting a sentence when it encounters any punctuation mark. But modern NLP pipelines have techniques to split even if the document isn’t formatted properly.

  • Шаг 2: токенизация слов

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

    Input : San Pedro is a town on the southern part of the island of Ambergris Caye in the Belize District of the nation of Belize, in Central America. According to 2015 mid-year estimates, the town has a population of about 16, 444. It is the second-largest town in the Belize District and largest in the Belize Rural South constituency.

    Output : ‘San Pedro’, ’ is’, ’a’, ’town’ and so.



  • Шаг № 3: Прогнозирование частей речи для каждого токена

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

    Процесс будет выглядеть так:

    Вход: часть модели классификации речи. 
    Выход: Город - нарицательное существительное
             Is - глагол 
             - определитель
    

    Точно так же он будет классифицировать различные токены.

  • Шаг 4: лемматизация

    Кормление модели корневым словом.
    Например -

     В поле пасется буйвол. 
    В поле пасутся буйволы.

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

    Аналогичным образом мы можем использовать его и для глаголов. «Играть» и «Играть» следует рассматривать как одно и то же.

  • Шаг № 5: Определение стоп-слов

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

  • Шаг 6.1: Анализ зависимостей

    Это означает выяснение отношения между словами в предложении и их отношения друг к другу. Мы создаем дерево синтаксического анализа при синтаксическом анализе зависимостей с корнем в качестве основного глагола в предложении. Если мы говорим о первом предложении в нашем примере, то «is» - это главный глагол, и он будет корнем дерева синтаксического анализа. Мы можем построить дерево разбора для каждого предложения с одним корневым словом (главным глаголом), связанным с ним. Мы также можем определить, какие отношения существуют между двумя словами. В нашем примере «Сан-Педро» - это тема, а «остров» - атрибут. Таким образом, может быть установлена связь между «Сан-Педро» и «есть», «островом» и «есть».

    Точно так же, как мы обучили модель машинного обучения распознавать различные части речи, мы можем обучить модель определять зависимость между словами, вводя много слов. Но это сложная задача. В 2016 году Google выпустил новый парсер зависимостей Parsey McParseface, в котором использовался подход глубокого обучения.

  • Шаг 6.2: Поиск словосочетаний с существительными

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

  • Шаг # 7: Распознавание именованных сущностей (NER)

    Сан-Педро - город в южной части острова Амбергрис-Кей во 2-м округе Белиз государства Белиз в Центральной Америке.
    Здесь NER сопоставляет слова с местами из реального мира. Места, которые действительно существуют в физическом мире. Мы можем автоматически извлекать реальные места в документе, используя НЛП.

    Если вышеприведенное предложение является вводом, NER отобразит его следующим образом:

     Сан-Педро - географическая сущность
    Ambergris Caye - Географическая сущность
    Белиз - географическая организация
    Центральная Америка - географическая сущность

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

    Типы объектов, которые может помечать типичная система NER:

     Имена людей. 
    Названия компаний. 
    Географическое положение
    Названия продуктов. 
    Дата и время. 
    Количество денег. 
    События.
  • Шаг № 8: Разрешение Coreference:

    Сан-Педро - город в южной части острова Амбергрис-Кей в округе Белиз нации Белиз в Центральной Америке. Согласно среднегодовым оценкам 2015 года, в городе проживает около 16 444 человек. Это второй по величине город в округе Белиз и крупнейший в южном округе Белиза.

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