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

В этом вводном руководстве мы раскроем возможности этого фреймворка, рассмотрев 4 распространенных и важных метода:

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

🔹 Идентификация языка

🔹 Пометка части речи

🔹 Определение людей, мест и организаций в тексте

1) Токенизация

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

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

В приведенном ниже примере показано, как использовать NLTokenizer для перечисления слов в предложении. NLTokenizer принимает параметр единицы, который имеет тип NLTokenUnit. Это определяет тип текста, который мы вводим. Он бывает четырех типов: слово, предложение, абзац и документ. Мы можем запустить образцы кода в Create ML, чтобы легко проверить результаты.

Он перечисляет слова, как показано ниже:

2) Идентификация языка

Мы можем определить язык данного текста с помощью класса NLLanguageRecognizer. Он поддерживает 57 языков.

Мы можем использовать его, как показано ниже:

dominantLanguage показывает прогнозируемый язык с наивысшей точностью.

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

3) Пометка части речи

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

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

Как видно ниже, он успешно определяет типы слов:

При использовании NLTagger, в зависимости от типа, который вы хотите обнаружить, вы можете указать одну или несколько схем тегов (NLTagScheme) в качестве параметра. Например, схема tokenType классифицирует слова, знаки препинания и пробелы; а схема lexicalClass классифицирует типы слов, типы пунктуации и пробелы.

При перечислении тегов вы можете пропустить определенные типы (например, установив параметр options. В показанном выше коде он пропускает параметры настройки знаков препинания и пробелов до [.omitPunctuation, .omitWhitespace].

NLTagger может обнаружить все эти лексические классы:

существительное, глагол, прилагательное, наречие, местоимение, определитель, частица, предлог, число, союз, междометие, классификатор, идиома, другое слово, предложениеTerminator, openQuote, closeQuote, openParenthesis, closeParenthesis, wordJoiner, dash, otherPunctuation, paragraphBreak, otherWhitespace.

4) Определение людей, мест и организаций

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

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

Давайте посмотрим, как мы можем обнаружить эти имена в примере предложения:

Здесь мы снова используем NLTagger, но на этот раз мы установили другую опцию с именем joinNames, которая объединяет имена и фамилии. Чтобы отфильтровать личные имена, места и организации, мы создаем массив NLTag.

Теги слов, которые может найти NLTagger, показаны ниже:

Как вы можете видеть выше, мы можем вывести конкретные знания из текста с помощью платформы естественного языка iOS.

Резюме

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

🔹 Токенизация для поддерживаемых языков.

🔹 Определение языка данного текста.

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

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

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

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

Спасибо за прочтение!

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

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

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

Если вы хотите внести свой вклад, отправляйтесь на наш призыв к участникам. Вы также можете подписаться на наши еженедельные информационные бюллетени (Deep Learning Weekly и Comet Newsletter), присоединиться к нам в » «Slack и подписаться на Comet в Twitter и LinkedIn для получения ресурсов, событий и гораздо больше, что поможет вам быстрее создавать лучшие модели машинного обучения.