としおの読書生活

田舎に住む社会人の読書記録を綴ります。 主に小説や新書の内容紹介と感想を書きます。 読書の他にもワイン、紅茶、パソコン関係などの趣味を詰め込んだブログにしたいです。

DSC_3748


今更ながら10年ほど前に話題になった「もし高校野球の女子マネージャーがドラッカーの『マネジメント』を読んだら」(もしドラ)を読みました。

小説の内容としては青春小説なんですが、この本の特徴は野球部のマネージャーである主人公みなみがドラッカーの『マネジメント』を参考に野球部を成長させるというところです。おもしろかったので、ないようを簡単にまとめてみました。

『もしドラ』の要約

マネジメントには顧客が必要


ドラッカーはマネジメントの最初の仕事は「組織の定義付け」であると言っています。そして、組織を定義付けするために必要なものは顧客です。経営を始めるには顧客を満足させることを考えなければなりません。

みなみは野球部も組織ということに気が付き、定義付けをするにあたり「顧客は誰か」ということで悩みます。

読みながら私も顧客は誰か考えていると、応援してくれる親や観客だと思いました。

しかし、これは顧客の一部でしかありません。野球部が活動をするにあたり保護者の支援なども必要なのですが、それ以上に必要なのは野球を行う野球部員たちでした。

私は、野球部員は従業員だと考えていたのですがそもそも活動する人間がいなければ組織は成り立たないため、野球部員は従業員であり顧客であるのです。


顧客が求めるものとは


顧客が保護者、高校野球ファン、野球部員たちと定義付けできたみなみは次に、これらの顧客が求めるものは何であるのかを考えます。

みなみは顧客が求めるものは、高校野球とは切り離すことができない「感動」であると定義付けます。

確かに、毎年高校球児が甲子園などで野球をしていると多くの感動が生まれますね。

顧客が求めるものを定義付けできたことで野球部の事業は、顧客に感動を与えることだと決まります。


マーケティングとは


野球部の目指すべき姿が決まったところでみなみはマーケティングを開始します。

しかし、マーケティングをし始めるとある問題が発生します。それは、部員が求める「感動」は一人ひとり違うということです。

そこでみなみは部員一人一人と面談を行うことで部員が野球部に求めていることを正確に分析しようとします。

面接の結果、自分の実力を試すために野球をしている部員、子どもから野球をしているからなんとなく続けているだけの部員がいるなど部員によって色々な目的があることが分かりました。

顧客一人一人が何を求めているのかを知るのがマーケティングなんですね。



仕事には働きがいが必要


部員たちを分析したみなみは、生産性を向上させるために各部員に働きがいを与えます。

働きがいを与えるには、責任を持たせる必要があります。そのためには、①生産的な仕事、②フィードバック情報、③継続学習の3つの要素が不可欠です。

①生産的な仕事として新練習方法を提案して部員の士気を向上させます。

②フィードバック情報では、部員たちにランニングのタイムをメモさせたりして自己管理を行わせます。

③継続学習では、①と②を続けさせることで効果を実感させようとします。


マネージャーは専門家の通訳になれ


専門家は、知識が豊富であるからこそ専門用語などを使ってしまい従業員たちとすれ違いがおきます。これを防ぐために、マネージャーは専門家の意思を分かりやすい言葉に変更して従業員に伝える必要があります。

この物語での専門家は野球部の監督です。

みなみの野球部では、監督の意図が部員たちに伝わらず、監督と部員との間で壁が発生していました。そこでみなみは野球部のマネージャーの一人を専門かと部員との間の通訳として挟むことで意思疎通を図ろうとします。

この考えは成功して、今まで上手に活用できなかった監督の知識が部員に伝わることで、野球部はどんどん実力をつけていくことに成功しました。


従業員の強みを生かすマネジメント


従業員は人によって得意なことが異なるので、これらの強みをどう生かすかがマネージャーの腕の見せ所です。

野球部の場合、バッティングが得意な部員、守備が得意な部員、足が速い部員などで部員の得意分野を分けることができます。

各部員の強みを生かせるポジションに着かせることで、野球部の生産性はさらなる向上をみせました。


イノベーションをおこせ


新しくできた企業は、最初のうちは既存の同種の企業と同じことをしていても伸びるかもしれませんが、他の企業を越えるにはイノベーションをおこして、改革を起こす必要があります。

みなみは監督と相談して高校野球で陳腐化したものは何かを考えていると、「送りバント」と「ボール球を打たせる投球術」の2つが上がりました。

そこでみなみたちは、この2つをしない「ノーバント・ノーボール作戦」を生み出します。言葉通り、送りバントとボール球に手を出さない、ボール球を投げないという作戦です。

この作戦で従来の野球の常識を捨てて強豪校に立ち向かいます。


人事問題に取り組む


成果中心の精神を高く維持するには、成果に伴い昇進、昇給させるなどして人事に関わる意思決定をすることが重要です。

みなみは、プレイに集中したいキャプテンをキャプテンの任から降りてもらい、他の人をキャプテンとして選んだり、実力に伴う人間をレギュラーとして選出することで部員の精神を高く維持しました。

またレギュラー入りした部員の手当てをするだけではなく、レギュラー落ちした部員にもどうしてその立場に移動したのかしっかりと説明することでやる気を下げないように考慮しました。




成果こそすべての活動の目的である


仕事を行う上で過程も重要ですが、結局は成果がでないことには意味がありません。成果よりも努力を重視してしまうと、従業員は仕事のための仕事をしてしまうことになります。

そのため組織は成果のために働くことが重要です

みなみたち野球部も今まで努力を続けてきましたが、結局は大会に勝たなければ成果を出したとは言えません。


マネージャーは真摯であれ


マネージャーは従業員を管理する能力や、知識の豊富さなどが重要であると考えられがちですが、それらは後かでも学ぶことができます。

そのためドラッカーはマネージャーに最も必要なのは真摯さだと言っています。

マネージャーにとって何が正しいかだけを考えて、誰が正しいかを考えない、部下に対する真摯さが重要です。

