Всім відомо, що зміст ставить питання. Але хороший заголовок теж допомагає, і це перше, що ми бачимо. Настав час перетворити це перше враження на програму і з'ясувати, які типи заголовків отримують більше відгуків.
Викликаєте написати програму або функцію, яка приймає заголовок питання PPCG як вхідний і повертає передбачення його балу.
Наприклад, ви можете отримати Counting Grains of Rice
введення, і 59
в цьому випадку ви намагаєтесь повернути щось близьке до оцінки . Нецілі здогадки - це нормально, але здогади в і нижче -20
- ні.
Ось дані для тестування та оцінки:
http://data.stackexchange.com/codegolf/query/244871/names-and-upvotes
Оцінка балів: Ваша програма працюватиме з кожним питанням в історії цього сайту (PPCG), не враховуючи закритих питань. Функція ln(score + 20)
буде застосована до кожної оцінки та до кожної здогадки. Помилка кореня середнього та середнього квадрата між двома результуючими наборами значень - це ваша оцінка. Нижній краще.
Наприклад, програма, яка щоразу здогадувалась 0, набирала б 0,577, тоді як програма, яка здогадувалась 11, набирала 0,362.
Будь ласка, обчисліть свій бал і включіть його в заголовок вашої відповіді. Будь ласка, включіть передбачення вашої програми щодо кількості отриманих результатів цього питання.
Обмеження:
Щоб запобігти надмірному жорсткому кодуванню, не більше 1000 символів.
Потрібно виконати весь набір даних вище, ніж протягом хвилини на розумній машині.
Стандартні лазівки закриті.
Ось тестер, написаний на Python, для вашого використання та / або для усунення неясностей:
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]
і [on hold]
, де це застосовно?