Основи ШІ
Як працює класифікація тексту?
Класифікація тексту – це процес аналізу послідовностей тексту та призначення їм мітки, розміщення їх у групу на основі їхнього змісту. Класифікація тексту лежить в основі майже будь-якого завдання штучного інтелекту або машинного навчання, пов’язаного з обробкою природної мови (NLP). За допомогою класифікації тексту комп’ютерна програма може виконувати широкий спектр різних завдань, таких як розпізнавання спаму, аналіз настрою та функції чат-бота. Як саме працює класифікація тексту? Які різні методи класифікації тексту існують? Ми розглянемо відповіді на ці питання нижче.
Визначення класифікації тексту
Важливо витратити деякий час і впевнитися, що ми розуміємо, що таке класифікація тексту в цілому, перш ніж перейти до різних методів класифікації тексту. Класифікація тексту – це один із тих термінів, який застосовується до багатьох різних завдань і алгоритмів, тому корисно впевнитися, що ми розуміємо базову концепцію класифікації тексту, перш ніж переходити до вивчення різних способів її виконання.
Все, що涉лює створення різних категорій для тексту, а потім позначення різних текстових зразків як цих категорій, можна вважати класифікацією тексту.只要 система виконує ці базові кроки, її можна вважати класифікатором тексту, незалежно від того, який саме метод використовується для класифікації тексту, і незалежно від того, як класифікатор тексту застосовується в кінцевому підсумку. Виявлення спаму в електронній пошті, організація документів за темою або назвою, а також розпізнавання настрою відгуку про продукт – все це приклади класифікації тексту, оскільки вони здійснюються шляхом прийому тексту на вході та виводу мітки класу для цього тексту.
Як працює класифікація тексту?

