X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=find_best_caesar_break_parameters.py;h=7a550aaacc3cfade2fe06b9b6f6b81675fa8f6b6;hb=2def5210d568279bb38890c2de282e171f4ff7dd;hp=5f04e56a70becb4122cbe4726f7459d840127b82;hpb=04a92a004323a9749b3247d6a83b02202dce26cb;p=cipher-training.git diff --git a/find_best_caesar_break_parameters.py b/find_best_caesar_break_parameters.py index 5f04e56..7a550aa 100644 --- a/find_best_caesar_break_parameters.py +++ b/find_best_caesar_break_parameters.py @@ -15,16 +15,16 @@ euclidean_scaled_english_counts = norms.euclidean_scale(english_counts) metrics = [{'func': norms.l1, 'invert': True, 'name': 'l1'}, {'func': norms.l2, 'invert': True, 'name': 'l2'}, {'func': norms.l3, 'invert': True, 'name': 'l3'}, - {'func': norms.cosine_distance, 'invert': False, 'name': 'cosine_distance'}, - {'func': norms.harmonic_mean, 'invert': True, 'name': 'harmonic_mean'}, - {'func': norms.geometric_mean, 'invert': True, 'name': 'geometric_mean'}] + {'func': norms.cosine_similarity, 'invert': False, 'name': 'cosine_similarity'}] + # {'func': norms.harmonic_mean, 'invert': True, 'name': 'harmonic_mean'}, + # {'func': norms.geometric_mean, 'invert': True, 'name': 'geometric_mean'}] scalings = [{'corpus_frequency': normalised_english_counts, 'scaling': norms.normalise, 'name': 'normalised'}, {'corpus_frequency': euclidean_scaled_english_counts, 'scaling': norms.euclidean_scale, 'name': 'euclidean_scaled'}] -message_lengths = [300, 100, 50, 30, 20, 10, 5] +message_lengths = [100, 50, 30, 20, 10, 5] trials = 5000 @@ -57,7 +57,6 @@ def eval_one_score(scoring_function, message_length): print(scoring_function['name'], message_length) if scoring_function['name'] not in scores: scores[scoring_function['name']] = collections.defaultdict(int) - scores[scoring_function['name']]['name'] = scoring_function['name'] for _ in range(trials): sample_start = random.randint(0, corpus_length - message_length) sample = corpus[sample_start:(sample_start + message_length)] @@ -74,6 +73,7 @@ def show_results(): quoting=csv.QUOTE_NONNUMERIC) writer.writeheader() for scoring in sorted(scores.keys()): + scores[scoring]['name'] = scoring writer.writerow(scores[scoring]) eval_scores()