みなみは本書を通して決して人を好き嫌いで否定することなく、正しいことだけを評価する真摯さを見せつけました。


最後に


「もしドラ」はドラッカーの『マネジメント』をどう生かしていくかが、弱小野球部で甲子園を目指すという具体例をあげて非常に分かりやすく説明している作品でした。

これから経営や会社で働くうえでマネジメントの知識を有効に生かしたいと考えている人には「本書」はうってつけの入門書だと思うのでぜひ読んでみてください。

また小説としてもありきたりな王道展開ではありますが、そういうのが好きな人は感動できる作品だと思うのでおすすめです。

みなみたち野球部が大会を勝ち進み甲子園に出場で来たか気になる人は、ぜひ本書を読んでみてください。







gensimのWord2Vecを使ってみたので、使用方法をまとめました。

今回コーパスは『極性分析できのこたけのこ戦争に決着をつける』の記事で集めたツイートのデータを使用します。小規模なコーパスなので上手くいかない可能性もありますが練習ということであまり気にしません。


Word2Vecとは


Word2Vecは大量のテキストデータを解析し、単語をベクトル化する方法です。

単語をベクトル化することで単語同士の類似度を計算したりすることができます。

今回の場合きのこの山とたけのこの里のツイートをWord2Vecを用いて分析するということできのこの山とたけのこの里はお菓子の名前という同じカテゴリなので二つの単語のベクトルは近いものになるはずです。


実行環境


  • Windows10
  • Python3.6
  • gensim3.4.0
  • MeCab(辞書はmecab-ipadic-Neologdを使用)
MeCabのインストール方法や辞書の変更方法は以下の記事にまとめています。

Python3でMeCabを動かしてみる(Windows10 64bit)

MeCabのNEologd辞書をWindows10で使う方法


gensimのインストール


gensimは以下のコマンドだけでインストールすることができます。
pip install gensim
anacondaを使っていてpipではインストールができない場合は次のコマンドを使ってください
conda install -c anaconda gensim



学習データの準備


コーパスは最初に述べた通りツイートのデータを使うのですがWord2Vecの学習を始める前に学習データを分かち書きにして単語と単語の間をスペースで区切った状態に変更する必要があります。

またWord2Vecでモデルを作成するさいは助詞、助動詞などの非自立語は除外したほうが精度の良いモデルを作成することができるため今回は名詞、形容詞、動詞以外の単語は除外します。

"たけのこの里が好きだ。" という文があった場合は "たけのこの里 好き" といった状態に変更します。

学習データの準備は以下のコードで実行しました。
# -*- coding: utf-8 -*-
# 学習データをgensimで使える型に変換

import MeCab

# テキストを名詞、形容詞、動詞を残した分かち書きに変換
def wakachi(text, file):
  tagger = MeCab.Tagger("-Ochasen -d C:\mecab-ipadic-neologd")
  node = tagger.parseToNode(text)
  while node:
    # 名詞、形容詞、動詞だけリストに追加
    if (node.feature.split(',')[0] == '名詞' or node.feature.split(',')[0] == '形容詞' or node.feature.split(',')[0] == '動詞') and node.feature.split(',')[6] != '*':
      try:
        file.write('{} '.format(node.feature.split(',')[6]))
      except:
        pass
    node = node.next
  
# tweetを読み込み
def loadtweet(filename):
  tweet = []
  with open(filename) as f:
    for i in f:
      try:
        tweet.append(i.rstrip())
      except:
        pass
    return tweet
  
def main():
  tweet = loadtweet("tweet/kinoko_tweet.txt")
  wakachi_file = "kinoko_wakachi.txt" # 書き込み先のファイル名
  
  with open(wakachi_file, 'w') as f:
    for i in tweet:
      wakachi(i, f)
      f.write('\n')

if __name__ == '__main__':
  main()
今回私はtweetを対象に行っていますがどんなコーパスを使用してもこのコードで対応できるはずです。

コード中に例外処理をいれていますがこれは文字コード関係でエラーを起こしてしまい今回はあまり厳密にデータをしなくてもいいかということで簡単に片づけています。




Word2Vecのモデル作成


Word2Vecのモデルの作成は自分で一からコードをかこうとすると結構大変ですが、gensimを使えば10行もかかりませんでした。

モデルの作成は以下のコードで行いました。
# -*- coding: utf-8 -*-
# Word2Vecのモデルを作成
from gensim.models import word2vec

data = word2vec.LineSentence("kinoko_wakachi.txt")
# モデルを作成
model = word2vec.Word2Vec(data, size=200, window=10, hs=1, min_count=2, sg=1)
# モデルを保存
model.save('kinoko.model')
モデルを作成するWord2Vecメソッドのオプションでは、生成するベクトルの次元数や、単語の最大距離を設定することができます。

sizeは生成するベクトルの次元数です。今回は200次元にしています。
windowは単語の最大距離です。今回は10にしています。
hsは学習にsoftmax関数を使うかどうかです。(0の場合は使わない、0以外の値では使う)
min_countはこの値より出現回数の少ない単語を無視します。
sgは学習アルゴリズムの設定です(0の場合はCBOW、1の場合はskip-gram)。今回は何かの論文でskip-gramの方が良い結果になりやすいと見た記憶があるのでskip-gramを使いました。


生成したWord2Vecのモデルを使ってみる


modelの読み込み

model = word2vec.Word2vec.load('kinoko.model')

単語のベクトルの確認

# きのこの山のベクトルを確認
word_vector = model.wv["きのこの山"]

似た単語を列挙

# きのこの山と類似している単語の確認
similar_words = model.wv.most_similar(positive=["きのこの山"], topn=9)
print(similar_words)
[('満足', 0.6623457670211792), ('NI', 0.6556951999664307), ('きのこ派', 0.6542500257492065), ('最高かよ', 0.6375962495803833), ('アイス', 0.6262195110321045), ('4m', 0.6219021081924438), ('ファン', 0.6202322244644165), ('永遠', 0.6201416850090027), ('ムース', 0.619083821773529)]
きのこの山に類似している単語にたけのこの里がないのは意外でした。アイスやムースなどの他の食べ物があるため学習データを増やせばたけのこの里も類似している単語として出現するのかもしれません。