Фото: Quinn Dombrowski via Flickr, CC BY SA 2.0 , (https://www.flickr.com/photos/quinnanya/4714794045)
Більшість методів класифікації тексту можна розподілити на три різні категорії: методи, засновані на правилах, або методи машинного навчання.
Методи класифікації тексту на основі правил
Методи класифікації тексту на основі правил працюють за допомогою явно розроблених лінгвістичних правил. Система використовує правила, створені інженером, для визначення того, до якої категорії належить певний текст, шукаючи ознаки у вигляді семантично значимих текстових елементів. Кожне правило має шаблон, який текст повинен відповідати, щоб бути розміщеним у відповідну категорію.
Якщо бути більш конкретним, скажімо, ви хочете розробити класифікатор тексту, здатний розрізняти загальні теми розмови, такі як погода, фільми чи їжа. Для цього вам потрібно буде вказати класифікатору шукати слова, пов’язані з погодою, у тілі текстових зразків, які він обробляє. У вас буде список ключових слів, фраз та інших відповідних шаблонів, які можна використовувати для розрізнення теми. Наприклад, ви можете вказати класифікатору шукати слова типу “вітер”, “дощ”, “сонце”, “сніг” або “хмара”. Потім класифікатор буде проходити через вхідний текст і рахувати кількість разів, коли ці слова з’являються в тексті, і якщо вони з’являються частіше, ніж слова, пов’язані з фільмами, то текст буде класифікований як належний до категорії погоди.
Перевага систем, заснованих на правилах, полягає в тому, що їхні входи та виходи передбачувані та інтерпретовні людьми, і їх можна покращити за допомогою ручного втручання інженера. Однак системи класифікації тексту на основі правил також досить крихкі та часто мають труднощі з узагальненням, оскільки вони можуть дотримуватися лише попередньо запрограмованих шаблонів. Наприклад, слово “хмара” може означати вологу в небі або цифрову хмару, де зберігаються дані. Системи, засновані на правилах, мають труднощі з обробкою таких нюансів без того, щоб інженери витратили багато часу на ручне коригування цих нюансів.
Системи машинного навчання
Як згадувалося вище, системи, засновані на правилах, мають обмеження, оскільки їхні функції та правила повинні бути попередньо запрограмовані. Напroti, системи класифікації тексту на основі машинного навчання працюють шляхом застосування алгоритмів, які аналізують набори даних для шаблонів, пов’язаних з певною категорією.
Алгоритми машинного навчання отримують попередньо позначені/класифіковані екземпляри, які аналізуються для відповідних ознак.
Класифікатор машинного навчання аналізує дані навчання та вчиться шаблонам, пов’язаним з різними категоріями. Після цього незнайомі екземпляри позбавляються своїх міток та подаються алгоритму класифікації, який призначає їм мітку. Призначені мітки потім порівнюються з оригінальними мітками, щоб побачити, наскільки точно класифікатор машинного навчання вивчив шаблони, які передбачають категорії.
Алгоритми машинного навчання працюють шляхом аналізу числових даних. Це означає, що для використання алгоритму машинного навчання для текстових даних текст потрібно перетворити у числовий формат. Існує кілька методів кодування текстових даних як числових даних та створення методів машинного навчання навколо цих даних. Ми розглянемо деякі з цих методів нижче.
Метод багату слів
Метод багату слів – один із найбільш часто використовуваних підходів для кодування та представлення текстових даних. Термін “багату слів” походить від того, що ви берете всі слова у документах та кладете їх усі в один “мішок” без уваги до порядку слів або граматики, звертаючи увагу лише на частоту слів у мішку. Це призводить до довгого масиву, або вектора, що містить єдине представлення всіх слів у вхідних документах. Отже, якщо у вхідних документах загалом 10 000 унікальних слів, то вектори особливостей будуть складатися з 10 000 слів. Це як розрахунок розміру мішка/вектора особливостей.

Фото: gk_ via Machinelearning.co, (https://machinelearnings.co/text-classification-using-neural-networks-f5cd7b8765c6)
Після визначення розміру вектора особливостей кожен документ у списку всіх документів отримує свій власний вектор, заповнений числами, які вказують, скільки разів слово з’являється у поточному документі. Це означає, що якщо слово “їжа” з’являється вісім разів у одному текстовому документі, то відповідний вектор особливостей/масив особливостей матиме вісім у відповідній позиції.
Інакше кажучи, всі унікальні слова, що з’являються у вхідних документах, кладуться в один мішок, а потім кожен документ отримує свій власний вектор слів такого ж розміру, який потім заповнюється кількістю разів, коли різні слова з’являються у документі.
Текстові набори даних часто містять велику кількість унікальних слів, але більшість з них використовуються не дуже часто. Через це кількість слів, використовуваних для створення вектора слів, зазвичай обмежується певним значенням (N), а розмір вектора особливостей буде Nx1.
Частота терміну – обернена частота документа (TF-IDF)
Інший спосіб представлення документа на основі слів у ньому називається Частота терміну – обернена частота документа (TF-IDF). Підхід TF-IDF також створює вектор, який представляє документ на основі слів у ньому, але на відміну від методу багату слів ці слова зважені не лише їхньою частотою. TF-IDF розглядає важливість слів у документах, намагаючись кількісно оцінити, наскільки актуальне це слово для теми документа. Інакше кажучи, TF-IDF аналізує актуальність замість частоти, а кількість слів у векторі особливостей замінюється на оцінку TF-IDF, розраховану з урахуванням всього набору даних.
Підхід TF-IDF працює шляхом розрахунку частоти терміну, тобто кількості разів, коли унікальні терміни з’являються у певному документі. Однак TF-IDF також дбає про обмеження впливу дуже поширених слів, таких як “те”, “або” та “і”, оскільки ці “стоп-слова” дуже поширені, але не несе майже жодної інформації про зміст документа. Ці слова потрібно дисконтувати, що стосується “оберненої частоти документа” частини TF-IDF. Це робиться тому, що чим більше документів містить певне слово, тим менше корисне це слово для розрізнення його від інших документів у списку всіх документів. Формула, яку використовує TF-IDF для розрахунку важливості слова, призначена для збереження слів, які є найбільш частими та семантично найбагатшими.
Вектори особливостей, створені підходом TF-IDF, містять нормалізовані значення, які сумуються до одиниці, призначуючи кожному слову зважене значення, розраховане за формулою TF-IDF.
Вбудовування слів
Вбудовування слів – це методи представлення тексту, які забезпечують, що слова з подібними значеннями мають подібні числові представлення.
Вбудовування слів працюють шляхом “векторизації” слів, тобто представлення слів у вигляді векторів дійсних чисел у векторному просторі. Вектори існують у сітці або матриці та мають напрямок та довжину (або величину). Коли слова представляються у вигляді векторів, вони перетворюються у вектори, складені з дійсних значень. Кожне слово відображається на один вектор, а слова, подібні за значенням, мають подібний напрямок та величину. Це кодування дозволяє алгоритму машинного навчання вивчити складні взаємозв’язки між словами.
Вбудовування, які представляють різні слова, створюються з урахуванням того, як слова в питаннях використовуються. Оскільки слова, які використовуються подібним чином, матимуть подібні вектори, процес створення вбудовування слів автоматично перекладає деяке значення слів. Підхід “багату слів”, навпаки, створює крихкі представлення, де різні слова матимуть несхожі представлення, навіть якщо вони використовуються у дуже схожих контекстах.
Як результат, вбудовування слів краще захоплюють контекст слів у реченні.
Існує кілька алгоритмів та підходів для створення вбудовування слів. Деякі з найбільш поширених та надійних методів вбудовування слів включають шари вбудовування, Word2Vec та GloVe.
Шари вбудовування
Одним із потенційних способів використання вбудовування слів разом із системою машинного навчання/глибокого навчання є використання шару вбудовування. Шари вбудовування – це шари глибокого навчання, які перетворюють слова у вбудовування, які потім подаються у решту системи глибокого навчання. Вбудовування слів вивчаються під час навчання мережі для певного текстового завдання.

У підході вбудовування слів подібні слова матимуть подібні представлення та будуть ближче один до одного, ніж до несхожих слів.
Для використання шарів вбудовування текст потрібно попередньо обробити. Текст у документі потрібно закодувати у вигляді одиничних векторів, а розмір вектора потрібно вказати заздалегідь. Одиничні текстові дані потім перетворюються у вектори слів, а вектори подаються у модель машинного навчання.
Word2Vec
Word2Vec – це ще один поширений метод вбудовування слів. Word2Vec використовує статистичні методи для перетворення слів у вбудовування та оптимізований для використання з моделями, заснованими на нейронних мережах. Word2Vec був розроблений дослідниками Google (GOOGL ) та є одним із найбільш часто використовуваних методів вбудовування, оскільки він надійно дає корисні та багаті вбудовування. Представлення Word2Vec корисні для ідентифікації семантичних та синтаксичних спільнот у мові. Це означає, що представлення Word2Vec захоплюють відносини між подібними поняттями,能够 розрізняти спільність між “Королем” та “Королевою” як королівську сім’ю, і що “Король” подразумеває “чоловічність”, тоді як Королева подразумеває “жіночність”.
GloVe
GloVe, або Глобальний вектор для представлення слів, будується на алгоритмах вбудовування, використовуваних Word2Vec. Методи вбудовування GloVe поєднують аспекти як Word2Vec, так і техніки факторизації матриць, такі як Латентний семантичний аналіз. Перевага Word2Vec полягає в тому, що він може захоплювати контекст, але як компроміс він погано захоплює глобальну статистику тексту. Напroti, традиційні векторні представлення добре підходять для визначення глобальної статистики тексту, але вони не корисні для визначення контексту слів та фраз. GloVe черпає з найкращого з обох підходів, створюючи слово-контекст на основі глобальної статистики тексту.












