Лаборатория решений для машинного обучения Amazon (MLSL) недавно создала инструмент для аннотирования текста с помощью распознавания именованных объектов (NER) и меток отношений с использованием Amazon SageMaker - основа правды. Аннотаторы используют этот инструмент для маркировки текста именованными объектами и связывания их взаимосвязей, тем самым создавая набор данных для обучения современным моделям машинного обучения (ML) обработки естественного языка (NLP). Самое главное, что теперь это общедоступно для всех клиентов AWS.
Пример использования клиентом: Booking.com
Booking.com является одной из ведущих мировых онлайн-платформ для путешествий. Понимание того, что клиенты говорят о более чем 28 миллионах объявлений компании на платформе, необходимо для поддержания первоклассного обслуживания клиентов. Раньше Booking.com мог использовать только традиционный анализ настроений для интерпретации отзывов клиентов в масштабе. Стремясь повысить точность этих интерпретаций, Booking.com недавно обратился к MLSL за помощью в создании пользовательского аннотированного набора данных для обучения модели анализа настроений на основе аспектов.
Традиционный анализ настроений — это процесс классификации фрагмента текста как положительного, отрицательного или нейтрального. исключительное чувство. Это работает, чтобы в целом понять, удовлетворены или не удовлетворены пользователи конкретным опытом. Например, при традиционном анализе настроений следующий текст может быть классифицирован как «нейтральный»:
Наше пребывание в отеле было хорошим. Персонал был дружелюбным, и номера были чистыми, но наши кровати были довольно неудобными.
Анализ настроений на основе аспектов предлагает более тонкое понимание контента. В случае с Booking.com вместо того, чтобы брать отзыв клиента в целом и классифицировать его по категориям, он может брать мнение из отзыва и назначать его конкретным аспектам. Например, отзывы клиентов о данном отеле могут хвалить безупречный бассейн и фитнес-центр, но содержать критические отзывы о ресторане и лаундже.
Утверждение, которое было бы классифицировано как «нейтральное» при традиционном анализе настроений, при анализе настроений на основе аспектов станет:
Наше пребывание в отеле было хорошим. Персонал был дружелюбным, и номера были чистыми, но наши кровати были довольно неудобными.
- Отель: Позитив
- Персонал: Положительный
- Комната: Позитивная
- Кровати: Отрицательный
Booking.com стремился создать настраиваемую модель анализа настроений на основе аспектов, которая сообщала бы им, какие конкретные части опыта гостя (из списка из 50+ аспектов) были положительный, отрицательныйили нейтральный.
Прежде чем Booking.com смог создать обучающий набор данных для этой модели, им нужен был способ аннотировать его. Инструмент аннотации MLSL предоставил столь необходимое индивидуальное решение. Человеческая проверка была проведена на большой коллекции отзывов об отелях. Затем аннотаторы завершили аннотацию именованных объектов для текстовых диапазонов и фраз настроений и отзывов гостей, прежде чем связать соответствующие диапазоны вместе.
Новая модель, основанная на аспектах, позволяет Booking.com персонализировать размещение и отзывы для своих клиентов. Выделение положительных и отрицательных аспектов каждого жилья позволяет клиентам выбрать идеальное сочетание. Кроме того, разных клиентов волнуют разные аспекты размещения, а новая модель открывает возможность показать каждому наиболее релевантные отзывы.
Требования к маркировке
Хотя Ground Truth предоставляет встроенную возможность текстовых аннотаций NER, она не дает возможности связывать объекты вместе. Имея это в виду, Booking.com и MLSL разработали следующие общие требования к новому инструменту маркировки текста для распознавания именованных объектов, который:
- Принимает на вход: текст, метки сущностей, метки отношенийкачества классификационные метки.
- Опционально принимает в качестве входных данных предварительно аннотированные данные с предшествующими аннотациями меток и отношений..
- Представляет аннотатору либо неаннотированный, либо предварительно аннотированный текст.
- Позволяет аннотаторам выделять и комментировать произвольный текст с помощью метки объекта.
- Позволяет аннотаторам создавать отношения между двумя аннотациями сущностей.
- Позволяет аннотаторам легко перемещаться по большому количеству меток сущностей.
- Поддерживает группировку меток сущностей по категориям.
- Разрешить перекрывающиеся отношения, что означает, что один и тот же аннотированный текстовый сегмент может быть связан с более чем одним другим аннотированным текстовым сегментом.
- Разрешает перекрытие аннотаций меток объектов, что означает, что две аннотации могут перекрывать один и тот же фрагмент текста. Например, текст «Спейс-Нидл в Сиэтле» может иметь как аннотации «Сиэтл» → «местоположения», так и «Сиэтл-Спейс-Нидл» → «достопримечательности».
- Формат вывода совместим с форматом ввода, и его можно использовать в последующих задачах маркировки.
- Поддерживает текст в кодировке UTF-8, содержащий эмодзи и другие многобайтовые символы.
- Поддерживает языки с письмом слева направо.
Образец аннотации
Рассмотрим следующий документ:
Нам очень понравилось расположение этого отеля! Гостиная на крыше дала нам прекрасный вид на космическую иглу. Он также находится в нескольких минутах езды от рынка щуки и набережной.
Еда была доступна только через обслуживание номеров, что немного разочаровывало, но имело смысл в этом постпандемическом мире.
В целом, опыт по разумной цене.
Загрузка этого документа в новую аннотацию NER представляет работнику следующий интерфейс:
В этом случае задача рабочего заключается в следующем:
- Отметьте объекты, связанные с недвижимостью (местоположение, цена, еда и т. д.).
- Пометьте объекты, связанные с настроением (положительным, отрицательным или нейтральным).
- Свяжите именованные объекты, связанные с недвижимостью, с ключевыми словами, связанными с настроением, чтобы точно отразить впечатления гостей.
Скорость аннотирования была важным фактором при выборе инструмента. Используя последовательность интуитивно понятных сочетаний клавиш и жестов мыши, комментаторы могут управлять интерфейсом и:
- Добавление и удаление аннотаций именованных объектов
- Добавить отношения между именованными сущностями
- Переход к началу и концу документа
- Отправить документ
Кроме того, имеется поддержка перекрывающихся меток. Например, Seattle Space Needle
: в этой фразе Seattle
аннотируется как само по себе местоположение, так и как часть названия достопримечательности.
Заполненная аннотация обеспечивает более полный и детальный анализ данных:
Отношения можно настроить на многих уровнях, от категорий сущностей к другим категориям сущностей (например, от «еды» к «настроениям») или между отдельными типами сущностей. Отношения являются направленными, поэтому аннотаторы могут связать такой аспект, как еда, с настроением, но не наоборот (если это явно не разрешено). При рисовании взаимосвязей инструмент аннотации автоматически определяет метку и направление взаимосвязи.
Настройка инструмента аннотации NER
В этом разделе мы расскажем, как настроить инструмент аннотации NER для конкретных случаев использования клиента. Это включает в себя настройку:
- Входной текст для комментирования
- Ярлыки объектов
- Ярлыки отношений
- Классификационные этикетки
- Предварительно аннотированные данные
- Инструкции для рабочих
Мы рассмотрим особенности форматов входных и выходных документов, а также приведем несколько примеров каждого из них.
Формат входного документа
Инструмент аннотации NER ожидает следующий входной документ в формате JSON (поля со знаком вопроса рядом с именем являются необязательными).
В двух словах, формат ввода имеет следующие характеристики:
- Или
entityLabels
orclassificationLabels
(или оба) должны быть аннотированы. - If
entityLabels
даны, тоrelationshipLabels
можно добавить - Отношения могут быть разрешены между различными метками объектов/категорий или их сочетанием.
- «Источник» отношений — это сущность, с которой начинается направленная стрелка, а «цель» — это то, к чему она направлена.
Поиск | Тип | Описание |
текст | string | Необходимый. Введите текст для аннотации. |
токенРовс | нить[][] | По желанию. Пользовательская токенизация вводимого текста. Массив массивов строк. Массив верхнего уровня представляет каждую строку текста (разрывы строк), а массив второго уровня представляет токены в каждой строке. Все символы/руны во входном тексте должны учитываться в tokenRows, включая любые пробелы. |
идентификатор документа | string | По желанию. Необязательное значение для клиентов, чтобы отслеживать аннотируемый документ. |
EntityLabels | объект[] | Обязательный параметр, если поле classificationLabels пусто. Массив меток сущностей. |
EntityLabels[].имя | string | Необходимый. Отображаемое имя метки объекта. |
сущностьLabels[].категория | string | По желанию. Название категории метки объекта. |
сущностьLabels[].shortName | string | По желанию. Отображать этот текст над аннотированными объектами, а не над полным именем. |
сущностьLabels[].shortCategory | string | По желанию. Отобразите этот текст в раскрывающемся списке выбора аннотации объекта вместо первых четырех букв имени категории. |
сущностьLabels.color | string | По желанию. Шестнадцатеричный код цвета с префиксом «#». Если пусто, то он автоматически назначит цвет метке объекта. |
отношенияЯрлыки | объект[] | По желанию. Массив меток отношений. |
отношенияLabels[].name | string | Необходимый. Отображаемое имя метки отношения. |
отношенияLabels[].allowedRelationships | объект[] | По желанию. Массив значений, ограничивающий типы меток исходных и целевых сущностей, которым может быть назначено это отношение. Каждый элемент массива объединяется «ИЛИ». |
отношенияLabels[].allowedRelationships[].sourceEntityLabelCategories | нить[] | Требуется установить либо sourceEntityLabelCategories, либо sourceEntityLabels (или оба). Список типов категорий меток юридического лица-источника для этого отношения. |
отношенияLabels[].allowedRelationships[].targetEntityLabelCategories | нить[] | Требуется установить либо targetEntityLabelCategories, либо targetEntityLabels (или оба). Список типов категорий меток целевых юридических лиц для этого отношения. |
отношенияLabels[].allowedRelationships[].sourceEntityLabels | нить[] | Требуется установить либо sourceEntityLabelCategories, либо sourceEntityLabels (или оба). Список типов меток юридических лиц-источников для этой связи. |
отношенияLabels[].allowedRelationships[].sourceEntityLabels | нить[] | Требуется установить либо targetEntityLabelCategories, либо targetEntityLabels (или оба). Список типов меток юридического целевого объекта для этой связи. |
классификацияЯрлыки | нить[] | Требуется, если поле entityLabels пусто. Список меток классификации уровня документа. |
сущностьАннотации | объект[] | По желанию. Массив аннотаций сущностей для предварительного аннотирования входного текста. |
EntityAnnotations[].id | string | Необходимый. Уникальный идентификатор для этой аннотации объекта. Используется для ссылки на этот объект в отношениях Annotations. |
EntityAnnotations[].start | номер | Необходимый. Начальное смещение руны этой аннотации объекта. |
EntityAnnotations[].end | номер | Необходимый. Смещение конечной руны этой аннотации объекта. |
EntityAnnotations[].text | string | Необходимый. Текстовое содержимое между начальным и конечным смещением рун. |
EntityAnnotations[].label | string | Необходимый. Имя связанной метки объекта (из имен в entityLabels). |
сущностьАннотации[].labelCategory | string | Необязательная. Категория связанной метки объекта (из категорий в entityLabels). |
отношенияАннотации | объект[] | По желанию. Массив аннотаций отношений. |
отношенияАннотации[].sourceEntityAnnotationId | string | Необходимый. Идентификатор аннотации исходного объекта для этой связи. |
отношенияАннотации[].targetEntityAnnotationId | string | Необходимый. Идентификатор аннотации целевого объекта для этой связи. |
отношенияАннотации[].label | string | Необходимый. Имя связанной метки отношения. |
классификацияАннотации | нить[] | По желанию. Массив классификаций для предварительной аннотации документа. |
цель | объект | По желанию. Дополнительные параметры конфигурации. |
мета.инструкции | string | По желанию. Инструкция для аннотатора надписей в формате Markdown. |
мета.disableSubmitConfirmation | логический | По желанию. Установите значение true, чтобы отключить модальное подтверждение отправки. |
мета.multiClassification | логический | По желанию. Установите значение true, чтобы включить режим с несколькими метками дляclassificationLabels. |
Вот несколько примеров документов, чтобы лучше понять этот формат ввода.
Документы, соответствующие этой схеме, предоставляются Ground Truth в виде отдельных строк во входном манифесте.
Формат выходного документа
Выходной формат предназначен для легкой обратной связи в новой задаче аннотирования. Необязательные поля в выходном документе устанавливаются, если они также установлены во входном документе. Единственная разница между форматами ввода и вывода заключается в meta
объект.
Поиск | Тип | Описание |
мета.отклонено | логический | Устанавливается в true, если аннотатор отклонил этот документ. |
мета.rejectedReason | string | Причина отклонения документа комментатором. |
мета.руны | нить[] | Массив рун, учитывающий все символы во входном тексте. Используется для расчета смещения начала и конца аннотации объекта. |
Вот пример аннотированного выходного документа:
Примечание рун:
«Руна» в этом контексте — это отдельный выделяемый символ в тексте, включая многобайтовые символы, такие как эмодзи.
- Поскольку разные языки программирования представляют многобайтовые символы по-разному, использование «Руны» для определения каждого выделяемого символа как отдельного атомарного элемента означает, что у нас есть недвусмысленный способ описания любого данного выделения текста.
- Например, Python обрабатывает шведский флаг как четыре символа:
Но JavaScript обрабатывает один и тот же смайлик как два символа.
Чтобы устранить любую двусмысленность, мы будем рассматривать шведский флаг (и все другие смайлики и многобайтовые символы) как один атомарный элемент.
- Смещение: положение руны относительно входного текста (начиная с индекса 0)
Выполнение аннотаций NER с помощью Ground Truth
В качестве полностью управляемой службы маркировки данных Ground Truth создает обучающие наборы данных для машинного обучения. В этом случае мы используем Ground Truth для отправки набора текстовых документов в пул рабочих для аннотации. Наконец, мы проверяем качество.
Ground Truth можно настроить для создания задания маркировки данных с использованием нового инструмента NER в качестве пользовательского шаблона.
В частности, мы будем:
- Создайте рабочую группу работников с частной маркировкой для выполнения задачи аннотации.
- Создайте входной манифест Ground Truth с документами, которые мы хотим аннотировать, а затем загрузите его в Сервис Amazon Simple Storage (Amazon S3)
- Создание задачи предварительной маркировки и задачи после маркировки Лямбда-функции
- Создайте задание маркировки Ground Truth с помощью пользовательского шаблона NER.
- Аннотировать документы
- Просмотрите результаты
Инструментальные ресурсы NER
Полный список ссылочных ресурсов и образцов документов можно найти в следующей таблице:
Маркировка создания рабочей силы
Ground Truth использует маркировку рабочей силы SageMaker для управления работниками и распределения задач. Создайте частную рабочую силу, рабочую команду под названием ner-worker-team и назначьте себя в команду, следуя инструкциям, приведенным в Создание частной рабочей силы (консоль Amazon SageMaker).
После того, как вы добавили себя в частную рабочую силу и подтвердили свой адрес электронной почты, запишите URL-адрес рабочего портала в Консоли управления AWS:
- Перейдите в
SageMaker
- Перейдите в
Ground Truth → Labeling workforces
- Выберите
Private
таб - Обратите внимание на URL
Labeling portal sign-in URL
Войдите на рабочий портал, чтобы просмотреть и начать работу над задачами маркировки.
Входной манифест
Манифест входных данных Ground Truth представляет собой файл строк JSON, где каждая строка содержит одну рабочую задачу. В нашем случае каждая строка будет содержать один входной документ в формате JSON, содержащий текст, который мы хотим аннотировать, и схему аннотации NER.
Скачать образец входного манифеста reviews.manifest
от https://assets.solutions-lab.ml/NER/0.2.1/sample-data/reviews.manifest
Внимание: каждой строке входного манифеста нужен ключ верхнего уровня. source
or source-ref
. Вы можете узнать больше в Используйте входной файл манифеста в Руководстве разработчика Amazon SageMaker.
Загрузить входной манифест в Amazon S3
Загрузите этот входной манифест в корзину S3 с помощью Консоли управления AWS или из командной строки, тем самым заменив your-bucket
с реальным именем корзины.
Скачать пользовательский шаблон работника
Загрузите шаблон пользовательского работника инструмента NER с веб-сайта https://assets.solutions-lab.ml/NER/0.2.1/worker-template.liquid.html просмотрев исходный код и сохранив содержимое локально или из командной строки:
Создание задачи предварительной маркировки и задачи после маркировки Лямбда-функции
Скачать образец задачи предварительной маркировки Лямбда-функция: smgt-ner-pre-labeling-task-lambda.py
от https://assets.solutions-lab.ml/NER/0.2.1/sample-scripts/smgt-ner-pre-labeling-task-lambda.py
Скачать образец задачи предварительной маркировки Лямбда-функция: smgt-ner-post-labeling-task-lambda.py
от https://assets.solutions-lab.ml/NER/0.2.1/sample-scripts/smgt-ner-post-labeling-task-lambda.py
- Создайте лямбда-функцию задачи предварительной маркировки из Консоли управления AWS:
- Перейдите в
Lambda
- Выберите
Create function
- Указывать
Function name
assmgt-ner-pre-labeling-task-lambda
- Выберите
Runtime
→Python 3.6
- Выберите
Create function
- In
Function code
→lambda_hanadler.py
, вставьте содержимоеsmgt-ner-pre-labeling-task-lambda.py
- Выберите
Deploy
- Перейдите в
- Создайте функцию Lambda задачи после маркировки из Консоли управления AWS:
- Перейдите в
Lambda
- Выберите
Create function
- Указывать
Function name
assmgt-ner-post-labeling-task-lambda
- Выберите
Runtime
→Python 3.6
- Расширьте
Change default execution role
- Выберите
Create a new role from AWS policy templates
- Введите
Role name
:smgt-ner-post-labeling-task-lambda-role
- Выберите
Create function
- Выберите
Permissions
таб - Выберите
Role name
:smgt-ner-post-labeling-task-lambda-role
чтобы открыть консоль IAM - Добавьте две политики к роли
- Выберите
Attach policies
- Прикрепите
AmazonS3FullAccess
политика - Выберите
Add inline policy
- Выберите
JSON
таб - Вставьте следующую встроенную политику:
- Выберите
- Вернитесь к
smgt-ner-post-labeling-task-lambda
Страница конфигурации лямбда-функции - Выберите
Configuration
таб - In
Function code
→ лambda_hanadler.py
, вставьте содержимоеsmgt-ner-post-labeling-task-lambda.py
- Выберите
Deploy
- Перейдите в
Создание задания маркировки Ground Truth
Из Консоли управления AWS:
- Перейдите в
Amazon SageMaker
обслуживание - Перейдите в
Ground Truth
→Labeling Jobs
. - Выберите
Create labeling job
- Укажите
Job Name
- Выберите
Manual Data Setup
- Укажите расположение входного набора данных, куда вы ранее загрузили входной манифест (например, s
3://your-bucket/ner-input/sample-smgt-input-manifest.jsonl
) - Укажите местоположение выходного набора данных, чтобы оно указывало на другую папку в том же сегменте (например,
s3://your-bucket/ner-output/
) - Укажите
IAM Role
выбравCreate new role
- Разрешите этой роли доступ к любой корзине S3, выбрав
S3 buckets you specify
→Any S3 bucket
при создании политики - В новом окне Консоли управления AWS откройте
IAM
консоль и выберитеRoles
- Найдите имя только что созданной роли (например,
AmazonSageMaker-ExecutionRole-20210301T154158
) - Выберите имя роли, чтобы открыть роль в консоли.
- Прикрепите следующие три политики:
- Выберите Прикрепить политики
- Прикрепите
AWSLambda_FullAccess
к роли - Выберите
Trust Relationships
→Edit Trust Relationships
- Отредактируйте доверительные отношения JSON,
- Замените
YOUR_ACCOUNT_NUMBER
с вашим числовым номером учетной записи AWS, чтобы читать: - Сохранить доверительные отношения
- Разрешите этой роли доступ к любой корзине S3, выбрав
- Вернитесь к новому заданию Ground Truth в предыдущем окне Консоли управления AWS: в разделе
Task Category
, наведите наCustom
- Выберите
Next
- Выберите
Worker types
:Private
- Выберите
Private team
:ner-worker-team
который был создан в предыдущем разделе - В
Custom labeling task setup
текстовое поле, очистите содержимое по умолчанию и вставьте содержимоеworker-template.liquid.html
файл, полученный ранее - Укажите
Pre-labeling task Lambda function
с ранее созданной функцией:smgt-ner-pre-labeling
- Укажите
Post-labeling task Lambda function
с функцией, созданной ранее:smgt-ner-post-labeling
- Выберите
Create
Аннотировать документы
Как только задание Ground Truth создано, мы можем начать аннотировать документы. Откройте рабочий портал для нашей рабочей силы, созданный ранее (в Консоли управления AWS перейдите к SageMaker
, Ground Truth → Labeling workforces
, Private
, и откройте Labeling portal sign-in URL
)
Войдите в систему и выберите первую задачу маркировки в таблице, а затем выберите «Начать работу», чтобы открыть аннотатор. Выполните свои аннотации и выберите «Отправить» для всех трех образцов документов.
Просмотрите результаты
По мере выполнения задач аннотаторами Ground Truth результаты будут доступны в выходном сегменте S3:
Когда все задачи для задания этикетирования выполнены, консолидированный вывод доступен в output.manifest
файл, расположенный здесь:
Этот выходной манифест представляет собой файл строк JSON с одним аннотированным текстовым документом на строку в «формате выходного документа», указанном ранее. Этот файл совместим с «Форматом входного документа», и его можно напрямую передать в последующее задание Ground Truth для еще одного раунда аннотации. Кроме того, его можно проанализировать и отправить на задание по обучению машинному обучению. Некоторые сценарии, в которых мы могли бы использовать второй раунд аннотаций:
- Разделение процесса аннотации на два этапа, где первый аннотатор идентифицирует аннотации сущностей, а второй аннотатор рисует отношения
- Взяв образец нашего
output.manifest
и отправить его второму, более опытному аннотатору для проверки в качестве контроля качества.
Пользовательские шаблоны наземных аннотаций
Инструмент аннотации NER, описанный в этом документе, реализован в виде пользовательского шаблона аннотации Ground Truth. Клиенты AWS могут создавать собственные настраиваемые интерфейсы аннотаций, следуя приведенным здесь инструкциям:
Заключение
Благодаря совместной работе Booking.com и Amazon MLSL смогли разработать мощный инструмент для текстовых аннотаций, способный создавать сложные аннотации для распознавания именованных объектов и взаимосвязей.
Мы рекомендуем клиентам AWS, использующим вариант использования текстовых аннотаций NER, попробовать инструмент, описанный в этом посте. Если вы хотите помочь ускорить использование машинного обучения в своих продуктах и услугах, обратитесь в Лаборатория решений для машинного обучения Amazon.
Об авторах
Дэн Ноубл — инженер-разработчик программного обеспечения в Amazon, где он помогает создавать восхитительные пользовательские интерфейсы. В свободное время он любит читать, заниматься спортом и участвовать в приключениях со своей семьей.
При Нонис — архитектор глубокого обучения в лаборатории Amazon ML Solutions Lab, где он работает с клиентами в различных вертикалях и помогает им ускорить миграцию в облако и решить проблемы машинного обучения с помощью самых современных решений и технологий.
Нихарика Джаянти — Front End Engineer в AWS, где она разрабатывает пользовательские решения для аннотаций для клиентов Amazon SageMaker. Вне работы она любит ходить в музеи и заниматься спортом.
Амит Бека является менеджером по машинному обучению в Booking.com, с более чем 15-летним опытом разработки программного обеспечения и машинного обучения. Он очарован людьми и языками, и тем, как компьютеры до сих пор озадачены и тем, и другим.
- '
- 100
- 11
- 7
- О нас
- доступ
- Учетная запись
- Бухгалтерский учет
- через
- Действие
- дополнение
- дополнительный
- Все
- Amazon
- Амазонское машинное обучение
- Создатель мудреца Амазонки
- Двусмысленность
- анализ
- ПЛОЩАДЬ
- доступен
- Доступно всем
- AWS
- начало
- не являетесь
- строить
- Строительство
- заботится
- случаев
- классификация
- облако
- код
- лыжных шлемов
- комплекс
- компьютеры
- Конфигурация
- рассмотрение
- Консоли
- содержание
- содержание
- может
- Создающий
- критической
- опыт работы с клиентами
- Клиенты
- данным
- глубокое обучение
- развивать
- Застройщик
- Разработка
- различный
- Документация
- не
- легко
- эффект
- Emoji
- поощрять
- инженер
- и т.д
- пример
- выполнение
- надеется
- опыт
- Впечатления
- семья
- ФРС
- Обратная связь
- Поля
- в заключение
- First
- фитнес
- питание
- формат
- найденный
- полный
- функция
- GIF
- будет
- GUEST
- инструкция
- помощь
- помогает
- здесь
- Выделите
- Гостиница
- Как
- How To
- HTTPS
- IAM
- в XNUMX году
- важную
- В том числе
- индекс
- individual
- IT
- JavaScript
- работа
- путешествие
- Основные
- маркировка
- Этикетки
- язык
- Языки
- большой
- ведущий
- УЧИТЬСЯ
- изучение
- Юр. Информация
- уровень
- уровни
- линия
- LINK
- жидкость
- Список
- Объявления
- в местном масштабе
- расположение
- искать
- обучение с помощью машины
- управление
- отметка
- рынок
- Совпадение
- Мета
- против
- ML
- модель
- БОЛЕЕ
- Музеи
- имена
- Естественный язык
- Обработка естественного языка
- необходимый
- НЛП
- номера
- Предложения
- смещение
- онлайн
- открытый
- Откроется
- Возможность
- Другие контрактные услуги
- Люди
- фразы
- Платформа
- Платформы
- сборах
- политика
- бассейн
- Портал
- Постпандемический
- мощный
- цена
- Основной
- частная
- процесс
- Продукция
- Программирование
- языки программирования
- собственность
- обеспечивать
- приводит
- Питон
- вопрос
- Reading
- Отношения
- Требования
- ресурс
- Полезные ресурсы
- ресторан
- Итоги
- обзоре
- Отзывы
- Комнаты
- sagemaker
- экономия
- Шкала
- смысл
- настроение
- Услуги
- набор
- Короткое
- просто
- So
- Software
- разработка программного обеспечения
- Решения
- РЕШАТЬ
- Space
- скорость
- Начало
- заявление
- оставаться
- диск
- поддержка
- цель
- технологии
- Источник
- время
- вместе
- лексемизацию
- Лексемы
- инструментом
- топ
- верхний уровень
- трек
- традиционный
- Обучение
- путешествовать
- лечить
- относится к
- Доверие
- us
- пользователей
- ценностное
- версия
- Вид
- Что
- в
- Работа
- работавший
- рабочие
- Трудовые ресурсы
- работает
- разработка
- работает
- Мир
- мире
- бы
- лет