語句の線形計算

# 線形計算(きのこの山-きのこ=???)
print(model.most_similar(positive=['きのこの山'], negative=['きのこ'])[0])
('木村', 0.4005602300167084)
"きのこの山-きのこ" をしてみると "木村" という謎の結果になりました。(なにがでたら正解かは分からないが...)

positiveに加算する単語、negativeに減算する単語を入れます。"父-男+女" のように複数の単語を用いた計算を行うことができます。

色々な語句の線形計算を行ってみると楽しそうな気がします。


最後に


この記事ではgensimを使ってWord2Vecのモデルを作成しました。

今回は小規模なコーパスを使ってモデルを作成しましたが、次することがあればもう少し大きなコーパスを使ってモデルを作成して文の類似度を測るなど応用した方法を実行してみようと思います。




Python3でtweetの形態素解析を行うためにWindows10でMeCabの辞書をNEologd辞書に変更しようとしたら思いのほかてこずったので変更手順をまとめました。

MeCabをインストールしていることを前提として進めるのでまだインストールしていない方は下の記事を参考にしてください。




NEologd辞書とは


Neologd辞書とは佐藤敏紀(@overlast)が開発しているオープンソースのMeCabと共に使う単語分かち書き辞書です。

特徴として週二回以上という頻繁なペースで更新されているため新語や固有表現に強く、語彙数が多くなっています。

そのためSNSなどの新語が多い環境で自然言語処理を行う際一般的にNeologd辞書が使われています。



NEologd辞書のインストール

動作環境

本記事における動作環境は下記の通りになります。
  • Windows10 Home
  • Python 3.6.7


コマンドプロンプトでLinuxコマンドをたたけるようにする


Linuxコマンドを使ってneologd辞書をインストールしていくので最初にコマンドプロンプトでLinuxコマンドを入力できるようにしていきます。

1. Windows Subsystem for Linuxを有効にする


コントロールパネル > プログラム
neologd1

Windowsの機能の有効化または無効化

neologd2

Windows Subsystem for Linuxにチェックして再起動

neologd3

2. Ubuntuをインストール


Windows Subsystem for Linuxを有効にしたら次はMicrosoft StoreからUbuntuをインストールします。

Microsoft Storeを起動してUbuntuと検索したら下記の画面がでるので入手をクリックしてください。
neologd4

3. ユーザ登録


インストールが完了したらUbuntuを起動してください。そうするとユーザ名とパスワードを入力するように指示がでますのでにゅうりょくしてください。

4. パッケージを最新化する


ユーザ登録ができたらパッケージを最新化するために下記のコマンドを入力してください。

sudo apt update
sudo apt upgrade





NEologdをインストール

1. ビルドに必要なものをインストール


下記のコマンドを入力してビルドに必要なものをインストールします。

sudo apt install mecab
sudo apt install libmecab-dev
sudo apt install make

2. UbuntuでNeologdをインストール

git clone https://github.com/neologd/mecab-ipadic-neologd.git
cd mecab-ipadic-neologd
sudo bin/install-mecab-ipadic-neologd

3. NEologdをWindowsにコピーする

cd ..
sudo cp -R /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/  /mnt/c/

コピー先は各自好みで指定してください。


NEologdがWindows10で使えるか確認


上記の作業が全て完了したらWindowsで使えるか確認します。

下記のコードが動いたら正しくインストールできています。

import MeCab

mecab = MeCab.Tagger("-Ochasen -d C:\mecab-ipadic-neologd")
print(mecab.parse("進撃の巨人の発売日だ"))

実行結果は以下の通りになります。

neologd5

ちなみに最初からMeCabに入っている辞書を使った場合の結果は以下の通りになります。

neologd6






DSC_3381

朝井リョウさんの『世にも奇妙な君物語』が文庫化していたのでさっそく購入してみました。

本作は「世にも奇妙な物語」の大ファンだという朝井さんが、番組での映像化を目指して書かれた短編集です。

全部で五編の奇妙な話が詰め込まれていますがどの物語もオチが絶妙でとてもおもしろかったです。

以下感想になりますがネタバレを含むので未読の方は注意してください。




『世にも奇妙な君物語』のあらすじ


異様な世界観。複数の伏線。先の読めない展開。想像を超えた結末と、それに続く恐怖。もしこれらが好物でしたら、これはあなたのための物語です。待ち受ける「意外な真相」に、心の準備をお願いします。各話読み味は異なりますが、決して最後まで気を抜かずに——では始めましょう。





感想(ネタバレあり)

シェアハウさない


シェアハウスの記事を書こうとしていたライターの浩子がシェアハウスの住民たちと接していくうちに住人に少し不信感を持ち始める…。

浩子は「シェアハウスが本当にシェアしているものはなんのか」という記事を書くために密かに住人たちがシェアしているものを探そうとしていたがなかなか見つけることができなかった。

最後の最後にシェアしているものの正体を見つけるがそれは異常性癖者たちがお互いの異常な性衝動をみはりあうことで抑止するというものだった。

物語の中盤で浩子が昔犯罪にあったことからなんとなく犯罪者の集団がシェアしている家だとは分かっていたが、犯罪を隠ぺいするための家だと思っていたので、お互いの性衝動を抑えあうために住んでいたのには驚きだった。

物語は悲惨な結末で終わってしまうが実に世にも奇妙な物語っぽいないようで本書の一作目にふさわしい作品となっていた。


リア充裁判


コミュニケーション能力が高いリア充が本当に正しいのが疑問を持っている知子は、ある日コミュニケーション能力をはかる裁判に招待される。そこで裁判官に批判されるリア充たちを見て知子は自分が正しかったと確信するのだが…。


オチが絶妙すぎる話でした。

主人公の知子が考えていた理想のオチで終わるのかと思いきや、まさかその世界が主人公の描く漫画の世界だっととは…。しかも知子が非リア充でコミュニケーション能力がなく大学内で唯一就職活動に失敗している人間だという。

