アキタの雑記

博士後期課程の雑記ブログ。 読んだ本、コンピューター系のメモ、愛猫の写真、勉強のこととか。

2019年02月

社会の空気感を作っていくことの大切さ

聞いた話なんですけど~

僕の父の会社はいわゆるブラック企業とみなせると思う。僕が小さかった頃、平日に父と会う事はほとんどなかった。父は朝の4時には会社に出かけ夜の12時ぐらいに帰ってくるからである。1日の労働時間はおそらく12時間くらいだったのだろう。その時の僕の就寝時間は大体遅くても10時位で、起床時間は7時とかだったので会えなかったわけである。この労働時間の長さだけでなく、ボーナスがカットされたこともあったそうだ。

父の同期の人もその過酷な労働環境から1人、また1人と去っていったそうだ。会社を辞めたある人は辞め際にこういったそうだ、

「こんなの人間が働く環境じゃない。」

またある上司は、5ヶ国語を使えたすごく頭のいい人だったそうだが、身体が弱く週のうちの半分を欠勤していたそうだ。その結果、辞めてしまった。

このような人たちがいたということを聞くとブラック企業と呼ばれても仕方がないのだろうと思う。 母も子供達に父の会社に入ることは勧められないと言っている。

また有給休暇は制度としてはあったものの会社の空気としてはそんなもの取れるわけもないと言うような空気感だったそうだ。これが大体今から10年位前の会社の空気感だ。

その空気感が今は変わってきているそうだ。最近、有給が取れるかもしれないと父が言っていた。会社の上の人の方が有給を取るように指示しているようだ。まだ実際有給が取れるのかわからない。しかし、最近の社会の世論の影響で少しずつブラック企業と言われる長時間労働をする会社も変わってきているのかもしれない。もし僕たちが長時間労働を行う会社で働くことを望まないのならば、そのような長時間労働はナンセンスだと言う社会的な空気感を作っていかなければならないのだなぁと感じた。逆に言えば、空気感は変えられるのだと。

日々を楽しく生きるためのおこだわり

おこだわり人たち



