ШІ 101
Як працює класифікація текстів?

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

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

Фото: 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.
Шари вбудовування
Одним із потенційних способів використання вбудовування слів поряд із системою машинного навчання/глибокого навчання є використання шару вбудовування. Шари вбудовування – це шари глибокого навчання, які перетворюють слова у вбудовування, яке потім подається у решту системи глибокого навчання. Вбудовування слів вивчаються під час навчання мережі для певного текстового завдання.

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












