С моей точки зрения, этот вопрос подходит для двухэтапного ответа. Первая часть, назовем ее мягкой программной обработкой , может рассматриваться как использование различных алгоритмов интеллектуального анализа данных для предварительной обработки данных таким образом, что это делает их пригодными для дальнейшего анализа. Обратите внимание, что это может быть сам анализ, если цель достаточно проста, чтобы ее можно было решить одним выстрелом.
Вторая часть, жесткая предварительная обработка , на самом деле предшествует любому другому процессу и может рассматриваться как использование простых инструментов или сценариев для очистки данных, выбора конкретного содержимого для обработки. Для решения этой проблемы POSIX предоставляет нам замечательный набор волшебных инструментов, которые можно использовать для создания кратких и очень мощных сценариев предварительной обработки.
Например, для людей, которые имеют дело с данными, поступающими с социальных сайтов (твиттер, фейсбук, ...), поиск данных обычно приводит к файлам с очень специфическим форматом - хотя и не всегда хорошо структурированным, так как они могут содержать пропущенные поля и т. Д. , В этих случаях простой awk
сценарий может очистить данные, создав верный входной файл для последующей обработки. Из множества волшебном, можно также отметить grep
, sed
, cut
, join
, paste
, sort
, и все множество других инструментов.
В случае, если в простом исходном файле слишком много мелочей, может также потребоваться создать набор методов для очистки данных. В таких случаях обычно лучше использовать языки сценариев (кроме оболочек), такие как Python, Ruby и Perl. Это позволяет создавать API для выбора определенных данных очень простым и многократно используемым способом. Такие API иногда публикуются их авторами, такими как IMDbPY , Stack Exchange API и многими другими.
Итак, отвечая на вопрос: есть ли лучшие практики? Обычно это зависит от вашей задачи. Если вы всегда будете иметь дело с одним и тем же форматом данных, обычно лучше написать организованный скрипт для его предварительной обработки; тогда как, если вам просто нужна простая и быстрая очистка некоторого набора данных, положитесь на инструменты POSIX для кратких сценариев оболочки, которые будут выполнять всю работу намного быстрее, чем сценарий Python, или около того. Поскольку очистка зависит как от набора данных, так и от ваших целей, сложно все уже сделать. Тем не менее, существует множество API, которые ставят вас на полпути к решению проблемы.