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

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

История НПЛ

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

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

К 1964 году в Массачусетском технологическом институте был создан первый чат-бот ELIZA. Построенный на сопоставлении с образцом и замене, он имитировал терапевтический процесс, задавая открытые вопросы. Хотя это, казалось, воспроизводило осознание, в нем не было истинной контекстуализации разговора. Даже с этими ограниченными возможностями многие были удивлены тем, насколько человечными ощущались эти взаимодействия.

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

На протяжении 90-х годов экспоненциальный рост вычислительной мощности способствовал развитию, но только в 2006 году, когда компания IBM Watson пошла на обозрение Jeopardy, прогресс компьютерного интеллекта стал заметен широкой публике. Для меня это было появление Siri на iPhone в 2011 году, которое заставило меня осознать потенциал.

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



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

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

  • Очистка состоит из удаления менее полезных частей текста путем удаления стоп-слов, обработки заглавных букв, символов и других деталей.
  • Аннотация заключается в применении схемы к текстам. Аннотации могут включать структурную разметку и теги части речи.
  • Нормализация состоит из перевода (сопоставления) терминов в схеме или лингвистических сокращений с помощью Stemming, Lemmazation и других форм стандартизации.
  • Анализ состоит из статистического исследования, обработки и обобщения набора данных для анализа признаков.

Инструменты

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

Заглавные буквы

Текст часто имеет различные заглавные буквы, отражающие начало предложения, ударение на имена собственные. Наиболее распространенный подход состоит в том, чтобы для простоты перевести все в нижний регистр, но важно помнить, что некоторые слова, такие как «США» на «нас», могут изменять значение при переводе в нижний регистр.

Stopword

Большинство слов в данном тексте соединяют части предложения, а не показывают темы, объекты или намерения. Такие слова, как «the» или «and» можно удалить, сравнив текст со списком стоп-слов.

IN:
['He', 'did', 'not', 'try', 'to', 'navigate', 'after', 'the', 'first', 'bold', 'flight', ',', 'for', 'the', 'reaction', 'had', 'taken', 'something', 'out', 'of', 'his', 'soul', '.']
OUT:
['try', 'navigate', 'first', 'bold', 'flight', ',', 'reaction', 'taken', 'something', 'soul', '.']

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

Токенизация

Токенизация описывает разделение абзацев на предложения или предложений на отдельные слова. Для бывшего Устранение неоднозначности границ предложений (SBD) может применяться для создания списка отдельных предложений. Это основано на предварительно обученных алгоритмах для конкретного языка, таких как Punkt Models от NLTK.

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

IN:
"He did not try to navigate after the first bold flight, for the reaction had taken something out of his soul."
OUT:
['He', 'did', 'not', 'try', 'to', 'navigate', 'after', 'the', 'first', 'bold', 'flight', ',', 'for', 'the', 'reaction', 'had', 'taken', 'something', 'out', 'of', 'his', 'soul', '.']

Бывают случаи, когда это может вызвать проблемы, если слово сокращено, усечено или является притяжательным. Существительные собственные могут также пострадать в случае имен, в которых используются знаки препинания (например, O’Neil).

Части речевых тегов

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

IN:
['And', 'from', 'their', 'high', 'summits', ',', 'one', 'by', 'one', ',', 'drop', 'everlasting', 'dews', '.']
OUT:
[('And', 'CC'),
 ('from', 'IN'),
 ('their', 'PRP$'),
 ('high', 'JJ'),
 ('summits', 'NNS'),
 (',', ','),
 ('one', 'CD'),
 ('by', 'IN'),
 ('one', 'CD'),
 (',', ','),
 ('drop', 'NN'),
 ('everlasting', 'VBG'),
 ('dews', 'NNS'),
 ('.', '.')]
Definitions of Parts of Speech
('their', 'PRP$') PRP$: pronoun, possessive
    her his mine my our ours their thy your

Стемминг

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

IN:
["It never once occurred to me that the fumbling might be a mere mistake."]
OUT:
 ['it', 'never',  'onc',  'occur',  'to',  'me',  'that',  'the', 'fumbl',  'might', 'be', 'a', 'mere',  'mistake.'],

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

Леммазация

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

The stemmed form of leafs is: leaf
The stemmed form of leaves is: leav
The lemmatized form of leafs is: leaf
The lemmatized form of leaves is: leaf

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

Количество / плотность

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

Встраивание слов / текстовые векторы

Встраивание слов - это современный способ представления слов в виде векторов. Целью встраивания слов является переопределение высокоразмерных признаков слова в низкоразмерные векторы признаков. Другими словами, он представляет слова в координатах вектора X и Y, где связанные слова, основанные на совокупности отношений, расположены ближе друг к другу. Word2Vec и GloVe - самые распространенные модели для преобразования текста в векторы.

Заключение

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

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

Хлопайте, если вам понравилась статья, подпишитесь, если вам интересно узнать больше об обработке естественного языка!

Дополнительные ресурсы