物語を読んでいる途中はコミュニケーション能力がない人間をなくそうとする国策は間違っているんだと思わされるんですが、最後まで読み切るとけっきょくはどんなことをするにもコミュニケーション能力って大切なんだなと感じさせられました。

コミュニケーション能力がなくても成功をおさめて認められている人間って現実世界でも確かにほとんどいないなと思わされる物語だった。




立て!金次郎


親からの評価を気にする幼稚園で働く孝次郎。そんな幼稚園の現状がおかしいと感じる考次郎は園の考えに背き、自分の考えに従って行動した結果、親からの評価につながったのだが…。


物語終盤まで来ると今回の物語はハッピーエンドで終わりそうだなと思ったのですが、この作品も最後の最後にまさかのどんでん返しが待ち構えていました。

オチの内容は、保護者が事前に褒める先生やいじめる先生を決めておいて幼稚園の先生を絶妙にコントロールするというものでした。

どんでんがえしがなければ世にも奇妙な要素がないんですけど、このオチを読んだときは衝撃的でした。孝次郎の努力のおかげで上手くいったと思ったのにそれをくつがえされてしまいました。

もしかしたら現実世界のモンスターペアレントのなかにも教師をコントロールするためにクレームを入れている人がいるのかもしれませんね…。


13.5文字しか集中して読めな


インタネットニュース記事を書くライターとして働く香織。自分の仕事に誇りを持ち、尊敬する上司を持ち、自分の息子からも憧れられており順風満帆な生活を送っているのだが…。


まずタイトルの文字数が13.5文字(半角は0.5文字とする)っていうがいいですね。

ネットニュースの記事に対する朝井リョウさんなりの批判が入っている作品でした。ネットニュースは新聞と違って紙面に限りがないのでいくらでも記事数が増やせるがどうでもいい内容の記事も量産されているという朝井リョウさんのネットニュースに対する批判が入っている作品でした。

最後に息子が授業参観で母親の浮気調査と浮気の様子を記事にしていましたが母親としては衝撃的ですよね。息子は母に憧れて母の真似事をしているんですが自分の浮気がばれていたとは…。

息子の成長を素直に喜べなさそうだ。




脇役バトルロワイアル


主演オーディションの最終選考に残った淳平。最終オーディションが行われる部屋に入るとそこには自分を含めて普段は脇役ばかり演じる役者たちがいた。不思議なオーディションに合格して淳平は主演になれたのか。

今までの四話に脇役として登場した役者たちが集められていて本当にテレビの世にも奇妙な物語を見ているかのように読める作品でした。登場人物の名前も実際の役者によせられており誰が誰なのか想像しやすかったです。

場面を説明するなどの脇役的な行動をしたら失格となるというのも秀逸で、朝井リョウさんが脇役の行動をよく分析しているのが分かる作品でした。

周りの脇役たちがみんないなくなり淳平が合格したと思ったら最後の最後に真の主役が現れるというのに笑わされてしまいました。

五編の中で一番笑える作品となっています。


最後に


皆さんはどの物語が一番好きですか?私は『立て!金次郎』が一番好きです。

朝井リョウさんの描く『世にも奇妙な君物語』がいつか実際に世にも奇妙な物語で映像化されてほしいですね。





以前Windowsの環境でPythonでMeCabを使おうと思ったら上手くいかず諦めてUbuntuを使っていたのですが、今回久しぶりに挑戦してみるとあっさりと使うことができたので環境構築方法をまとめました。


動作環境


本記事における動作環境は下記の通りになります。
  • Windows10 Home
  • anaconda
  • Python 3.6.7
今回はanacondaを使っていますがanacondaを使ってなくても手順通り進めればインストールすることができます。



MeCab(64bit版)のインストール

1. MeCab(64bit版)のインストーラのダウンロード


MeCabのインストーラは下記のページからダウンロードできます。




2. mecab-0.996.exeを実行する


インストーラをダウンロードできたらmecab-0.996.exeを実行してインストールしていきましょう。



環境変数の設定


MeCabを無事インストールすることができたら次は環境変数の設定を行います。

1. 環境変数に「MeCabのインストール先\bin」を設定する


インストール先を特に指定せずデフォルトの設定でインストールしたのなら下記の例と同じもので問題ありません。

環境変数の例:C:\Program Files\MeCab\bin


2. 環境変数が正しく通せているか確認する


環境変数を設定できたら設定を正しく行えているか確認します。

コマンドプロンプトを起動してMeCabと入力した後に好きな文章を入力して形態素解析が実行されたら正しく環境変数を設定できています。

この際文字化けがおきますがそれはコマンドプロンプトがUTF-8に対応していないのが原因で起きるので気にしなくて大丈夫です。

MeCab1




mecab-python-0.996のセットアップ

1. mecab-python-0.996.tarのダウンロード


mecab-python-0996.tarは下記のページのperl/ruby/python/java バインディングの下にあるダウンロードリンクからダウンロードができます。

ダウンロードの際様々なバージョンのものがありますが0.996のものをダウンロードしてください。


2. mecab-python-0.996.tarを解凍する


mecab-python-0.996.tarをダウンロードすることができたら好きな場所に解凍してください。


3. setup.pyの編集


mecab-python-0.996のフォルダ内にあるsetup.pyはpython2.xxに合わせて書かれているものなのでpython3で利用できるように中身を少し書き換える必要があります。

下記に編集後のコードを乗せておくのでこれをそのままコピーしたらほぼほぼ大丈夫です。

ただMeCabのインストール先をデフォルトとは別の場所にした場合その部分だけインストール先に合わせて修正してください。

#!/usr/bin/env python

from distutils.core import setup,Extension,os

setup(name = "mecab-python",
    version = '0.996',
    py_modules=["MeCab"],
    ext_modules = [
        Extension("_MeCab",
            ["MeCab_wrap.cxx",],
            include_dirs=[r'C:\Program Files\MeCab\sdk'],
            library_dirs=[r'C:\Program Files\MeCab\sdk'],
            libraries=['libmecab'])
    ]
)


