やること
「ここ10年で最高」といった大胆な比較級で毎年波紋を呼ぶボジョレー・ヌーボー。今日はプログラムを用いて、相対的な評価から序列を作ってみます。
実行環境
WinPython3.6をおすすめしています。
WinPython - Browse /WinPython_3.6/3.6.7.0 at SourceForge.net
Portable Scientific Python 2/3 32/64bit Distribution for Windows
Google Colaboratoryが利用可能です。
Google Colab
講評一覧
いろいろなサイトから、1995年以降の講評を集めてみました。特に相対的な評価に着目しています。
1995年 | ここ数年で一番出来が良い |
1996年 | 10年に1度の逸品 |
1997年 | 1976年以来の品質 過去10年間でトップクラス |
1998年 | 10年に1度の当たり年 |
1999年 | 品質は昨年より良い 1000年代最後の新酒ワインは近年にない出来 |
2000年 | 出来は上々で申し分の無い仕上がり |
2001年 | ここ10年で最高 |
2002年 | 過去10年で最高と言われた01年を上回る出来栄え 1995年以来の出来 |
2003年 | 100年に1度の出来 近年にない良い出来 |
2004年 | 香りが強く中々の出来栄え |
2005年 | ここ数年で最高 |
2006年 | 昨年同様良い出来栄え 今も語り継がれる76年や05年に近い出来 |
2007年 | 柔らかく果実味が豊かで上質な味わい |
2008年 | 豊かな果実味と程よい酸味が調和した味 |
2009年 | 過去最高と言われた05年に匹敵する50年に一度の出来 |
2010年 | 1950年以降最高の出来といわれた2009年と同等の出来 |
2011年 | 近年の当たり年である2009年に匹敵する出来 100年に1度とされた03年を超す21世紀最高の出来栄え |
2012年 | ボジョレー史上最悪の不作 |
2013年 | 小粒だが味の濃いブドウが収穫できた |
2014年 | 2009年の50年に一度のできを超える味わい |
2015年 | 記憶に残る素晴らしい出来栄え 今世紀で最高の出来 過去にグレートヴィンテージと言われた2009年を思い起こさせます |
2016年 | エレガントで酸味と果実味のバランスがとれた上品な味わい |
2017年 | 今世紀最高と称される2015年を上回る、芳醇さと優美さが魅力 |
2018年 | 2017年、2015年、2009年と並び、珠玉のヴィンテージとして歴史に刻まれるでしょう |
パッと一巡見ただけでインフレしていることが分かります。ブドウの生育条件や技術が年々向上しているのだと思います(?)。
言葉の定義
言葉は次のようにプログラムに対応させます。
n年に匹敵(並ぶ)出来 | n年と同じスコア |
n年を超える(上回る)出来 | n年のスコア+1 |
ここn年で一番(最高)の出来 | ここn年の最大スコア+1 |
n年に一度の出来 | ここ(n/2)年の最大スコアと同じ |
また、「数年」は3年、「21世紀」は2001年から現在まで、とします。
コードと結果
西暦0年から2020年までの配列を用意し、毎年の講評を素直に反映させます。もしかしたら過去の改竄や未来の予言があるかもしれないので、処理は繰り返し行い、変化がなくなったら終了とします。ただし、トートロジーがあると永遠に終わらないので注意します。(例:2005年は来年よりも良い。2006年は去年よりも良い。→無限大へ)
# -*- coding: utf-8 -*-
import numpy as np
from copy import deepcopy
import matplotlib.pyplot as plt
#ゼロで初期化
score = np.zeros(2020, dtype=int)
#繰り返し処理
while 1:
print('round')
#保存しておく
score_save = deepcopy(score)
#ここ数年で一番出来が良い
now = 1995
score[now] = max(score[now-3:now]) + 1
#10年に1度の逸品
now = 1996
score[now] = max(score[now-5:now])
#過去10年間でトップクラス
now = 1997
score[now] = max(score[now-10:now])
#10年に1度の当たり年
now = 1998
score[now] = max(score[now-5:now])
#品質は昨年より良い
now = 1999
score[now] = score[now-1] + 1
#出来は上々で申し分の無い仕上がり
now = 2000
#ここ10年で最高
now = 2001
score[now] = max(score[now-10:now]) + 1
#過去10年で最高と言われた01年を上回る出来栄え、1995年以来の出来
now = 2002
score[now] = max(score[2001] + 1, score[1995])
#100年に1度の出来
now = 2003
score[now] = max(score[now-50:now])
#香りが強く中々の出来栄え
now = 2004
#ここ数年で最高
now = 2005
score[now] = max(score[now-3:now]) + 1
#昨年同様良い出来栄え
now = 2006
score[now] = score[2005]
#柔らかく果実味が豊かで上質な味わい
now = 2007
#豊かな果実味と程よい酸味が調和した味
now = 2008
#過去最高と言われた05年に匹敵する50年に一度の出来
now = 2009
score[now] = max(score[2005], max(score[now-25:now]))
#1950年以降最高の出来といわれた2009年と同等の出来
now = 2010
score[now] = score[2009]
#近年の当たり年である2009年に匹敵する出来、21世紀最高の出来栄え
now = 2011
score[now] = max(score[2009], max(score[2000:now]))
#ボジョレー史上最悪の不作
now = 2012
score[now] = min(score[:now]) - 1
#小粒だが味の濃いブドウが収穫できた
now = 2013
#2009年の50年に一度のできを超える味わい
now = 2014
score[now] = score[2009] + 1
#今世紀で最高の出来
now = 2015
score[now] = max(score[2001:now]) + 1
#エレガントで酸味と果実味のバランスがとれた上品な味わい
now = 2016
#今世紀最高と称される2015年を上回る、芳醇さと優美さが魅力
now = 2017
score[now] = score[2015] + 1
#2017年、2015年、2009年と並び、珠玉のヴィンテージとして歴史に刻まれるでしょう
now = 2018
score[now] = max(score[2017], score[2015], score[2009])
#変化がなければ終了
if (score == score_save).all():
print('変化なし')
break
#表示
plt.bar(range(1995, 2019), score[1995:2019])
plt.xlabel('year')
plt.ylabel('score')
plt.show()
round
round
変化なし
2巡目では変化がなく、1巡目で確定したことが分かります。グラフを見ると、あんなに記憶に残っていた2005年や2009年が霞んで見えます。