Обробка природної мови (NLP) у Python з кодом (Частина 8. Автоматичне реферування)
Ми будемо використовувати Google Colab тому вам не потрібно нічого встановлювати або налаштовувати на вашому комп’ютері.
Автоматичне реферування тексту є однією з найбільш складних і цікавих задач у сфері обробки природної мови (NLP), тому що в процесі своєї роботи алгоритму, що робить реферування, необхідно розуміти, які фрагменти оригінального документа важливі, а які не важливі, а в деяких випадках реорганізовувати і змінювати оригінальні тексти. Це процес створення стислого та змістовного конспекту тексту з багатьох текстових ресурсів, таких як книги, новинні статті, публікації в блогах, наукові статті, електронні листи та інше.
Частина 2. Класифікація текстів
Частина 3. Кластеризація текстів
Частина 4. Тематичне моделювання
Частина 5. Розпізнавання іменованих сутностей
У галузі конспектування тексту було розроблено велику кількість методів, серед яких можна виділити два напрямки:
- Екстракційні методи: ці методи ґрунтуються на виділенні з первинних документів ключових фраз (фрагментів, речень), які додаються до реферату без змін у порядку їх появи у тексті. Тому виявлення правильних речень для реферування є надзвичайно важливим для екстрактивних методів.
- Абстрактні методи: ці методи засновані на виділенні найбільш суттєвої інформації та генерації нових текстів, що змістовно узагальнюють оригінальні тексти. Деякі частини цього резюме можуть навіть не відображатися в оригінальному тексті.
У нашому прикладі ми будемо використовувати екстракційні методи. Ми крок за кроком реалізуємо три алгоритми для реферування тексту, частотний алгоритм (TF-IDF), алгоритм Луна (Luhn algorithm), це була одна з перших спроб у галузі конспектування тексту та за допомогою косинусної подібності (Cosine similarity).
Найпростіший алгоритм з реферуванням тексту є частотний алгоритмом.
Давайте розглянемо цей початковий текст, який містить кілька речень з новини про робота.
Це текст, який ми будемо використовувати як приклад, щоб зрозуміти математичні розрахунки. Метою є вибрати тут найбільш релевантні речення цього тексту. Щоб досягти цієї мети, нам потрібно виконати послідовність із семи кроків:
- Попередня обробка тексту
- Розрахунок частоти слів
- Визначення ваги або важливості кожного слова
- Токенізація речень
- Оцінка речень
- Упорядкування найкращих речень
- Генерація реферату з урахуванням лише найважливіших речень.
Повний приклад кроків подивіться у Colab
Результат реферування частотним алгоритмом:
Метод Луна, перший евристичний метод автоматичного реферування, був представлений Хансом Петером Луном у 1958 році та реалізований на комп’ютері IBM 704. Він застосовувався для створення автоматичних рефератів наукових та новинних статей із The Scientific American та The New York Times.
Сучасний опис алгоритму виглядає так:
- Ідентифікація ключових слів документа:
- Застосування стеммінгу або лемматизації для поєднання різних форм одного слова в єдине уявлення.
- Підрахунок частоти слів та складання списку слів у порядку зменшення частоти.
- Виняток стоп-слів, таких як прийменники та частинки, які не несуть смислового навантаження.
- Видалення рідкісних слів, наприклад тих, що зустрічаються лише один раз, або певний відсоток слів за їх частотою.
2. Визначення значущості пропозицій:
- Поділ пропозиції на проміжки, що починаються та закінчуються ключовими словами, з урахуванням наявності незначних слів, але не більше 4 поспіль.
- Розрахунок значущості проміжку як квадрата кількості ключових слів, поділеного на розмір проміжку.
- Визначення значимості пропозиції як максимуму значимостей проміжків.
- Формування реферату шляхом вибору пропозицій із значимістю вище за певний поріг.
3. Беремо як реферат пропозиції зі значимістю вище певного порога.
Повний приклад кроків подивіться у Colab
Результат реферування за алгоритмом Луна:
Косинусна подібність — це показник, який допомагає визначити, наскільки подібні об’єкти даних незалежно від їх розміру. Ми можемо виміряти подібність між двома реченнями в Python за допомогою косинусної подібності. У косинусній подібності об’єкти даних у наборі даних розглядаються як вектор. Формула для знаходження подібності косинуса між двома векторами:
Для двох заданих векторів ознак, A та B, косинус подібності, cos(θ), представляється за допомогою скалярного добутку та довжини, як
Значення подібності косинуса може варіюватися від 0 до 1, причому 0 представляє найменшу подібність, а 1 — найвищу схожість.
Тепер нам потрібно створити вектор для кожного з речень. Ці тексти мають бути перетворені таким чином, щоб ми могли застосувати математичні рівняння. Отже, ми перетворюємо їх на вектор.
Подібність тексту є ключовим аспектом обробки природної мови (NLP) і пошуку інформації. Розуміння подібності між текстами може допомогти нам виконувати такі завдання, як виявлення плагіату, кластеризації документів, системи рекомендацій та оптимізація пошукових систем.
Повний приклад кроків подивіться у Colab
Результат реферування за алгоритмом Косинусна подібність:
Якщо вам сподобалася стаття, внизу можна підтримати автора плесканням 👏🏻 Дякую за прочитання!