4. ビルドとインストール


Anaconda Promptを起動してmecab-python-0.996のフォルダに移動してください。

移動できたら下記のコマンドを入力してビルドしてください。

python setup.py build

ビルドができたら下記のコマンドを入力してインストールしてください。

python setup.py install


5. 実行確認


インストールができたら最後に実行できるか確認を行います。

下記のコードを実行して形態素解析の結果がかえってきたら作業は終了です。

import MeCab
mecab = MeCab.Tagger("-Ochasen")
print(mecab.parse("すもももももももものうち"))

実行結果は下記の通りになります。

MeCab2



最後に


環境を構築中にVisual Studioをインストールしていない場合はそれ関連のエラーが出るかもしれませんが適宜対応してください。

もし何か分からないことがあればコメントをもらえれば返しますのでコメントしてください。


DSC_3363

タイトルにある書店という言葉に惹かれて三萩せんやさんの『神様のいる書店 まほろばの夏』を読みました。

読み始めた時点ではあまりでメッセージ性がなく内容の薄い作品だと思ったのですが、読み終わってみると読者に伝えたい強いメッセージがあると分かる作品でした。

読了後誰もがきっと自分の持っている本や家族をもっと大切にしようと思うこと間違いないでしょう。

以後ネタバレを含むので未読の方はご注意ください。


『神様のいる書店 まほろばの夏』のあらすじ


「本と友達になれるなんて、とっても素敵なことだと思わない?」本好きの高校生・神山ヨミは、司法教諭の紹介で「まほろば屋書店」で夏休みのバイトをすることに。そこは、魂が宿り生きている<まほろ本>を扱った、世にも不思議な書店だった。お店で出会った同僚の青年・サクヤは金髪で無愛想、不良みたいな見た目。しかし彼はいつも、ヨミが見たこともないほど美しい本を持っていて——。






感想(ネタバレあり)

生きている不思議な本である"まほろ本"の存在


『神様のいる書店』では魂を持つ本であるまほろ本がキーアイテム(アイテムという言い方は失礼かも)となっています。

まほろ本にやどる魂の形は色々あるようで犬、猫、人間など様々なものが存在しています。魂の形がどういったルールで決まっているのかなどは本作ではしっかり触れられてはいません。

ただ作中でヨミが補修を行った昆虫が描かれているまほろ本のかたちは蝶であったことや豆田の持つ本の大きさが小さかったことから本の内容や大きさがまほろ本の姿に影響を及ぼしていると言えるのではないのでしょうか。サクヤなどの例外もあるため確実だとは言えないが。

また、まほろ本には生物と同じように生死という概念があるようです。ページが破けると怪我をおい、損傷が激しくなると死んでしまうようですが、これは本としての役割を果たせなくなったら(読者が読めなくなる)死んでしまうということでよさそうですね。

現実にまほろ本のようなものは私の知る限りでは現在は存在していませんが、本作を読むともしかしたら私たちの持つ本も魂を持っている可能性もあるかもしれないなと思ってしまうので、本を大切に扱わなければならないと思わされてしまいます。

本を補修する技術を持ち合わせない私としてはとりあえず本の置く場所などに気を使おうと思いました。




人間になりたいまほろ本・サクヤの存在


サクヤは人間に憧れ人間になりたいと願っているまほろ本です。

作中でサクヤは自分が空っぽの存在であることや文字を書いたりすることができないことを嘆いたりする描写がたびたびあります。文字が書きたいから人間に憧れるという理由はなんとなくわかるのですが本なのに中身がないというのは読んでいる途中は少し不思議に感じる点でした。

ただその理由は物語の終盤で明らかになりました。ヨミが壊れたサクヤを修復しようという場面でサクヤはカバーのデザインとは打って変わって中身は何も書かれていない真っ白な本であることが分かります。

サクヤは自分に内容がないため読者に何も与えてあげることのできず本としての役割を果たせないことがネックとなって人間にあこがれたのでしょう。

最終的に人間になれたサクヤはこれから中身のなかった自分の存在を埋めていくような人生を送っていくことができればいいですね。

関係ないですサクヤの他にも人間になりたがっているまほろ本の形が人型であるため、もしかしたら人型のまほろ本はみんな人間になりたがっているという法則があるのかもしれません。


ヨミの成長


本作ではサクヤの変化の他にヨミの人間としての成長が描かれています。

物語の冒頭でのヨミは家族ともあまりうまくいかず、中学でいじめられたことが原因で人間関係に強く踏み込めない人物でした。そのためそれらのことから逃げるために図書館にこもり本の世界に逃げ込んでいました。

ヨミはまほろば屋書店との出会いがきっかけで人間として変化し始めます。

バイトでうまくできなかった補修の作業のアドバイスを図書館で働いている姉からアドバイスをもらうことにしました。姉に苦手意識を持っていたヨミでしたが、アドバイスの際に姉がヨミがどうしたら理解しやすいの考えてアドバイスしてくれたことをきっかけに姉がヨミのことをよく見て大切にしてくれていたということに気が付きます。

また友人関係では、昔あったいじめが原因で友人のフミカとも一歩引いた付き合い方をしていましたが、フミカからの親友だよねという言葉をきっかけに一歩引くのをやめるようになりました。

最後の場面では姉から両親が喧嘩している原因のほとんどが自分が原因であると教えられたことで家族がヨミを大切にしていることを理解することができました。

ヨミが本に恩返ししたいという気持ちをもって図書館から飛び出たおかげで人間として一回り成長することができてよかったです。



最後に


駄文をここまで読んでくださった皆様ありがとうございます。

『神様のいる書店』には続きの物語が出ているみたいなのでそちらもまた読んでみようと思います。

そちらでは本作でスポットライトがあまりあたっていなかった人物たちにも触れているのかな?






DSC_3362

今回は大久保洋子さんの『江戸の食空間 屋台から日本料理へ』という本を紹介します。

本書は江戸の食事事情を江戸時代の文献からの引用をなどを用いて食文化研究家の大久保さんの手で面白おかしく描かれています。

