Cách tiếp cận ngây thơ nhất đối với sự cố có một số vấn đề nghiêm trọng. Điều tồi tệ nhất là cách bash.org và qdb.us hiển thị dấu ngoặc kép - người dùng có thể bỏ phiếu báo giá lên (+1) hoặc xuống (-1) và danh sách trích dẫn tốt nhất được sắp xếp theo tổng số điểm ròng. Điều này bị thiên vị thời gian khủng khiếp - những trích dẫn cũ hơn đã tích lũy rất nhiều phiếu bầu tích cực qua tuổi thọ đơn giản ngay cả khi chúng chỉ hơi hài hước. Thuật toán này có thể có ý nghĩa nếu những câu chuyện cười trở nên thú vị hơn khi chúng lớn hơn nhưng - tin tôi đi - chúng không có.
Có nhiều nỗ lực khác nhau để khắc phục điều này - xem xét số phiếu bầu tích cực trong một khoảng thời gian, tăng thêm số phiếu bầu gần đây, thực hiện hệ thống phân rã cho phiếu bầu cũ, tính tỷ lệ tích cực so với số phiếu phủ định, v.v. các sai sót khác.
Giải pháp tốt nhất - Tôi nghĩ - là một trong rằng các trang web The FunniestThe Cutest, The Fairest, và Best Thing sử dụng - một modified Condorcet voting system:
Hệ thống này cung cấp cho mỗi người một số dựa trên, trong số những điều mà nó đã phải đối mặt, những gì tỷ lệ phần trăm trong số họ thường đánh bại. Vì vậy, mỗi người nhận được điểm số phần trăm NumberOfThingsIBeat/(NumberOfThingsIBeat + NumberOfThingsThatBeatMe). Ngoài ra, mọi thứ bị cấm từ danh sách hàng đầu cho đến khi chúng được so sánh với tỷ lệ phần trăm hợp lý của tập hợp.
Nếu có một người chiến thắng Condorcet trong tập hợp, phương pháp này sẽ tìm thấy nó. Vì đó là điều không chắc chắn, do tính chất thống kê, nó tìm thấy một trong những "gần nhất" để trở thành một người chiến thắng Condorcet.
Để biết thêm thông tin về việc triển khai hệ thống như vậy, trang Wikipedia trên Ranked Pairs sẽ hữu ích.
Thuật toán yêu cầu mọi người so sánh hai đối tượng (tùy chọn Pick-A hoặc B) của bạn, nhưng thẳng thắn, đó là một điều tốt. Tôi tin rằng nó được chấp nhận rất tốt trong lý thuyết quyết định rằng con người rất giỏi so sánh hai đối tượng hơn là ở cấp độ trừu tượng. Hàng triệu năm tiến hóa làm cho chúng ta giỏi nhặt quả táo tốt nhất ra khỏi cây, nhưng khủng khiếp khi quyết định xem quả táo của chúng ta đã được chọn như thế nào với hình thức vui vẻ của Platonic. (Đây là, bằng cách này, tại sao các Analytic Hierarchy Process là rất tiện lợi ... nhưng đó là nhận được một chút tắt chủ đề.)
Một điểm cuối cùng để làm là SO sử dụng một thuật toán để tìm câu trả lời tốt nhất là rất giống nhau để bash.org 's thuật toán để tìm báo giá tốt nhất. Nó hoạt động tốt ở đây, nhưng thất bại khủng khiếp ở đó - phần lớn bởi vì câu trả lời cũ, được đánh giá cao, nhưng bây giờ đã lỗi thời ở đây có khả năng được chỉnh sửa. bash.org không cho phép chỉnh sửa, và nó không rõ ràng làm thế nào bạn thậm chí còn đi về chỉnh sửa những câu chuyện cười cũ về các memes internet ngày nay ngay cả khi bạn có thể ... Trong mọi trường hợp, quan điểm của tôi là thuật toán đúng thường phụ thuộc vào các chi tiết của vấn đề của bạn.:-)
Tôi đã viết một ứng dụng đồ chơi sử dụng GAE làm một việc như thế này: http://rank.appspot.com/. Nó sử dụng khái niệm động lượng cho mỗi mục mà tôi nghi ngờ biến thành một biến thể của ELO, mặc dù tôi đã phát triển nó một cách độc lập. Sẽ được hạnh phúc để chia sẻ src python. – freespace
@freespace Tôi muốn được quan tâm để xem nguồn Python cho thuật toán của bạn. – akaihola
Có thể, với dự án này, bạn nên cố gắng thiết lập mạng thần kinh (chỉ để giải trí, tất nhiên) và sử dụng đầu vào ** Chọn A-hoặc-B ** để đào tạo mạng. Có lẽ bạn mạng lưới thần kinh sẽ có thể chọn một mạng lưới đẹp nhất, sau rất nhiều khóa đào tạo. –