Preprocess Text

Важно!

Поддержка Студии машинного обучения (классической) будет прекращена 31 августа 2024 г. До этой даты рекомендуется перейти на Машинное обучение Azure.

Начиная с 1 декабря 2021 года вы не сможете создавать новые ресурсы Студии машинного обучения (классической). Существующие ресурсы Студии машинного обучения (классическая версия) можно будет использовать до 31 августа 2024 г.

Поддержка документации по ML Studio (классической) прекращается, а сама документация может не обновляться в будущем.

Выполняет операции очистки в тексте

категория: Анализ текста

Примечание

применимо к: только Машинное обучение Studio (классическая модель)

Подобные модули перетаскивания доступны в конструкторе машинного обучения Azure.

Обзор модуля

в этой статье описывается, как использовать модуль предварительной обработки текста в Машинное обучение Studio (классическая модель) для очистки и упрощения текста. Предварительная обработка текста позволяет легко создавать осмысленные функции из текста.

Например, модуль предварительной обработки текста поддерживает следующие общие операции с текстом:

  • Удаление стоп-слов
  • Использование регулярных выражений для поиска и замены конкретных целевых строк
  • Лемматизация, то есть преобразование нескольких связанных слов в одну каноническую форму
  • Фильтрация по конкретным частям речи
  • Нормализация регистра
  • Удаление определенных классов символов, таких как числа, специальные символы и последовательности повторяющихся символов, например "аааа"
  • Обнаружение и удаление сообщений электронной почты и URL-адресов

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

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

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

  1. Добавьте модуль предварительной обработки текста в эксперимент в студии (классическая модель). Этот модуль можно найти в разделе Анализ текста.

  2. Подключите набор данных, содержащий хотя бы один столбец с текстом.

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

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

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

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

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

    Совет

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

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

    • Удалить существительные: Выберите этот параметр, чтобы удалить существительные.
    • Удалить прилагательные: Выберите этот параметр, чтобы удалить прилагательные.
    • Удалить команды: Выберите этот параметр, чтобы удалить команды.

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

  6. Текстовый столбец для очистки: выберите столбец или столбцы, которые необходимо предварительно обработать.

  7. Удалить стоп-слова. Выберите этот параметр, если требуется применить заранее составленный список стоп-слов к текстовому столбцу. Прекращение удаления Word выполняется до выполнения других процессов.

    Списки стоп-слово зависят от языка и могут настраиваться; Дополнительные сведения см. в разделе Технические примечания .

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

    Процесс лемматизация зависит от языка. Дополнительные сведения см. в разделе " Технические примечания ".

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

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

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

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

    Если символы не нормализованы, то одно и то же слово в прописных и строчных буквах считается двумя разными словами: например, AM совпадает с am .

  12. При необходимости можно удалить следующие типы символов или последовательностей символов из обработанного выходного текста:

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

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

    • Удалить специальные символы: Используйте этот параметр, чтобы заменить все специальные символы, отличные от буквенно-цифровых, символом вертикальной черты | .

      Дополнительные сведения о специальных символах см. в разделе Технические примечания .

    • Удалить повторяющиеся символы: Выберите этот параметр, чтобы удалить все последовательности, повторяющиеся символы. Например, будет удалена последовательность, например "AAAA".

    • Удалить адреса электронной почты. Выберите этот параметр, чтобы удалить любую последовательность формата <string>@<string>.

    • Удалить URL-адреса: Выберите этот параметр, чтобы удалить все последовательности, включающие следующие префиксы URL-адресов:

      • http, https
      • ftp
      • www
  13. Развернуть сокращенные глагольные формы. Этот параметр применяется только к языкам, в которых используются сокращенные глагольные формы (в настоящее время только для английского языка).

    Например, если выбран этот параметр, можно заменить фразу wouldn't stay there на "would not stay there" .

  14. Нормализовать обратные косые черты до косых черт. Выберите этот параметр, чтобы сопоставить все экземпляры \\ с /.

  15. Разбить маркеры на специальные символы. Выберите этот параметр, если нужно разбить слова на такие символы &, - и т. д.

    Например, строка MS-WORD будет разделена на два токена: MS и WORD .

Примеры

Следующие примеры в Коллекция решений ии Azure иллюстрируют использование модуля предварительной обработки текста :

Технические примечания

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

Поддерживаемые языки

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

  • Нидерландский
  • Английский
  • Французский
  • Немецкий
  • Итальянский
  • Испанский

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

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

Лемматизация — это процесс идентификации одной канонической формы для представления нескольких маркеров слов.

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

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

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

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

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

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

  • Идентификация частей речи. в любой последовательности слов может быть трудно определить точную часть речи для каждого слова. Даже очевидное простое предложение, например «летит со временем как стрелка», может иметь множество десятков синтаксических анализов (например, известный пример). Части речи также сильно отличаются в зависимости от морфологи разных языков.

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

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

Пример выходных данных лемматизация