江戸時代に登場した握り寿司の歴史や、江戸のグルメブームなど様々なことが分かりやすく説明されており日本食をたしなむ日本人ならば一度は読んでおきたい本となっています。

以下に各章の要約を簡単に記すので興味を持ったらぜひ読んでみてください。


『江戸の食空間 屋台から日本料理へ』の要約


盛り場に、辻々に、縁日に、百万都市江戸を埋め尽くしたファストフード屋台から、てんぷら、すし、そばは生まれた。庶民の愛した江戸前の味、意外に質素な将軍の食卓、調味料や嗜好品がもたらした食の発展、初鰹狂奏曲、料理茶屋の番付や料理書が出発されるグルメブーム、そして究極の料理茶屋「八百善」—。多彩で華麗な江戸の食空間を読み解く。
本書の構成は以下の通りになっています。
  1. 江戸のファストフードのにぎわい
  2. 江戸の味の誕生
  3. 将軍の食卓、町人の食卓
  4. 大江戸グルメブーム
  5. 究極の料理茶屋、八百善
  6. 日本料理の完成




江戸のファストフードのにぎわい


本章では江戸でファストフードが流行したきっかけと屋台で人気であった寿司、てんぷら、そば、鰻の蒲焼といった料理についてまとめられています。

現在ファストフードといえばハンバーガーなどが真っ先にあがりそうですが江戸では上記に書いたように寿司、てんぷら、そば、鰻の蒲焼といったものがファストフードの代表商品だったみたいです。

そばやてんぷらがファストフードなのはなんとなく想像できるのですが寿司や鰻の蒲焼がファストフードなんて今では考えられませんよね。両方ともどちらかと言えば高い料理であるという印象が強いです。

しかし、本書の解説をよめば鰻の蒲焼や寿司が当時ファストフードであった理由になっとくが行きます。


江戸の味の誕生


この章では日本食の味付けのベースとなる醤油、酒、砂糖などの調味料に焦点が当てられています。

江戸時代初期では天下の台所である大阪から調味料を輸入していたので江戸独自の味がなかったみたいですが時が進むにつれて江戸で調味料を製造するようになり江戸の味が作られたみたいです。

四国の和三盆が江戸時代にサトウキビの栽培に成功したことで生まれたり、キッコーマンの元となった製造元が醤油を作った歴史などが語られています。

この他にも参勤交代の制度のおかげで江戸に全国津々浦々から食材が集められてことなどが書かれており江戸が日本の中心であったからこそ独自の料理が作られてきたことが分かります。


将軍の食卓、町人の食卓


本章では将軍の食卓、上級・下級武士の食卓、町人の食卓が比較されています。

それぞれの食事内容の記録が残されている文献を参考に実際に各自の食事がどのようなものであったのかが書かれています。

将軍の食事は材料が豊富で一見すごく豪華なのですが、天ぷらなどの庶民が食べるものは食べないといった食事に対する制限が設けられていたみたいで身分が高い人は高い人で食べられないものがあり苦労していることが分かります。

また、上級武士や下級武士なども将軍と一緒で町民のように屋台で食事を買わないといった制限があったり、生産性がない職業であることが原因で給料が低く普段は意外と節制をしていたことが分かります。

それにくらべて町民は身分的には最も低い存在ですが食事に関しては屋台などの存在もあったおかげでそこらの武士よりはグルメな印象がつよいです。




大江戸グルメブーム


第四章ではグルメブームにより起きた初物の高騰や料理書の普及などについて説明されています。

今現在でも初物は人気ですがその流れは江戸時代からあったものみたいです。

鰹の漁獲量が少なかった時代には初鰹が一本現代の価格で10万円を超える値段で売られていたみたいです。初物が高騰した原因には江戸では初物を食べたということがステータスにつながっていたみたいで、このことが原因で値段がつりあがったみたいです。

幕府もやみくもに値段をつりあげないために食材ごとに販売する時期を制限していたみたいですが、制限されればされるほど欲しくなるのが人間のさがのようで裏で高値で取引が行われていたようです。現代のiphoneをフラゲしたり発売初日に並んで購入する人と江戸の人もあまり変わりがなかったみたいです。

またグルメかが進んだことで料理書などもこのときから現れ始めたみたいです。本書では料理本の一つである『料理物語』が引用でよく用いられていますが現代語訳版があれば私も購入して当時の料理を再現してみたいです。


究極の料理茶屋、八百善


この章では外食文化が発展した歴史と八百善という料理茶屋が人気になった理由について書かれています。

江戸時代になるまでは屋台をはじめとした外で食事をとる外食の文化がなかったみたいです。しかし、明暦の大火からの復興の際に「奈良茶屋飯」という茶粥の店ができたことがきっかけで江戸に外食文化ができたみたいです。

江戸で外食が広まったあともともとは八百屋であった八百善という料理茶屋が人気を集めました。

当時インターネットがなかった時代は集客するには店の良い評判を口コミで広げるしかなかったのですが、八百善は独自の料理本を出すなどの当時は考えられなかった画期的な方法で集客を行い江戸一の料理茶屋へと発展しました。




日本料理の完成


最後の章では江戸以前の時代から日本料理がどのように発展してきたのかがまとめられています。

日本料理は奈良時代に唐(当時の中国)の食事様式を取り入れたことから始まり、時代が進むにつれて現代の形へ発展したことが分かります。

最後まで読み終えたときには会席料理でどうして最後にご飯がでてくるかなどの疑問が解消されること間違いないでしょう。



最後に


ここでは本書の簡単な概要しか説明できませんでしたがもしこれを機会に興味を持ったならばぜひお手に取って読んでみてください。

『江戸の食空間』を読んだことでさらに食事の歴史についてさかのぼってみたいと感じました。この機会に私もまた別の本を読んで食文化に関する知識を深めていこうと思います。



強化学習の勉強をしたいと思い強化学習学習がpythonで勉強できるようなツールを探していると『OpenAI Gym』というものを見つけたのでインストールしてみることにしました。

