Распознавание именованных сущностей в HTML посредством Python и ИИ

Содержание:

Искусственный интеллект упрощает сбор веб-данных, ускоряя обнаружение, получение и обработку HTML-элементов. При этом извлечение информации из неструктурированных текстов вызывает сложности. Причинами являются разнообразие языков и зависимость значений одних и тех же слов от контекста. Решением становится применение моделей обработки естественного языка (NLP). ИИ берет на себя расширенный семантический анализ, в то время как начальный этап автоматизированного сбора онлайн-сведений подразумевает  аренду прокси. Инфраструктура Dexodata предлагает IP-адреса от $3.65 за 1 Гб для этичного извлечения информации из интернета.

Что такое обработка естественного языка

Обработка естественного языка (Named-entity recognition, NER или ОЕЯ) — технология, которая выполняет роль посредника между ИИ-алгоритмами и человеческой речью. Благодаря распознаванию устной и письменной речи, обработка естественного языка:

  • Повышает эффективность текстовых редакторов;
  • Упрощает переводы с иностранных языков;
  • Ускоряет работу поисковых систем;
  • Автоматизирует работу служб поддержки через чат-боты.

Купить лучшие прокси лучше на первом этапе этичного автоматизированного веб-харвестинга. Это обеспечит беспрепятственный доступ к публичной информации формата HTML на сайтах-источниках. Следующая фаза — расширенный анализ веб-данных с помощью ИИ. Цели применения NER-технологий заключаются в:

  1. Поиске подходящих для изучения HTML-элементов;
  2. Преобразовании их в текст;
  3. Маркировке слов, знаков препинания и пр. как токенов и частей речи (Parts-of-Speech);
  4. Поиске зависимостей между словами;
  5. Идентификации и извлечении именованных сущностей.

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

Как распознать именованные сущности в HTML с помощью Python и ИИ

Распознавание именованных объектов (Named Entity Recognition, NER) является частным случаем обработки естественного языка. Самообучающиеся алгоритмы NER выявляют и классифицируют отдельные слова и числа в текстовой форме, придавая каждой определенное значение. «Осмысленные» текстовые элементы становятся именованными сущностями (named entities), такими как:

  • Личные имена;
  • Географическое расположение;
  • Организации;
  • Бренды;
  • Даты и время;
  • Товары.

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

 

Как использовать обработку естественного языка для извлечения именованных сущностей

 

Работа с NLP-моделями начинается с выбора языка программирования. Преимущества Python для скрейпинга и категоризации веб-сведений заключаются в высокой скорости компиляции, лаконичном коде и поддержке сотен библиотек. Популярными платформами обработки естественного языка на Python являются:

  • spaCy
  • Gensim
  • Natural Language Toolkit (NLTK)
  • TextBlob
  • Polyglot
  • scikit-learn.

Фреймворки различаются в деталях и делают акцент на отдельных аспектах, таких как многоязычность (Polyglot), тематическое моделирование (Gensim) или универсальность (spaCy, NLTK). Общий порядок работы с ними един и включает 6 базовых шагов.

1. Извлечение текста из HTML

Аренда прокси этичной экосистемы, соответствующей нормам AML/KYC, является первым этапом. Это получение «сырых» массивов онлайн-данных, в которых мы найдем именованные сущности для работы. Поскольку в качестве примера используется Python, приводим скрипт для скрейпинга веб-сведений через библиотеку BeautifulSoup:

from bs4 import BeautifulSoup

#  Задайте рамки HTML-массива

html = "<html>...</html>"  

# Выберите BS для работы с HTML

soup = BeautifulSoup(html, 'html.parser')

# Извлеките текст

text = soup.get_text()

2. Очистка базы данных

Существует два способа удалить из неструктурированного текста нежелательные HTML-теги, избыточные пробелы и технические символы:

  1. Запуск модулей NER;
  2. Использование библиотек регулярных выражений «re».

Воспользуемся вторым способом:

import re

# Удалите HTML-теги и лишние пробелы

cleaned_text = re.sub(r'\s+'' ', text).strip()

3. Категоризация текста (токены и POS-теги)

Токенизация — это первый этап процедуры распознавания именованных сущностей. Он заключается в разбивке текста на управляемые единицы — токены. Затем токены помечаются тегами как грамматические части речи (POS): существительные, прилагательные и т. д. Применим библиотеку SpaCy:

import spacy

# Загрузите русскоязычный модуль

nlp = spacy.load("ru2_combined_400ks_96")

# Введите заранее очищенный текст

text = "Пример для распознавания именованных сущностей через ОЕЯ-модуль."

# Выберите spaCy для NLP-работы с текстом

doc = nlp(text)

# Запустите токенизацию

tokens = [token.text for token in doc]

# Выполните присвоение тегов частям речи Parts-of-Speech (POS)

pos_tags = [(token.text, token.pos_) for token in doc]

# Вывод токенов на экран

print("Tokens:")

print(tokens)

# Вывод POS-тегов на экран

print("\nPOS Tags:")

for token, pos_tag in pos_tags:

    print(f"{token}: {pos_tag}")

4. Распознавание объектов

Четвертый этап — основной в распознавании именованных сущностей. ИИ-алгоритмы изучают текст с токенами, чтобы согласно тегам объединить их в отдельные категории. Это могут быть лица, организации, места, даты и многое другое. Каждая именованная сущность помечается, а впоследствии их можно объединить в паттерны. Цифровой интеллект сопоставляет объекты по образцам, заданным на этапе машинного обучения модели. Далее он ищет взаимосвязи между сущностями:

# Запустите распознавание именованных сущностей (NER)

for ent in tokens.ents:

    print(ent.text, ent.label_)

5. Постобработка

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

6. Итоговый сбор данных

Заключительный этап — это каталогизация структурированных по тегам токенов. Теперь их можно изучать как именованные сущности благодаря выявленным взаимосвязям. Результат сохраняют в виде CSV-таблиц или в ином формате.

 

Сложности обнаружения именованных сущностей

 

Распознавание неструктурированных объектов HTML посредством NER-технологии сопровождается трудностями. К ним относят динамическую JS-структуру целевых сайтов, многозначные слова и неточность ИИ-моделей. Тогда алгоритм обработки естественного языка дополнительно обучают на персонализированных базах данных.

Снижать объем нерелевантного контента следует на предварительном этапе HTML-скрепинга. Для этого перед началом распознавания именованных сущностей в тексте купите лучшие прокси Dexodata — этичной инфраструктуры для повышения уровня онлайн-аналитики на корпоративном уровне. Мы действуем в полном соответствии с политиками KYC и AML и предлагаем попробовать прокси бесплатно.

Назад


Сбор данных - проще с Dexodata

Попробовать сейчас Написать в Отдел продаж