日々の生活というのは同じことの繰り返しのようで退屈になりがち。そんな退屈な生活の中をどう楽しく生きるか。日常の細部のどうでもいい事にこだわりを持ちそれを守りそれを他人におおっぴらに知らせず密かに楽しむ人がいる。そんな「おこだわり人」の持つこだわりを知ることで人生をより楽しむことができるかもしれません。 以下、本書に掲載されているおこだわり人たちです。

  • ツナ缶の男
  • 寝る男
  • アイスミルクの男
  • ポテトサラダの男
  • ベランダの男
  • 白湯の男
  • 帰る男
  • 内ポケットの男
  • さく男
  • コンソメパンチの男
  • この人たちについて詳しくは書かないんですけどね笑
    この「おこだわり」のポイントは、日常で、どうでもいいことを、こだわることで楽しく過ごしているというところです。
    この漫画のポイントは、どうでもいいところにこだわり続けるその変態性ですね。この変態性こそ人間を人間たらしめるところなのかなと思います。 そこに目を付けたのは清野先生すごいなあと思います。書かれている内容なんて、「道路の白線しか歩かない」みたいな小中学生の時にやったようなことばかりなんですけど、それがいい。おこだわり人が本当に自分のこだわりを研究していて楽しんでいるのがいい。本当にすぐにでもやれるようなことが描かれてあるので、実行しやすい。そんな狂気の漫画ですよ。

    この漫画を読むきっかけ

    この漫画と出会ったきっかけは、この作者の東京都北区赤羽という漫画を読んで知っていたからです。あ、作者一緒だということで紙の漫画で買ってました。それが、今回Kindleの無料本で出ていたのでKindleでもダウンロードしたという感じです。それで、東京都北区赤羽を知ったのは、山田孝之の東京都北区赤羽という番組が何年か前にあってそれを見て知りました。その番組は山田孝之が東京都北区赤羽を読んで実際に赤羽で暮らしてみるという番組で面白かったです。漫画にでてくるキャラは赤羽で実在しているので(今もいるかは知りませんが)マジだ。みたいな感じで面白いですよ。

    自分のおこだわりを探したい

    ああ、おれにも何かおこだわりないかなあと考えていました。 強いて挙げるなら早起きかなあ。大体5時くらいに。 クソネミで起きてルームメイトたちはまだ寝ている中一人で家の空間を利用できる贅沢さ。クソネミから離脱するために飲むコーヒー。コーヒーを飲みながら太陽が昇るのを待つ時間。太陽が昇るのと同時にさえずる鳥の鳴き声。そして一日を20時間くらい過ごせる幸せ。とか? (今は4人で一区画シェアしてます)ルームメイトずっと寝てるから、8時とかに起きても一人なんですけどね。なんだかんだ、朝食作ったり授業資料みたりしていたらあっという間に8時とかになってしまいますね。

    自分のブログの記事一覧をPythonでスクレイピングしてみた2.実際のコード

    全体のスクレイピングコード
    前回の記事(自分のブログの記事一覧をPythonでスクレイピングしてみた1.Pythonのライブラリと文法の確認)の続きです。

    今回の対象範囲の確認

    527
    CSVファイル
    今回見ていくのは上の画像に示されてあるコードです。また最終的に出力されるCSVファイルも上に示されてある通りです。name列の下には、タイトルなどの文字列が、url列の下には各URLがまとめられていることを確認してください。

    urlという名前にこのブログのURLを代入

    url
    「url = "http://www.g36cmsky.com/"」
    とすることで、これから自分のブログのURLを使いたいときに毎回入力する手間を、urlという三文字で置き換えました。楽になりますね。

    responseにこのブログ内のtextを代入

    response
    「response = requests.get(url).text」
    とすることで、「url」内のtextを取得することができます。
    復習ですが、「requestsはWebからデータをダウンロードできるライブラリです。」

    「.get()」

    Webからデータを取得する際に、どこのWebsiteにアクセスするかを決めるときに「.get()」を使います。「.get」の後に取得したいWebのURLを入力します。僕のブログにアクセスしたいので、僕のブログのURLを入力します。この前に「url = "http://www.g36cmsky.com/"」としたことが役に立ちます。urlという文字が僕のブログのURLと同じ意味になっているので、「.get(url)」でいいのです。
    「url = "http://www.g36cmsky.com/"」としていなかった場合は、「.get("http://www.g36cmsky.com/")」としなければなりません。

    BeautifulSoupの初期化

    soup
    「soup = BeautifulSoup(response, 'html.parser')」
    とすることで、BeautifulSoupの初期化を行います。
    ここではHTMLを扱っているので、BeautifulSoupが使われています。

    tagsに("div", {"class":"sidebody"})とhtmlで紐づけられている全ての要素を代入

    tags
    「tags = soup.find_all("div", {"class":"sidebody"})」
    ここでは、tagsに僕のブログの横にずらーっと並んでいる要素を取り込んでいます。(「取り込んでいる」という表現が適切かは怪しいところですが。。。)
    ここでも、扱っているのはHTMLなのでBeautifulSoupを使っています(soupって書いてあるところね。)。soupの後ろにある「.fund_all」はざっくり言うと「全部出せ」といったところでしょうか。何を全部出すかというと、さらにその後ろにある("div", {"class":"sidebody"})です。
    つまり、ここで書いたコードは
    「HTML内にある("div", {"class":"sidebody"})という要素を全部出して。」という意味になります。

    csvファイルの行と列を指定

    dataflame
    columns = ["name", "url"] df2 = pd.DataFrame(columns=columns)
    columnsにデータフレーム(目的であるCSVファイルの中の列)を作ります。その名前がnameとurlになります。このnameの下には記事のタイトルがずらーっと並び、urlの下には各URLがずらーっと並ぶ予定です。

    df

    dfとされていてこれ何か意味があるのかなと思いましたが、たぶんなんでもいいです。ただ、 pandasでググるとほとんどdfの中にしまわれていました。これはたぶん、 data frameの略でdfになっているんだろうなあと勝手に納得しています。違っていたら教えてもらえれば幸いです。

    pd(pandas)

    最初にpandasをインポートした時に、pandas as pdとしました。よってこのpdはpandasの意味です。

    .DataFrame

    .DataFrameはpandasのコマンドで、データフレームを作成するときに使います。今回は列を作るので、DataFrame(columns=columns)とします。最初のcolumnsが列を指定して、次のcolumnsは自分が前に作成した「columns = ["name", "url"]」のことです。

    記事名と記事URLをデータフレームに追加

    for sentense all
    ここでは、たくさんある記事名と記事URLをそれぞれのデータフレームの中に格納していきます。主にループ処理に使われるfor文を使います。

    for文について

    for文はループ(繰り返し)処理を行う時に使われる文です。for文はPythonだけでなく他の様々なプログラミング言語でも使われています。for文を使って、僕のブログの複数ある記事タイトル、URLを取得しようというわけです。

    in演算子

    for文で使われているin演算子は、一つずつ取り出すときに使われるようです。

    実際に書いたfor文

    for sentense all
    ここでは、実際に書いたfor文(上の画像)について一つ一つ確認していきます。

    tagsの中からtagの中に繰り返し、一つずつ要素を取り出す

    for tag in tags
    最初の
    「for tag in tags:」
    は、tagsの中からtagの中に繰り返し、一つずつ要素を取り出す。という意味です。この文の下には、取り出した要素を格納します。具体的に言うと、前に作成したCSVの列名name、urlにtagsの中の各タイトル、URLを格納していきます。

    nameにtag内にあるaタグ要素の文字列のみを取り出す

    name=
    name = tag.a.string はnameにtag内にあるaタグ要素の文字列のみを取り出します。という意味です。 このnameは後でCSVファイルにぶち込まれるやつです。

    urlにtag内にあるa要素のhref要素を取りだす

    urla
    「 url = tag.a.get("href")」
    urlにtag内にあるa要素のhref要素(URLが書かれているところ)のみを取り出します。という意味です。

    seにpandasを使いSeriesという型にデータを収納

    se
    「se = pd.Series([name, url], columns)」
    seにpandasを使って、Seriesという型にデータを収納します。ここで収納するデータは、[name, url]というデータと前に作成したcolumnsのデータです。

    seの表示

    printse
    「 print(se)」 でseを表示します。

    以前に作成したdf2に今回作成したseを追加

    df2
    「df2 = df2.append(se, columns)」 前に作成したdf2に今回作成したseを追加します。

    .appendで要素を追加

    df2
    「.append(追加するもの)」で配列に要素を追加することができます。「.」の前には追加対象の配列(list)を書きます。今回の対象は以前作成したdf2という配列ですね。

    result.csvという名前でCSVに出力

    csv export
    最後の段階です。ここでは、今まで集めてきたデータをCSVファイルを作成するまでを見ていきます。

    作成するファイルの名前を作成

    filename
    「filename = "result.csv"」でファイルの名前を決めました。CSVファイルを作りたいので拡張子は「.csv」としています。

    データが格納されているdf2をCSVファイルに変換

    tocsv
    「df2.to_csv(filename, encoding = 'utf-8-sig')」と書くことでCSVファイルに変換できます。encoding指定しないと、エラーが起こるそうです。

    作成したCSVファイルをPCにダウンロードする

    dw
    「files.download(filename)」で作成した「result.csv」というファイルをダウンロードします。.downloadの後ろの()のfilenameには「result.csv」が格納されています。

    あとがき

    前回(自分のブログの記事一覧をPythonでスクレイピングしてみた1.Pythonのライブラリと文法の確認)の続きで、自分なりにまとめておりました。楽しかったです。最後にここで行ったスクレイピングはDaiさんのPythonによるスクレイピング①入門編 ブログの記事をCSVにエクスポートするをもとに行いました。ありがとうございました。

    自分のブログの記事一覧をPythonでスクレイピングしてみた1.Pythonのライブラリと文法の確認

    この記事では、僕が自分のこのブログの中の全記事の記事タイトルとurlを取得しようとして、結果的に部分的にしか取れなかったお話です。
    こちらの記事(Pythonによるスクレイピング①入門編 ブログの記事をCSVにエクスポートする)を参考にして書いてみました。

    今回はスクレイピングを行って行く中でPythonのライブラリやら、分からなかった単語とかを調べたのをまとめたものです。

    なお、僕は全然詳しくないので間違いがあるかもしれませんがご了承ください。

    スクレイピングとは

    スクレイピングとは、ウェブサイトから情報を取得して、その情報を他の情報に加工して新しい情報を作ることです。つまり、あるウェブサイトの中から特定の情報だけを取り出して保存したりすることのことですね。例えば、今回僕のブログからは僕のブログ内にあるすべての記事のタイトルとそのURLという二つの情報を抽出してまとめようとしました。そのように特定の情報を引き出すことをスクレイピングと呼ぶようです。

    最終的な結果

    全体のスクレイピングコード

    CSVファイル

    最終的には、こんな感じのコードになってこんな感じのCSVファイルを作ることができました。

    必要なモジュールをインポート

    module

    ここではスクレイピングに必要なモジュールをインポートします。モジュールというのは
    Python インタプリタを終了させ、再び起動すると、これまでに行ってきた定義 (関数や変数) は失われています。ですから、より長いプログラムを書きたいなら、テキストエディタを使ってインタプリタへの入力を用意しておき、手作業の代わりにファイルを入力に使って動作させるとよいでしょう。この作業を スクリプト (script) の作成と言います。プログラムが長くなるにつれ、メンテナンスを楽にするために、スクリプトをいくつかのファイルに分割したくなるかもしれません。また、いくつかのプログラムで書いてきた便利な関数について、その定義をコピーすることなく個々のプログラムで使いたいと思うかもしれません。
    こういった要求をサポートするために、Python では定義をファイルに書いておき、スクリプトの中やインタプリタの対話インスタンス上で使う方法があります。このファイルを モジュール (module) と呼びます。モジュールにある定義は、他のモジュールや main モジュール (実行のトップレベルや電卓モードでアクセスできる変数の集まりを指します) に import (取り込み) することができます。
    モジュールは Python の定義や文が入ったファイルです。ファイル名はモジュール名に接尾語 .py がついたものになります。
    とのことです。

    モジュールの導入に使った関数とか定義

    関数とか定義とか書いていますが、この意味は例えば、import, as, fromとかの事です。これらの文字の呼び方を僕は知らないので、関数とか定義とか書いておきました。
    後に勉強して分かったら追記しておきます。
    モジュールの使い方に関しては、以下のサイトを参考にしました。 Python from・importの基本的な使い方

    import

    importは、「import モジュールの名前」
    で使うことができるようです。 例えば、このスクリプトでは
    「import pandas」
    としていますが、これはpandasというモジュールをインポートしたよ。ということですね。
    このimportですが、どこからインポートされるんだという話ですが、お使いのPythonライブラリの中にインストールされている中からインポートされるようです。
    Google Colaboratoryで実行する場合はこのスクリプトをぽちっとすると何の問題もなく動きますが、テキストエディタとかでrunするときは自分のPythonの中にimportされていないとエラーが出て動かないので注意が必要です。その場合はモジュールをインストールする必要があります。その方法はのちのちに書きたいと思います。

    as

    asはライブラリの名前とかを省略して書くときに使うようです。
    「import pandas as pd」 というのはインポートしたpandasというモジュールをpdとしてこれから使いますよ。という宣言です。
    その時に使われるのが、asということですね。一般的に長い名前のモジュールとかを省略する場合に使うようです。ただ、その名前を付ける時にそのモジュールだと分かるように付けた方が便利だとおもいます。また、よく省略されるライブラリの名前は決まった省略の仕方があるようなので、勉強していく必要があるようです。

    from

    fromは
    「from bs4 import BeautifulSoup 」
    これは、bs4というモジュールの中に入っている、BeautifulSoupというものをインポートしますよ。という意味ですね。 これをfromを使わずに書くと、
    bs4.BeautifulSoupと書かなければいけないみたいです。ちょっと書く量を減らすことが出来るみたいです。

    使用したモジュール、パッケージ、ライブラリ

    上ではpandasとかのことをモジュールと書いていました。しかし調べているとモジュールとかパッケージとかライブラリとか色々な呼び方をされているようで非常に困惑しました。僕からするとどれも同じような文脈で使われているようでしたが、ちょっとした違いがあるようです。
    モジュールは、関数やクラスを集めたファイルのことで、拡張子が「.py」になっているファイル。 パッケージは複数のモジュールを集めたもので、パッケージは「_init_.py」のファイルになっているそうです。 ライブラリは、厳密な定義がなくモジュール、パッケージどっちのこともいうみたいです。 ということは、厳密に分かっていない僕のような人はモジュールというよりはライブラリと呼んだ方がいいのかもしれませんね。 以下のサイトを参考にしました。 (Pythonのパッケージとモジュールの違い)

    pandas

    wikipediaによると
    Pandasは、プログラミング言語Pythonにおいて、データ解析を支援する機能を提供するライブラリである。特に、数表および時系列データを操作するためのデータ構造と演算を提供する。PandasはBSDライセンスのもとで提供されている。
    とのことです。
    何を言っているのかわかりませんでした。
    今回スクレイピングで使った時は、「取得したデータをCSVファイルに変換すること。」という意味で使用しました。 Wikipediaを見るとCSVファイル意外のファイルにも変換できるみたいです。
    CSVファイルとは
    少し脱線。
    しれーっとCSVファイルとか書きましたが、CSVファイルってなんだと思っている人もいると思うので、書いていきます。
    CSVファイルというのは、「Comma Separated Value ファイル」の略です。その名の通り、データをカンマで区切られたデータファイルのことです。拡張子は「.csv」です。文字列とカンマで構成されたデータファイルで表形式になっています。MicrosoftのExcelみたいなものです。Excelにもインポートできます。じゃあ最初からExcelファイルでいいじゃないかと思う人もいるかもしれませんが、人類すべてがExcel持っていると思うなよ?ということですね。CSVファイルにすると他の表計算ソフトとか色々なソフトでも容易に使うことが出来るのでまあ便利だよね。ということみたいです。

    bs4

    モジュールの一つで、BeautifulSoupを中に持っているものなんだなあという理解です。 beautifulsoup4 4.7.1

    BeautifulSoup

    BeautifulSoupは取得したHTMLを操作できるライブラリです。
    ここでは、特定のHTMLタグを探して表示することに使っています。

    requests

    requestsはWebからデータをダウンロードできるライブラリです。 このライブラリを使って私のブログのデータを取得します。

    google.colab

    Google Colaboratoryのことです。 ここでは、
    「form google.colab import files」
    として使われていて、Google Colaboratoryから自分のPCにファイルとして保存するときに使われています。

    最後に

    あんまり長く書くと、後に僕が確認するときにめんどくさくなりそうなので今回はPythonの基本的なライブラリのメモや文法?の確認までを書きました。 次回からは、順を追って一つ一つ自分が見返して分かるように書いていこうと思っています。
    追記:続き書きました(自分のブログの記事一覧をPythonでスクレイピングしてみた2.実際のコード), 2019/Feb/22

    POPEYE

    popype

    Kindleのprime readingでついつい読んじゃうのが雑誌。

    雑誌は普段買わないし、そんなに気合を入れて見なくていいから。

    しかも、中古にも出にくいしね。

    Kindleの中だとそんなに種類が多いわけでもないんだけど、このPOPEYEはよく読む。

    ガジェット系。

    おれは貧乏なのでここに載っているようなものは高くてとても手が出せないんだけど、見ていて楽しい。こんなのあるのか、とかこの人こんなの使ってるのかとか思いながら雑誌を眺めている。

    今回読んだのは、2018年の11月のもの。

    表紙には一人旅にいってきます。の文字とヨーロッパっぽい風景と行き交う人。空の薄い青さが気持ちよさそう。

    村上T

    村上春樹のTシャツのコーナーが好き。村上春樹の持っているなんか変なというか、変わったTシャツを村上春樹のエピソード付きで紹介しているコーナーなんだけど。ウイスキーのTシャツとか、村上春樹の本の販売促進のために作られたTシャツとか紹介されてんの。そんなの見た事ない。

    東北旅

    たまたま見た刊は旅がメインテーマになっていて、海外とかを紹介している中で東北も扱われていたの。

    馴染み深い東北だと思っていたけど、雑誌に書かれていた東北はまだおれが知らない東北だった。

    旅の初めは宮城は仙台。宮城県民は出身聞くと厳密には仙台市民じゃなくても近いところに住んでいると仙台って答えがち。

    高速道路を走っているとニョキッと顔をのぞかせる巨大な観音様。これはよく見る。近くに行ったことはないけど。

    仙台のグルメとしてマーボー焼きそばが紹介されていた。なんだそれ。隣県なのに聞いたことがないぞ。仙台勤務の父に聞いてみたら知っていた。おれが無知なだけでした。味はまあ予想つくけどね。今度食べてみなきゃ。

    よし仙台ときたら次は山形だろうとページをめくると秋田。

    なぜ??

    山形については
    宮城と山形の間をひたすら北上。山の向こうで川風呂が待っている。
    という記述のみ。

    今度は山形よってくれや。
    4d7c3c5b.jpg

    秋田も温泉がちょろっと紹介してあっただけだった。


    温泉なら山形じゃね?と少し憤りつつもページをめくるとそこは盛岡。

    くそここがメインか。

    宮沢賢治ローストチキン南部鉄器だあ?まあ知っていたけどあまりなじみはないなあ。

    そして遠野へ。ここは妖怪が有名だよね。出たでたカッパ。へえどぶろくが有名なの?遠野って。高校サッカーでは遠野か盛商の遠野でもある。 まあ岩手は大きいからそりゃあページ数も多くなるよね。仕方ない。

    あれ青森寄らないんですか?と思ったのは内緒。
    青森


    愉快な旅人

    この連載は俳優の満島真之介が尊敬する先達に会いに行く連載。

    今回はブルーハーツやクロマニヨンズでおなじみの甲本ヒロトさん

    かっけえ。

    満島さんが甲本さんに質問していた。

    今は音楽もCDやレコードじゃなくてストリーミングストリーミングで聞くことが当たり前になっているけどどう考えていますか。

    ってさ。

    それに対して甲本さんはこう答えていた。

    「CDやレコードの音楽もストリーミングの音楽も、すべて体感すればいいと思う。楽しければどれでもいい。全部体験してから選べばいいと思うんだけど、体験する機会が減っているのは残念だと思う。」(一部抜粋)

    全くその通りだと思った。個人的にはCDとかレコードが好き。自分の部屋でCDとかレコードを選んでそれを入れて聞いてケースにしまうまでの一連の流れが好き。

    ↑このページのトップヘ