ただ、ATARIの環境構築をする際に手間取ったので本記事ではWindows10でOpenAI Gymをインストールする方法をまとめました。


動作環境


本記事における動作環境は下記の通りになります。
  • Windows10 Home
  • anaconda
  • Python 3.6.7
anacondaをまだインストールしていない人は下記の記事を参考にしてください。




OpenAI Gymのインストール

1. 仮想環境の作成


Anacondaでは "conda create -n 仮想環境の名前 python=x.x" というコマンドを使って仮想環境を作成することができます。

Python3.6でOpenAIという名前の仮想環境を作る場合は下記のコマンドを入力してください。

conda create -n OpenAI python=3.6


2. 仮想環境をActivateする


"activate 仮想環境の名前" で仮想環境をActivateすることができます。

activate OpenAI


3. gymのインストール


gymは下記のコマンドでインストールすることができます。

pip install gym


4. gymの動作確認


pipでgymを無事インストールすることができたら動作確認をしましょう。動作確認は下記のコードで行うことができます。

import gym

env = gym.make('CartPole-v0'# select game
observation = env.reset() # initialize

for i in range(100):
  env.render()
  observationrewarddoneinfo = env.step(1# go right
env.env.close()

上記のコードが実行できればCartPoleのゲーム画面が現れて台座が右に行き続けます。

本当はポールを倒さないようにするゲームですが今回はテストプログラムのためゲームができているかどうかは気にしない方向で。

無題






ATARIの環境構築


gymが無事インストールできたらここからはgymでATARIのゲーム(インベーダーゲームなど)をできるようにしていきます。

インストールの方法を調べているとpipで簡単にインストールできるという記述が多々あったのですが"pip install gym[atari]" "pip install gym[all]" などのコマンドを使ってもエラーがでてしまいインストールすることができませんでした。

エラー内容はMicrosoft Visual C++ 14.0が必要、cmakeがインストールされていない、zlibが必要などだったのですがそれらすべてをインストールしても上手くいかなかったため色々と調べていると下記のページがでてきました。



このページによるとATARIの環境構築はコマンド一つだけでできcmakeなども必要がないということだったので実際に書かれている通りのコマンドを入力すると環境構築することができました。

そのコマンドは下記になります。

pip install --no-index -f https://github.com/Kojoley/atari-py/releases atari_py

また次のコマンドでもインストールできるみたいです。

pip install git+https://github.com/Kojoley/atari-py.git

インストールすることができたら動作確認をしてみましょう。動作確認は下記のコードで行うことができます。

import gym

env = gym.make('SpaceInvaders-v0'# sellect game
env.reset() # initialize
for _ in range(1000):
    env.step(env.action_space.sample())
    env.render('human')
env.close()

インベーダー



最後に


無事Gymの環境構築を行うことができたので今後、強化学習のプログラムを作成したときはそちらの方も記事にしていこうと思います。



DSC_3256


以前使用していたキーボードが壊れてしまったので新しいキーボードを購入しました。

今までメンブレンの安いキーボードしか使ったことがなかったためせっかくの機会だし新しいキーボードはメカニカルキーボードにすることにしました。

メカニカルキーボードの中でどのキーボードにするか悩んだのですが以前から青軸キーボードを使ってみたいという思いとデザインの良さからLogicool(ロジクール)の【G512】のクリッキーを選びました。


Logicool G512シリーズとは


G512シリーズは日本で2018年5月24日に発売したゲーミングキーボードです。ロジクールが独自に開発した「ROMER-G」というメカニカルスイッチを使用しているのが最大の特徴だ。ROMER-Gは入力の速さ、高耐久性、静穏性を売りとしている。

G512シリーズには以下の3通りのタイプがあります。
  • リニア
  • タクタイル
  • クリッキー
リニアとタクタイルはG512シリーズの発売当初から存在しており、クリッキーは日本では2018年7月5日から発売された。それぞれの特徴を以下にまとめます。

リニアはRomer-G Linearと呼ばれるメカニカルスイッチが使われており赤軸キーボードに近い特徴がある。そのためG512シリーズの中で特に静穏性が高いという特徴がある。

タクタイルはRomer-G Tactileというメカニカルスイッチが使われており茶軸に相当する。G512シリーズ発売当初はタクタイルがゲーミングキーボードとしての需要が高かったがクリッキーの登場により状況は変化した。

クリッキーはGX Blue Clickyと呼ばれるメカニカルスイッチが使われている。GX Blue Clickyと呼ばれる名前から分かる通り青軸キーボードに似た性能である。PCゲーマーがロジクールに青軸のキーボードを求めていたのでその需要に答えることのできたキーボードだ。

それぞれのメカニカルスイッチがCHERRY MXスイッチの赤軸、茶軸、青軸に似ているといったが冒頭でもいったように耐久性などがすぐれていることからROMER-Gのほうが良いキーボードだと考えられる。





実際にG512 クリッキーを使ってみた感想


ここからは私が実際にG512 クリッキーを使用してみて感じたことをまとめます。

キーの打鍵感についてだが、今までメンブレンのキーボードしか使ったことがないというのもあり使い始めた当初はキーが重く入力していて疲れると感じていたが、しばらくして慣れてくるとあまり疲れてこなくなった。

またキーを押した感触が青軸に似ていることからしっかりしているためキーの入力が成立していないという打ち損じが起こらない。また入力音が心地よくキーボードを打つのが楽しくなった。

ただ打鍵音が響くため職場などの多くの人がいる場所で使うのはあまり向いていないかもしれない。自宅などの打鍵音を気にしない環境で使うのがおすすめだ。音が気になる場合はクリッキーよりもリニアのほうが良い気がする。

またこのキーボードはゲーミングモードに切り替えることができゲーミングモードの間はWindowsキーなどのキーに触れても反応しないようにできるためゲーム中の誤作動を防ぐことができる。

その他にもロジクールの全てのキーボードに言えることだがロジクールのソフトウエアを使うことでLEDランプを自分の好きな色に変えられるところもいい。私はG512のシンプルなデザインにあう水色のLEDを採用している。

個人的な感想としてゲーミングキーボードとしてならG512のクリッキーは最高のキーボードであると思う。ただ仕事で使ったりあまりゲームをしない人ならばリニアのほうがおすすめだ。



最後に


15000円と少し値段ははったが本当にこのキーボードを選んでよかった。G512のおかげでメカニカルキーボードの良さに気づくことができた。

またお金がたまったらリニアや他のメーカーのキーボードを買ったりして時と場合でキーボードを使い分けたりしてみたいな。




ai_study_kikaigakusyu


Windows10を使って機械学習をしてみたいと思いPythonでTensorFlowを使える環境を整えてみたのでインストール方法をまとめました。


TensorFlowを選んだ理由


TrnsorFlow(テンソルフロウ)とはで機械学習の分野で使用するためのOSS(オープンソフトウェアライブラリ)で、Pythonでも使用することができます。

Pythonで利用できる機械学習用のライブラリは他にもChainer(チェイナー)や Caffe などがありますがその中でTensorFlowを選んだ理由は利用者が多く情報を探しやすいからです。

以前Chainerを使用していたがTensorFlowよりは情報が少ないイメージがある。

また使い方が分かりやすく誰でも簡単にニューラルネットワークを組めるところも魅力的だ。



TensorFlowのセットアップ手順


これからTensorFlowのインストール手順を説明していきます。今回はPythonのディストリビューションである Anaconda を使ってセットアップしていきます。


1. Anacondaのインストール


Anacondaは下記のページからダウンロードすることができます。

理由がなければPython3を選び基本的に最新バージョンで大丈夫なので64bitか32bitの自分に合ったほうを選択してダウンロードしましょう。



tensorflow1


インストーラをダウンロードしたらそれを起動しインストールを進めていきましょう。基本的に細かい設定をしたい人以外は Nextをクリックし続けるだけで問題ありません。

インストールにはしばらく時間がかかるのでゆっくり待ちましょう。

インストールが完了すると下記のような画面が表示され次に進むとVSCodeをインストールするか聞かれます。

これはインストールしなくても問題はありませんので私はskipをクリックしました(Visual Studio Codeを使ってデバッグなどするならばインストールしても良いと思う)。

tensorflow2
tensorflow

以上でAnacondaのインストールは完了です。


2.Microsoft Visual C++ 2015 再頒布可能パッケージ Update 3のインストール


TensorFlowを使うにはMicrosoft Visual C++ 2015 再頒布可能パッケージ Update 3をインストールする必要があるので下記のページからインストールしてください。

すでにインストールしている人はとばしてください。




3. TensorFlowのイントール(CPUバージョン)


Anacondaのインストールが完了したら次はTensorFlowをインストールしていきます

TensorFlowにはCPU用のものとGPU用のものがあるのですがまずはCPU用のもののインストール方法を説明します。

GPU用のものを使う人は下にGPUバージョンのインストール方法を記しているのでそちらを見てください。

まず最初にスタートメニューからAnaconda Promptを起動します。

tensorflow3

起動したら下記のコマンドを入力してください。

conda install tensorflow

もしエラーが出た場合は現在のpythonのバージョンではTensorFlowを使えない可能性があるのでバージョンを落としましょう。(2018年10月8日の時点では3.7ではTensorFlowをインストールできなかったので、3.5にダウングレードしました。)

バージョンを落とすコマンドは下記になります。(3.5にする場合)

conda install python=3.5

バージョンを落としたらもう一度TensorFlowをインストールしてみてください。それで成功するはずです。

TensorFlowがインストールできたらしっかり動作するかテストをしてみましょう。下記のコードを入力してみて実行ができたら正しくインストールできています。

import tensorflow as tf
hello = tf.constant('Hello, world')
sess = tf.Session()
print(sess.run(hello))

エラーが出た場合Pythonのバージョンを変更したりTensorFlowのバージョンを変更したりしてみてください。





4. TensorFlowのイントール(GPUバージョン)


TensorFlowで機械学習をGPUで行おうとするとTensorFlowの他にCUDAのインストールとCuDNNをダウンロードする必要があります。

CUDAのインストール


CUDAは下記のページからダウンロードすることができます。

https://developer.nvidia.com/rdp/cudnn-download

Windows10ならWindows10のものをダウンロードしましょう、CUDAのバージョンは9.0以外はTensorFlow対応していないので9.0にしましょう。

TensorFlowとCUDAのバージョンの対応表はこちらで見れます。

私は最初9.2でも大丈夫だと思っていたがそのせいで上手くいかず無駄な時間をとってしまった。
tensorflow5
インストールは指示通り進めていけば簡単にインストールすることができます。

CuCNNのダウンロード


CuCNNは以下のページからダウンロードすることができます。CuCNNをダウンロードするにはアカウントを作成する必要があるので持っていない人は作成しましょう

https://developer.nvidia.com/cudnn

CuCNNはCUDAのバージョンにあったものをダウンロードしましょう。

ダウンロードできたらCuCNNを展開して各ファイルをCUDAのディレクトリにコピーしてください。

cudnn64_7.dll ➞ NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin
cudnn.h ➞ NVIDIA GPU Computing Toolkit\CUDA\v9.0\include
cudnn.lib ➞ NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib

tensorflow-gpuのインストール


tensorflow-gpuのインストールはCPU用のものとほぼ同じでAnaconda Promptを起動し下記のコマンドを入力するだけです。

conda install tensorflow-gpu

インストールが完了したら動作確認をしましょう。下記のコードを入力してみてください。

from tensorflow.python.client import device_lib
device_lib.list_local_devices()

GPUの情報が表示されたら正しくインストールできています。CPUの情報しか表示されない場合は上手く動作できていないのでもう一度バージョンなどを確認してみてください。



最後に


色々と困ったこともありましたが無事インストールできました。今後 TensorFlow を使った機械学習に関する記事も書いていこうと思います。

もし何か分からないことがあれば気軽にコメントしてください。答えられる範囲で答えようと思いますので。




↑このページのトップヘ