Розпізнавання іменованих сутностей в HTML за допомогою Python та ШІ

image

Зміст:

Штучний інтелект спрощує збір веб-даних, прискорюючи виявлення, отримання та обробку 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(" POS 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 і пропонуємо спробувати проксі безкоштовно.

Back

Ми їмо печиво. Дізнайтеся більше про політику використання файлів cookie