Tôi có một vấn đề thực tế đơn giản, thực tế mà tôi muốn giải quyết bằng cách sử dụng phương pháp tiếp cận OO. Đĩa cứng của tôi là một mớ hỗn độn. Tôi có 1.500.000 tệp, trùng lặp, hoàn thành các thư mục trùng lặp, v.v ...Chiến lược chung tốt nhất để nhóm các mục bằng cách sử dụng nhiều tiêu chí
Bước đầu tiên, là phân tích tất cả các tệp vào cơ sở dữ liệu của tôi. Không có vấn đề cho đến nay, bây giờ tôi đã nhận được rất nhiều mục tốt đẹp mà là loại "nhóm tự nhiên". Ví dụ cho nhóm đơn giản này có thể thu được sử dụng các truy vấn đơn giản như:
- Hãy cho tôi tất cả các file lớn hơn 100MB
- Hiển thị tất cả các file cũ quá 3 ngày
- Hãy cho tôi tất cả các file có đuôi docx
Nhưng bây giờ giả sử tôi muốn tìm các nhóm có ý nghĩa tự nhiên hơn một chút. Có những chiến lược khác nhau cho điều này, tùy thuộc vào "trường hợp sử dụng".
Giả sử tôi có thói quen xấu khi đặt tất cả các tệp đã tải xuống đầu tiên trên màn hình. Sau đó, tôi trích xuất chúng vào thư mục thích hợp, mà không cần xóa tệp ZIP luôn. Tôi di chuyển chúng vào một thư mục "gác mái". Đối với hệ thống, để tìm nhóm tệp này theo phương thức tìm kiếm theo định hướng thời gian, có thể kết hợp với "kiểm tra xem ZIP có giống thư mục X không" sẽ phù hợp.
Giả sử một thói quen xấu là sao chép tác phẩm, có một số thư mục mà "các tập tin sạch" được đặt tại một cấu trúc đẹp, và một thư mục lộn xộn. Bây giờ thư mục sạch sẽ của tôi có 20 phòng trưng bày hình ảnh, thư mục lộn xộn của tôi có 5 bản sao và 1 thư viện mới. Một người sử dụng có thể dễ dàng xác định logic này bằng cách nhìn thấy "Ồ, đó là tất cả chỉ là bản sao, đó là một cái mới, vì vậy tôi đặt cái mới trong thư mục sạch và thùng rác tất cả các bản sao".
Vì vậy, bây giờ để có được điểm:
Những sự kết hợp của chiến lược hoặc mẫu mà bạn sẽ sử dụng để giải quyết một tình huống như vậy. Nếu tôi lọc chuỗi "khó khăn nhất" sẽ giành chiến thắng, và tôi không có ý tưởng làm thế nào để cho hệ thống "thử nghiệm" cho sự kết hợp phù hợp. Và nó dường như với tôi nó là nhiều hơn thì chỉ lọc. Nhóm động của nó bằng cách kết hợp nhiều tiêu chí để tìm nhóm "tốt nhất".
Một cách tiếp cận rất thô sẽ là:
- Ban đầu, tất cả các file đều bình đẳng
- Đầu tiên không quá "tốt" nhóm, là thư mục
- Nếu bạn là một người lớn, thư mục sạch, bạn kiếm điểm (tên phân phối đồng đều)
- Nếu tất cả các tệp có cùng ngày tạo, bạn có thể được "tự động"
- Nếu bạn là con của Program-Files, tôi không quan tâm đến bạn tất cả
- Nếu tôi di chuyển bạn, nhóm A, vào nhóm C, điều này sẽ cải thiện "entropy"
Các mẫu tốt nhất phù hợp với tình huống này là gì. Chiến lược, bộ lọc và đường ống, "Grouping" .. Mọi bình luận đều được chào đón!
Chỉnh sửa trong reacation để câu trả lời:
Phương pháp gắn thẻ: Tất nhiên, gắn thẻ vượt qua tâm trí của tôi. Nhưng tôi vẽ đường ở đâu. Tôi có thể tạo các loại thẻ khác nhau, như InDirTag, CreatedOnDayXTag, TopicZTag, AuthorPTag. Các thẻ này có thể được cấu trúc trong một chế độ hirarchy, nhưng câu hỏi làm thế nào để nhóm sẽ vẫn còn. Nhưng tôi sẽ đưa ra một số suy nghĩ và thêm thông tin chi tiết của tôi tại đây ..
Nhận xét trì hoãn: Vâng, có vẻ như vậy. Nhưng các tập tin chỉ là ví dụ đơn giản nhất mà tôi có thể đưa ra (và có liên quan nhất vào lúc này). Nó thực sự là một phần của bức tranh lớn hơn về nhóm dữ liệu liên quan theo các cách năng động. Có lẽ tôi nên giữ cho nó trừu tượng hơn, để nhấn mạnh điều này: Tôi là KHÔNG tìm kiếm gắn thẻ tệp công cụ hoặc công cụ tìm kiếm, nhưng một thuật toán hoặc mẫu để tiếp cận vấn đề này ... (hoặc tốt hơn, ý tưởng , giống như gắn thẻ)
Chris
Cảm ơn mẹ;) Chỉ đùa thôi - tình yêu khó khăn cũng là một điều tốt! –