З моєї точки зору, це питання підходить для відповіді на два кроки. Перша частина, назвемо це м'якою попередньою обробкою , може сприйматися як використання різних алгоритмів виведення даних для попередньої обробки даних таким чином, що робить її придатною для подальшого аналізу. Зауважте, що це може бути сам аналіз, якщо мета досить проста, щоб її можна було вирішити в одному кадрі.
Друга частина, жорстка попередня обробка , насправді відбувається перед будь-яким іншим процесом і може сприйматися як використання простих інструментів або скриптів для очищення даних, вибору конкретного вмісту для обробки. До цієї проблеми POSIX надає нам чудовий набір магічних інструментів, за допомогою яких можна складати стислі та дуже потужні сценарії попередньої обробки.
Наприклад, для людей, які мають справу з даними, що надходять із соціальних веб-сайтів (twitter, facebook, ...), для пошуку даних зазвичай виходять файли із дуже конкретним форматом - хоча і не завжди добре структуровані, оскільки вони можуть містити пропущені поля тощо. . У цих випадках простий awk
скрипт може очистити дані, створивши дійсний вхідний файл для подальшої обробки. З безлічі чарівному, можна також відзначити grep
, sed
, cut
, join
, paste
, sort
, і все безліч інших інструментів.
У випадку, якщо у простому вихідному файлі є занадто багато азотистих пісень, може знадобитися також створити пакет методів очищення даних. У таких випадках зазвичай краще використовувати мови скриптів (крім оболонок), такі як Python, Ruby та Perl. Це дозволяє будувати API для вибору конкретних даних дуже простим та багаторазовим способом. Такі API іноді оприлюднюються своїми письменниками, такими як IMDbPY , API обміну стеками та багато інших.
Отже, відповідаючи на питання: чи є найкращі практики? Зазвичай це залежить від вашого завдання. Якщо ви завжди матимете один і той же формат даних, зазвичай краще написати впорядкований скрипт для його попередньої обробки; тоді як, якщо вам просто потрібна проста і швидка очистка на якомусь наборі даних, розраховуйте на інструменти POSIX для стислих скриптів оболонки, які виконають всю роботу набагато швидше, ніж сценарій Python тощо. Оскільки очищення залежить як від набору даних, так і від ваших цілей, важко все вже зробити. Тим не менш, є багато API, які ставлять вас на півдорозі з проблемою.