WORDLEもうちょっと考えてみた

Python

先のエントリーで書いた通り本当にAROSEが1回目の単語として最適なのか気になって、位置による出現頻度をスコアとして計算してみた。

#!/usr/bin/env python3

import string
from nltk.corpus import words
import re

word_list = [x for x in words.words() if len(x) == 5]
char_dict = {x: {c: 0 for c in string.ascii_lowercase} for x in range(5)}
for w in word_list:
    for i, c in enumerate(w):
        char_dict[i][c.lower()] = char_dict[i][c.lower()] + 1

repat = re.compile('^[aerois]{5}$')

for w in word_list:
    match_res = repat.match(w)
    if match_res != None:
        score = 0
        for i,c in enumerate(w):
            score = score + char_dict[i][c.lower()]
        print("Word: {}, Score: {}".format(w, score))

スコアが高い順に並べると以下のようになる。

soree6584
sarra5823
sarsa5766
reree5555
aerie5494
seise5481
sorra5363
saros5299
serra5229
raise5180
serai5104
arrie5087
resee4972
serio4953
airer4941
eerie4938
siris4839
raser4837
rasse4730
easer4640
arise4538
arose4464

上位の単語はスペルが重複しているので、RAISEが最適っぽい。RAISEの下位にあるSERAIは「宿舎」だそうで、知らない単語だったがWORDLEで弾かれなかった。

RAISEで全滅した場合、次はCONKY「鼻が大きい」がスコア4560、CONKYも全滅の場合、THUMP「ゴツン(擬音)」 (2315)しか残らない。なんせ母音字が無い。

RAISEでRがヒットした場合、次はRUNTY「小型の」(4080)、Rのみが含まれていた場合、次はCORNY「古くさい」(5164)となりそうだ。

ここで挙げた単語はいずれもWORDLEに弾かれなかったので、結構マイナーな単語もWORDLEには含まれている可能性が高い。こいつは結構手強いのでは???

追記(2022.02.01):WordleのJavaScirptに全ての単語が含まれているので、同様に数値化してみたところRAISEが1位なのは変わりが無い。

RAISEが1文字もヒットしなかった場合はPONTY(人名・メルロ=ポンティ)が2つ目の単語、RSが少なくとも1文字含まれ、AIEが1文字も含まれない、つまり母音字となるOUYを次の単語に含ませる場合、POUTY「ふくれっ面」がベストだった。

もし、RAISE / PONTYで1文字もヒットしなければ、残りはCULCH, MULCH, GULCH, HUDUD, BUCKU, CLUCK, CHUCK, BUCHU, BLUFF, CHUFF, JUGUM, FLUFF, KUDZUの13単語しか無い。このうちスペルに重複が無いのは、MULCH, GULCHの2単語のみ。

追記:もっともっと考えてみた

タイトルとURLをコピーしました