jonadsimon / wonder-words-generator

Generates WonderWords puzzles
Apache License 2.0
2 stars 0 forks source link

word-optimizations removes words rather than adding #44

Closed jonadsimon closed 2 years ago

jonadsimon commented 2 years ago

Found an instance where running optimize-words resulted in a word being removed from the set.

I guess what's happening here is that that word was an outlier in non-overlappability? Need to update the output metric to verify

python make_puzzle_v2.py cuddle --packing-constant=1.1 --strategy=median --optimize-words

Removed too-similar words (superstring): cuddled, embracement, nestle

Removed too-similar words (long-prefix): embracing

Removed too-similar words (stemming): cuddling

Pre-optimization word stats:
    num_words: 42
    packing_level: 1.098
    mean_word_len: 5.88
    total_overlap: 48.42141156462615

Words removed: buttonhole
Words added:

Post-optimization word stats:
    num_words: 41
    packing_level: 1.053
    mean_word_len: 5.78
    total_overlap: 46.07220521541978

['kiss', 'purr', 'love', 'bawl', 'doze', 'lick', 'nest', 'curl', 'plop', 'meow', 'puke', 'slurp', 'flirt', 'sleep', 'bosom', 'liven', 'elope', 'twirl', 'foist', 'waken', 'cuddle', 'nuzzle', 'pamper', 'pucker', 'cavort', 'people', 'clutch', 'nibble', 'embrace', 'swaddle', 'squeeze', 'freshen', 'hugging', 'smarten', 'cohabit', 'sympathy', 'chemical', 'sponging', 'affection', 'socialize', 'brainwash']

{7: 'snuggle', 9: 'draw close', 8: 'oxytocin', 11: 'communities', 10: 'friendship'}

...
jonadsimon commented 2 years ago

Not a bug, due to using a minimum-based metric rather than a sum-based metric. By removing a highly-non-overlapping word it can increase the minimum.