Попередня обробка тексту для завдань НЛП та машинного навчання від Sciforce Sciforce Medium
Як тільки ви починаєте працювати над завданням з даних, ви розумієте залежність своїх результатів від якості даних. Початковий крок - підготовка даних - будь-якого проекту з науки про дані створює основу для ефективної роботи будь-якого складного алгоритму.

У завданнях з обробки текстових даних це означає, що будь-який необроблений текст потрібно ретельно обробити, перш ніж алгоритм зможе його перетравити. Найзагальніше кажучи, ми беремо деяку заздалегідь визначену частину тексту і виконуємо на ньому деякі основні аналізи та перетворення, щоб залишитися з артефактами, які будуть набагато кориснішими для більш значимого аналітичного завдання згодом.
Попередня обробка, як правило, складається з декількох етапів, які залежать від заданого завдання та тексту, але їх можна приблизно поділити на сегментацію, очищення, нормалізацію, анотацію та аналіз.
- Сегментація, лексичний аналіз, або токенізація - це процес, який розбиває довші рядки тексту на менші шматки або лексеми. Шматки тексту можуть бути лексемовані у речення, речення можуть бути лексемовані у слова тощо.
- Прибирання складається з позбавлення від менш корисних частин тексту за допомогою видалення зупинок, обробки великих літер та символів та інших деталей.
- Нормалізація складається з перекладу (відображення) термінів у схемі або лінгвістичних скорочень через стемінг, лематизацію та інші форми стандартизації.
- Анотація складається із застосування схеми до текстів. Анотації можуть включати маркування, додавання розміток або позначення частини мови.
- Аналіз означає статистичне зондування, маніпулювання та узагальнення з набору даних для аналізу ознак та спроби отримати зв'язки між словами.
Іноді сегментація використовується для розбиття тексту на частини, більші за слова, такі як абзаци та речення, тоді як токенізація зарезервована для процесу розбиття, результатом якого є виключно слова.
Це може здатися простим процесом, але насправді це все, що завгодно. Вам потрібне речення чи фраза? А що тоді таке фраза? Як ідентифікуються речення в більшій частині тексту? Шкільна граматика передбачає, що в реченнях є “пунктуація, що закінчується реченням”. Але для машин справа однакова, будь то в кінці абревіатури або речення.
"Покличемо пана Брауна?" може легко поділитися на два речення, якщо не піклуватися про скорочення.
А ще є слова: для різних завдань апостроф у ньому зробить це єдиним словом або двома словами. Тоді є конкуруючі стратегії, такі як збереження пунктуації однією частиною слова або взагалі відмова від неї.
Пам'ятайте, що кожна мова має свої хитрі моменти (удачі у пошуку слів на японській мові!), Тож у завданні, яке включає кілька мов, вам потрібно буде знайти спосіб працювати над усіма ними.
Процес очищення допомагає поставити весь текст на рівних, залучаючи відносно прості ідеї заміни або видалення:
- встановлення всіх символів у нижній регістр
- видалення шуму, включаючи видалення цифр та пунктуації (це частина токенізації, але все ще варто пам’ятати на цьому етапі)
- зупинити видалення слів (залежно від мови)
Нижній регістр
Текст часто має різноманітні великі літери, що відображають початок речень або наголошення власних іменників. Загальноприйнятий підхід полягає в тому, щоб для простоти зменшити все до малих літер. Локалізація застосовується до більшості завдань з видобутку тексту та NLP і суттєво допомагає забезпечити узгодженість результатів. Однак важливо пам’ятати, що деякі слова, такі як «США» та «ми», можуть змінювати значення, якщо їх скоротити до нижнього регістру.