コードの出力値はcnt ['yellow'] = 0ですが、コードで指定された式を適用した後の期待値は(0 +1)/(6 +(1 * 3))関数を適用する予期しないpythonカウンタ値
from collections import Counter
cnt = Counter()
sm = 1
for word in ['red', 'blue', 'red', 'green', 'blue', 'blue']:
cnt[word] += 1
s = sum(cnt.values())
print(s)
c = len(cnt)
print(c)
for k,v in cnt.items():
cnt[k] = (cnt[k] + sm)/(s + (sm *c))
print(cnt['yellow'])
がありますあなたは確かに*これはPython 3.5? – user2357112
実際、「黄色」はあなたの入力に全くありません。あなたはデフォルトのカウントを取得しています。あなたの 'cnt [k] =(cnt [k] + sm)/(s +(sm * c))'計算を 'cnt ['yellow']'に適用するものは何もありません。 – user2357112
私はこのデフォルトゼロをこの計算によって何か肯定的な値に変更したいと思います。 –