Mọi người đều biết rằng nội dung làm cho câu hỏi. Nhưng một tiêu đề tốt cũng giúp, và đó là điều đầu tiên chúng ta thấy. Đã đến lúc biến ấn tượng đầu tiên đó thành một chương trình và tìm ra loại tiêu đề nào nhận được nhiều sự ủng hộ hơn.
Bạn được thử thách viết một chương trình hoặc chức năng lấy tiêu đề của câu hỏi PPCG làm đầu vào và trả về dự đoán về điểm số của nó.
Chẳng hạn, bạn có thể nhận Counting Grains of Rice
làm đầu vào và bạn sẽ cố gắng trả lại thứ gì đó gần với điểm số, 59
trong trường hợp này. Đoán không nguyên là tốt, nhưng đoán ở hoặc dưới -20
thì không.
Đây là dữ liệu, để thử nghiệm và cho điểm:
http://data.stackexchange.com/codegolf/query/244871/names-and-upvotes
Ghi điểm: Chương trình của bạn sẽ được chạy trên mọi câu hỏi trong lịch sử (PPCG) của trang web này, không tính các câu hỏi đóng. Hàm ln(score + 20)
này sau đó sẽ được áp dụng cho từng điểm và cho từng lần đoán. Lỗi trung bình-bình phương-lỗi giữa hai bộ giá trị kết quả là điểm của bạn. Thấp hơn là tốt hơn.
Chẳng hạn, một chương trình đoán 0 mỗi lần sẽ đạt 0,577, trong khi một chương trình đoán 11 mỗi lần sẽ đạt 0,336.
Vui lòng tính điểm của bạn và đưa nó vào tiêu đề câu trả lời của bạn. Ngoài ra, vui lòng bao gồm dự đoán của chương trình của bạn về số lượng câu hỏi sẽ nhận được.
Những hạn chế:
Để ngăn chặn quá trình mã hóa cứng, không quá 1000 ký tự.
Phải chạy trên toàn bộ dữ liệu được đặt ở trên dưới một phút trên một máy hợp lý.
Lỗ hổng tiêu chuẩn được đóng lại.
Đây là một thử nghiệm được viết bằng Python, để bạn sử dụng và / hoặc để xóa đi sự mơ hồ:
import sys
import math
import csv
scores_dict = {}
with open(sys.argv[1], 'r') as csv_file:
score_reader = csv.reader(csv_file)
for score, title in score_reader:
if score == 'Score':
continue
scores_dict[title] = int(score)
def rate_guesses(guesser):
def transform(score):
return math.log(score + 20) if score > -20 else 0
off_by_total = 0
lines_count = 0
for title in scores_dict:
guessed_score = guesser(title)
real_score = scores_dict[title]
off_by_total += (transform(real_score) - transform(guessed_score)) ** 2
return (off_by_total/len(scores_dict)) ** .5
def constant11(title):
return 11
print(rate_guesses(constant11))
[closed]
và [on hold]
, nếu áp dụng?