Gần đây tôi đi qua này câu hỏi phỏng vấn:Realtime theo dõi của top 100 từ twitter mỗi phút/giờ/ngày
Given a continuous twitter feed, design an algorithm to return the 100 most
frequent words used at this minute, this hour and this day.
Tôi đã nghĩ đến một hệ thống với một bản đồ băm của word -> count
liên quan đến 3 min-heap cho phút, giờ và ngày hiện tại.
Mỗi tin nhắn gửi đến được tokenized, vệ sinh và đếm từ được cập nhật trong bản đồ băm (và tăng-key trong đống nếu từ đó đã tồn tại trong nó)
Nếu bất cứ từ nào không tồn tại trong heap (và kích thước heap == 100) kiểm tra nếu frequency > min value
của chúng trong heap và nếu vậy thì trích xuất-min và chèn vào heap.
Có cách nào tốt hơn để thực hiện việc này không?
Cảm ơn dasblinkenlight có ý nghĩa. Tôi đã hy vọng không theo dõi các từ cho mỗi phút. trong một giờ, chẳng hạn như hợp nhất số đếm cho phút hiện tại. vào giờ và tái sử dụng cùng một bản đồ cho min tiếp theo.Nhưng điều đó sẽ không giúp đỡ trong việc duy trì 100 từ hàng đầu trong giờ vừa qua khi chúng tôi mất dữ liệu về những phút cũ hơn – barefootshoes
@barefootshoes bạn hoàn toàn đúng: vấn đề này hơi giống với việc vẽ một con rắn đang chạy trong trò chơi video: mặc dù mỗi bước thay đổi chỉ có hai điểm (đầu và đuôi), bạn vẫn cần phải giữ vị trí của toàn thân rắn. – dasblinkenlight