Источник Аннотированной фразой с преобразованием регистра
Он Swimming я дорожки
Он собирается дорожки я перейду к дорожки
Swimming хорошо подходит для здания дорожки хорошо подходит для построения
Он создает здание Он создает сборку
Все здания зданий все построение сборки

Примечание

Языковые модели, используемые для создания словарной формы, были обучены и протестированы на основе различных общих и технических текстов и используются во многих других продуктах Майкрософт, требующих API-интерфейсы на естественном языке. Тем не менее естественный язык по своей природе является неоднозначным и 100% точности для всех словарей нецелесообразно. Например, лемматизация может зависеть от других частей речи или от способа синтаксического анализа предложения.

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

Специальные символы

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

Стоп-слова

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

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

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

Язык Число стоп-слова Примеры
Нидерландский 49 ААН, AF, Al
Английский 312 а, about, выше
Французский 154 de, DES, d ', Ла
Немецкий 602 a, AB, Абер
Итальянский 135 a, адессо, AI
Испанский 368 éса, éста, éсте

Для вашего удобства ZIP-файл, содержащий стоп-слова по умолчанию для всех текущих языков, стал доступен в службе хранилища Azure: Stopwords.zip.

Как изменить список стоп-слово

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

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

  • Файл должен содержать один текстовый столбец. Если имеется дополнительный столбец, может возникнуть следующая ошибка: "Предварительная обработка текста ошибок" шаблон выбора столбца "текстовый столбец для очистки" должен предоставить 1 столбец (ы), выделенный во входном наборе данных, но фактически предоставлены 2 столбца (-ов). (Ошибка 0022) "

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

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

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

  • Список стоп-слово не может быть пустым.

Порядок операций

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

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

Обязательно протестируйте целевые условия заранее, чтобы гарантировать правильные результаты.

Неподдерживаемые языки

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

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

"Ошибка предварительной обработки текста (0039): Укажите поддерживаемый язык".

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

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

\"Sentence Language" Dutch|English|French|Italian|Spanish

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

\"Sentence Iso6391 Name" nl|en|fr|it|es

Ожидаемые входные данные

Имя Тип Описание
Dataset Таблица данных Входные данные
Прерывать слова Таблица данных Необязательный пользовательский список запретных слов для удаления

Параметры модуля

Имя Type Диапазон Необязательно Значение по умолчанию Описание
Удалить URL-адреса Логическое значение True

False
Обязательно Да Удалить URL-адреса
Язык Язык Английский

Испанский

Французский

Нидерландский

Немецкий

Итальянский
Обязательно Английский Выберите язык для предварительной обработки
Текстовый столбец для очистки Выполните действия на странице Выбор столбцов. Обязательно StringFeature Выберите столбец текста для очистки
Пользовательское регулярное выражение Строка Необязательно Укажите пользовательское регулярное выражение
Пользовательская строка замены Строка Необязательно Укажите пользовательскую строку замены для настраиваемого регулярного выражения
Удалить останавливаемые слова Логическое Обязательно Да Удалить останавливаемые слова
Лемматизация Логическое Обязательно Да Использование лемматизация
Удалить по части речи Истинный тип false true

false
Обязательно Неверно Укажите, следует ли использовать анализ части речи для определения и удаления определенных классов Word
Удалить существительные Логическое Применяется, если выбран параметр Фильтровать по части речи Да Удалить существительные
Удалить прилагательные Логическое Применяется, если выбран параметр Фильтровать по части речи Да Удалить прилагательные
Удалить команды Логическое Применяется, если выбран параметр Фильтровать по части речи Да Удалить команды
Обнаружение предложений Логическое Обязательно Да Обнаружение предложений путем добавления признака конца предложения \ "| | | \ ", который может использоваться модулем извлечения функций n-грамм
Нормализация регистра до нижнего Логическое Обязательно Да Нормализация регистра до нижнего
Удалить числа Логическое Обязательно Да Удалить числа
Удалить специальные символы Логическое Обязательно Да Удалить специальные символы, не являющиеся буквенно-цифровыми, и заменить их символом \ "| \"
Удалить дублирующиеся символы Логическое Обязательно Да Удалить дублирующиеся символы
Удаление адресов электронной почты Логическое Обязательно Да Удаление адресов электронной почты

Выходные данные

Имя Тип Описание
Набор данных результатов Таблица данных Набор данных результатов

Исключения

Исключение Описание
Ошибка 0003 Исключение возникает, если один или несколько входных аргументов имеют значение NULL или пусты.
Ошибка 0030 Исключение возникает, когда не удается скачать файл.
Ошибка 0048 Исключение возникает, когда не удается открыть файл.
Ошибка 0049 Исключение возникает, когда не удается проанализировать файл.

список ошибок, относящихся к модулям студии (классическая версия), см. в разделе Машинное обучение коды ошибок.

список исключений API см. в разделе Машинное обучение REST API коды ошибок.

См. также раздел

Анализ текста

Список модулей в алфавитном порядке