Theo quan điểm của tôi, câu hỏi này phù hợp cho câu trả lời hai bước. Phần đầu tiên, chúng ta gọi nó là tiền xử lý mềm , có thể được coi là việc sử dụng các thuật toán khai thác dữ liệu khác nhau để xử lý dữ liệu theo cách làm cho nó phù hợp để phân tích thêm. Lưu ý rằng đây có thể là bản phân tích, trong trường hợp mục tiêu đủ đơn giản để được xử lý trong một lần bắn.
Phần thứ hai, tiền xử lý cứng , thực sự có trước bất kỳ quy trình nào khác, và có thể được coi là việc sử dụng các công cụ hoặc tập lệnh đơn giản để dọn sạch dữ liệu, chọn nội dung cụ thể cần xử lý. Đối với vấn đề này, POSIX cung cấp cho chúng ta một bộ công cụ ma thuật tuyệt vời, có thể được sử dụng để soạn thảo các kịch bản tiền xử lý ngắn gọn - và rất mạnh mẽ.
Ví dụ: đối với những người xử lý dữ liệu đến từ các trang web xã hội (twitter, facebook, ...), việc truy xuất dữ liệu thường mang lại các tệp có định dạng rất cụ thể - mặc dù không phải lúc nào cũng có cấu trúc độc đáo, vì chúng có thể chứa các trường bị thiếu, và vì vậy . Đối với những trường hợp này, một awk
tập lệnh đơn giản có thể dọn sạch dữ liệu, tạo ra một tệp đầu vào hợp lệ để xử lý sau. Từ tập ma thuật, người ta cũng có thể chỉ ra grep
, sed
, cut
, join
, paste
, sort
, và vô số toàn bộ các công cụ khác.
Trong trường hợp đơn giản, tệp nguồn có quá nhiều nitty-gritties, cũng có thể cần phải tạo ra một bó các phương thức để dọn sạch dữ liệu. Trong các trường hợp như vậy, thường sử dụng các ngôn ngữ script (trừ các ngôn ngữ shell), chẳng hạn như Python, Ruby và Perl. Điều này cho phép xây dựng các API để chọn dữ liệu cụ thể theo cách rất đơn giản và có thể sử dụng lại. Các API như vậy đôi khi được công khai bởi các tác giả của chúng, chẳng hạn như IMDbPY , Stack Exchange API và nhiều người khác.
Vì vậy, trả lời câu hỏi: có thực hành tốt nhất? Nó thường phụ thuộc vào nhiệm vụ của bạn. Nếu bạn sẽ luôn xử lý cùng định dạng dữ liệu, tốt nhất là viết một tập lệnh có tổ chức để xử lý trước; trong khi đó, nếu bạn chỉ cần một đơn giản và nhanh chóng lên sạch trên một số dữ liệu, dựa vào các công cụ POSIX cho các kịch bản ngắn gọn vỏ rằng sẽ làm toàn bộ công việc nhiều nhanh hơn so với một kịch bản Python, hoặc lâu hơn. Vì việc dọn dẹp phụ thuộc cả vào tập dữ liệu và mục đích của bạn, thật khó để hoàn thành mọi thứ. Tuy nhiên, có rất nhiều API khiến bạn gặp vấn đề.