Drop Down MenusCSS Drop Down MenuPure CSS Dropdown Menu

公開日 : 2017-10-19

【Python】Google Vision APIで、スクショした表形式の画像データから文字を抽出してみたよん

このエントリーをはてなブックマークに追加

目的とやりたいこと


PDFとかならいいんですけど、画像データのテーブルを手動で写すのは尋常もなく面倒くさいのでなんとかできないかと考えていました。ほら、例えば雑誌でしか手に入らないテーブルって、切り抜きを手動でエクセルにまとめるぐらいしか方法がないじゃないですか。


だから最終的には、スクショした画像がそのままCSVになるってのがいいんですけど、それがどうやったらできそうかなぁと考えたときに


・画像ファイルから文字を抽出してくれるようなアルゴリズムを書く
・抽出した文字をCSV形式に変換して、保存できるアルゴリズムを書く


という流れが必要だと考えたわけです。そこで、画像ファイルを文字に抽出してくれるのでいい方法がないかなと考えたときに、機械学習で精度を極限まで高めたGoogleのVision APIなんてよさそうだ!と思い、試してみました。ちなみに画像から文字を検知するのはTEXT DETECTIONというらしいです。


今回やりたいこととしては、Pythonを利用して、Google Vision APIで、スクショしたテーブルイメージのテキストを取得するところまでです。校舎の抽出した文字をCSV形式に変換して、保存できるアルゴリズムは今回のスコープ対象外とします。今回はできなかったけど、Python コーディングでCSVにいい感じに変換ってところまでをやりたいです。


Google Vision APIを取得と、実装



とりあえず、下記サイトで、APIの登録方法に従い、無料体験プランに登録してください。そして下記サイトのコードを参考にコードをコピペしました

凄すぎ!Google Cloud Vision APIをつかって簡単高精度にOCR

今回は、Google Cloud Vision APIのOCRを試してみたら精度が良すぎてビビったので、やり方と結果を紹介してみます。 上のリンクにアクセスし、 プロジェクトを作成した上で、


しかし上記サイトのコードがPython2に対応だったので、Python3の場合は以下のページを参考に、適当に修正してください。下記のソースコードを利用して、いい感じにコピペしてください。

[Google Cloud Vision] python 3.5 でリクエストした時のエラー対処 (is not JSON serializable)

以前こちら↓の記事でGoogle Cloud Visionの記事を紹介したのですが、掲載したコードはpython2.7での挙動を確認したものでした。 今回ちょっとした用でpython3.5で動かしてみたところエラーがでて動かなくなってい



実行結果


今回は、こういう短い数字の画像をスクショしてみたところ、いい感じにデータをJSON形式で取得できました。




$ python OCRProject.py
begin request
end request
{
  "responses": [
    {
      "textAnnotations": [
        {
          "locale": "en",
          "description": "o 1 4 6 7 9\n",
          "boundingPoly": {
            "vertices": [
              {
                "x": 12,
                "y": 2
              },
              {
                "x": 160,
                "y": 2
              },
              {
                "x": 160,
                "y": 34
              },
              {
                "x": 12,
                "y": 34
              }
            ]
          }
        },
        {
          "description": "o",
          "boundingPoly": {
            "vertices": [
              {
                "x": 12,
                "y": 2
              },
              {
                "x": 21,
                "y": 2
              },
              {
                "x": 21,
                "y": 34
              },
              {
                "x": 12,
                "y": 34
              }
            ]
          }
        },
        {
          "description": "1",
          "boundingPoly": {
            "vertices": [
              {
                "x": 34,
                "y": 2
              },
              {
                "x": 43,
                "y": 2
              },
              {
                "x": 43,
                "y": 34
              },
              {
                "x": 34,
                "y": 34
              }
            ]
          }
        },

以下、取得したJSONデータの公式リファレンスです。

Text detection samples | Google Cloud Vision API Documentation | Google Cloud Platform

For your convenience, the Cloud Vision API can perform Text detection directly on an image file located in Google Cloud Storage or on the Web without the need to send the contents of the image file in the body of your request.


し、しかし・・・・文字の座標とかいらねんだよ!!
ほしいのはJSONのresponses > textAnnotations > descriptionsの文字列データのみをなんじゃ!さて、困ったものだ!そこで、PythonでDictionary型に変換して、必要なとこだけ取得できるのがよさそうだなぁと考えました。


ということで、


・JSON形式のAPIレスポンスを、Python用に処理しやすいようDictionary型に変換
・Dictionary型から、responses > textAnnotations > descriptionsの文字列データをプリントする


ってことを、適当にググって修正したコードがこちらです。(べたうちビンビン丸)
(image.jpgは、下記の画像です。pythonファイルが存在する同一階層上に存在する適当なファイルでございます。)

http://tmaita77.blogspot.jp/2017/10/blog-post_9.html


#!/usr/bin/python
#coding:utf-8
import base64
import json
from requests import Request, Session
from bs4 import BeautifulSoup

path = "image.JPG"

def recognize_captcha(str_image_path):
        bin_captcha = open(str_image_path, 'rb').read()

        #str_encode_file = base64.b64encode(bin_captcha)
        str_encode_file = base64.b64encode(bin_captcha).decode("utf-8")
       

        str_url = "https://vision.googleapis.com/v1/images:annotate?key="

        str_api_key = "ここにAPI KEYをいれてね!"

        str_headers = {'Content-Type': 'application/json'}

        str_json_data = {
            'requests': [
                {
                    'image': {
                        'content': str_encode_file
                    },
                    'features': [
                        {
                            'type': "TEXT_DETECTION",
                            'maxResults': 10
                        }
                    ]
                }
            ]
        }
       
        print("begin request")
        obj_session = Session()
        obj_request = Request("POST",
                              str_url + str_api_key,
                              data=json.dumps(str_json_data),
                              headers=str_headers
                              )
        obj_prepped = obj_session.prepare_request(obj_request)
        obj_response = obj_session.send(obj_prepped,
                                        verify=True,
                                        timeout=60
                                        )
        print("end request")

        if obj_response.status_code == 200:
            #print (obj_response.text)
            with open('data.json', 'w') as outfile:
                json.dump(obj_response.text, outfile)
            return obj_response.text
        else:
            return "error"

if __name__ == '__main__':
    data = json.loads(recognize_captcha(path))
    data = data["responses"]
    print(data)
    for i in data:
        print(i["fullTextAnnotation"]["text"])


ちょこっと頭を使ったところに関しては、ここの下り。


data = json.loads(recognize_captcha(path))
    data = data["responses"]
    print(data)
    for i in data:
        print(i["fullTextAnnotation"]["text"])


json形式をdictionary形式に変換してdateにぶち込みます。そんで、なんか外側に余計なかっこが存在するので、for分で取っ払います。あとは、先ほどのresponses > fullTextAnnotation>textにアクセスできるように実装しましたんご


で、出力結果がこちら

$python OCRproject.py
>
首都圏の公務員就職率の上位20位
設置




















大学·学部名
日本文化大学·法学部
創価大学·看護学部
東京大学法学部
千葉大学法経学部
千葉大学·園芸学部
首都大学東京·都市環境学部
北里大学·獣医学部生物環境科学科
千葉科学大学危機管理学部
慶應義塾大学·理工学部
お茶の水女子大学·生活科学部
千葉大学·文学部
埼玉大学·工学部
中央大学·法学部
埼玉大学·経済学部(昼間)
日本社会事業大学·社会福祉学部
お茶の水女子大学文教育学部
国際武道大学·体育学部
東京大学·教養学部
東京大学·農学部(獣医学課程以外)
専修大学·法学部(一部)
母数
229
75
294
352
110
95
82
210
573
98
172
160
1188
297
193
170
460
129
74
697
48.9
41.3
31.0
28.1
26.4
26.3
25.6
23.8
23.6
23.5
23.3
22.5
21.5
20.9
19.7
18.2
18.0
17.8
17.6
17.5



いいねぇ、画像にテキストが埋め込まれているわけじゃないのに、きれいに出ました!
文字の出力の精度高すぎ!!さっすが独裁グローバル企業!

課題


出たは出たんだけど、たぶんOCRは縦に列を見て、今度は横の列を見てって処理を行っているみたいなので、へんなふうに改行されてしまいます。これだとちょっとなぁ、確かにいちいちマニュアルでデータを入力する作業コピーしなくても済むけど、エクセルでコピペして列ずらすとかの作業は必要になってしまうなぁと思いました。


解決された領域はこんな感じです。

・データを手動で入力 →〇
・ファイルの整理 → △
・CSV出力 → ×


今度は、この取得したデータをもとに、いい感じにデータを整理して、CSVファイルに落とし込む方法を模索してみたいと思います。おそらくやり方は二つあって、


・Google Vision APIで行で処理してくれる方法を探す
・全要素数と列数から、一列あたりの要素数を特定し、その値をどんどん列に追加していく


前者は、ここの要素に座標が付随されているので、同一列のものをグルーピングしていく方法が考えられます。


後者は、全要素数を3でわって、その列の最後の数まで列に値を追加、次にその次の列に値を追加、というのをfor文回してあげればできるんじゃないかなぁと考えていますが、それだと引数に列数を指定したり、ユーザビリティが落ちそうですね。


とりあえず、いろいろ考えてみます。うんこ!

スポンサーリンク

公開日 : 2017-10-14

ヨッピーの「明日クビになっても大丈夫」って本が死ぬほど面白かったのでまとめてみた

このエントリーをはてなブックマークに追加


こんにちは、DAIです。最近は2chのひろゆき氏や、哲学者の中島義道氏、Webライターのヨッピー氏など、ちょっと社会的に不適合そうだけど、めっちゃくちゃ面白い人の書籍を読み漁っています笑



今回は、Webライターのヨッピーさんが9月12日に出版した本をネットで見つけ、「あ!市長とシムシティやってたおっさんだ!面白そうw」と思い、この書籍をKindleでポチりました。タイトルは「明日クビになっても大丈夫!」という、相変わらずふざけたタイトルですが、面白そうなので買ってしまいました笑



明日クビになっても大丈夫!
ヨッピー
幻冬舎 (2017-09-21)
売り上げランキング: 933

普段ヨッピーさんが書いている記事は死ぬほど面白いです。例えば、

>市長って本当にシムシティが上手いの? 千葉市長とガチンコ勝負してみた
とか、
> エロいとはげるって本当?実際に調査してみた

とか。今回書いていることは結構まじめなことが多くて、普通にビジネス書としてもかなり面白かったので、特に面白かったところをまとめてみます。ちなみに広告とか、ライターの人とか、フリーランスやりたい人にはぜひおすすめの書籍です!


目次


・生産する趣味と消費する趣味の違い
・大事なのは世の中にアウトプットし続けること
・情報は発信する場所に集まる
・会社を辞めてもいい三つの条件  
・儲かりそうな椅子の探し方:プラスワン戦略の勧め
・広さ×深さ×距離感の法則


>スポンサーリンク



スポンサーリンク

大学の統計学が難しすぎてついていけない人でもわかる、統計学のおすすめ書籍8選

このエントリーをはてなブックマークに追加

安心して!大学の統計学は基本わかりにくいから笑



こんにちは、大学センター数学1Aが49点だったDAIです。そうです、ど文系です。


きっとこの記事読んでいる人は、大学で学ぶ統計学に、何らかの苦手意識があると思うんですね。


安心してください。僕もそうでした。ど文系の私も、大学で初めて統計学の講義に出たときに、思いました。「ちょ、大学の統計学の授業って、どんだけわかりにくいんだ!www」「大学の統計学の授業ってどんだけつまらないんだwwwww」と。


で、この直感は当たってました。というのもですね、大学の統計学の授業って、高校レベルの数学ちゃんとマスターしてますぞい!って人を対象にしているので、ど文系でいきなり「おい!なんとかついて来いよ!お前らわかってる体でやるからなwwwがはは!じゃあこのシグマは・・・・」みたいな教授に教えられても、「先生、そのたらこ唇みたいな記号なんですか?」みたいな話になるわけで、そりゃわかるはずないんですよw 難しすぎますから。


で、数学って基本的に基礎的なことわかってないと先に進めないので、完全に統計学が難しいと思い込んでしまい、統計アレルギーの大学生が続出してしまうんだと思います。


それと、大学の統計学って、理論を学ぶものばっかで、データ分析して何か新しいインサイトを発見するってことほとんどしないんですよね。ってことで、難しいし意味わからないし、何の意味も感じられないしwww糞教科じゃねえかこれ!ってなるわけです。


大学の統計学が難しすぎるなら、まずは超簡単な書籍から始めようじゃないか!



なので、僕がおすすめするのは、極限まで簡単な統計の基礎から学んでいき、そこから少しずつレベルを上げた参考書を選んでいくという方法です。どんなに数学音痴な僕でも統計学の基礎ならなんとかなりました。統計学初心者だとまずどこから始めるべきかわからないと思うので、超絶簡単なのから紹介していきます。


あと、統計学で理論ばかりやってると、「え、こんなのやってても意味なくね?え?母集団?標本?ごちゃごちゃうるせえぞ」みたいな気持ちになるので、超絶実践的にデータいじる系の書籍をご用意しました。ということで、Lets Introduce


①マンガでわかる統計学


マンガでわかる統計学
マンガでわかる統計学
posted with amazlet at 17.10.13
高橋 信 トレンドプロ
オーム社
売り上げランキング: 7,034


はい、マンガでわかる統計学でございます。いきなり萌え絵の書籍を紹介してきて、「なんだこいつキモオタか」と思ったあなた、安心してください。そう思っていた時代、僕もありました。この統計学の本、もう少し表紙がしっかりしていたらもっと早く手に取って楽に統計学を学べたのになぁと今でも後悔しております笑


これ、たぶん統計学初心者で、今まさにつまづいているのであればすぐ買ったほうがいいです。あ、シグマってそういう意味なんだ!え、相関係数ってそんな簡単な話なの?あ~検定って超簡単じゃんw」ってなりました。たぶん中学三年生でも、読めばわかるレベルなので、まずはだまされたと思って買ってみるのがいいと思います。(ちなみにAmazonが一番安かったです)

本書は統計の基礎から独立性の検定まで、マンガで理解!
統計の基礎である平均、分散、標準偏差や正規分布、検定などを押さえたうえで、アンケート分析に必要な手法の独立性の検定ができることを目標としている。
統計の基礎を、学びたい方に最適の一冊。


マンガでわかる統計学
マンガでわかる統計学
posted with amazlet at 17.10.13
高橋 信 トレンドプロ
オーム社
売り上げランキング: 7,034



教科書だけでは足りない大学入試攻略確率分布と統計的な推測―少ない勉強量で高得点がねらえる分野を攻略 (河合塾シリーズ)





そして、これが実践演習用のテキスト。上のマンガでわかる統計学で理解した知識を、実際に手を動かしながら解いてみてください。え?萌え絵と高校数学の教科書すすめてくんなって?そうですよね、僕もそう思ってました。一時期萌え絵と参考書片手に大学図書館にこもっていたので、へんな仮面浪人のオタクだと思われていたと思います。


でもね、違うんですよ。大学教授って教えることが仕事ではないので、簡単なことをすごく難しく伝えるんです。むしろ難しいことをすごく簡単に伝えるのが予備校の教師陣なんですよ。だから、普通に基礎科目なら彼らが書いている高校数学の参考書使ったほうが100倍いいこと結構あります。これはマンガでわかる統計学とセットで買ったほうがいいですね!


内容としては、さきほど学習した偏差の話や、推測統計(母集団・標本)も扱います。これも解説がめちゃんこわかりやすいので、おすすめですね。ちなみにこれ一冊やったら、「なんだ大学の統計学ちょろいじゃんw」って思いました。




1億人のための統計解析 エクセルを最強の武器にする



1億人のための統計解析 エクセルを最強の武器にする
西内 啓
日経BP社
売り上げランキング: 165,300


これは、別にやらなくても、テストの点数はとれると思います。が!しかし、この本を使って実際に統計学がどんな感じで使えるのか、試してほしいです。これで僕は統計学に目覚めました。実際の顧客データから、統計分析して、「このお客さんはこの商品を買う傾向があるけど、この年齢層のお客さんはあまりないなぁ」みたいなことをエクセルを使いながら学ぶという本になっています。今まで扱ってなかった、回帰分析や重回帰分析を、理論より先に実際のデータに触れて楽しめるので、おすすめですね。(ちなみにいきなり回帰分析に入ると、最小二乗法やら偏微分やらわけわかんない糞数学用語がばんばんでてきて、つまんねとなります)



1億人のための統計解析 エクセルを最強の武器にする
西内 啓
日経BP社
売り上げランキング: 165,300



ちなみに、ここまでで、基礎的な統計学(大学1-2年生時)に出てくる内容は網羅されます。ここから先は、「実際に卒論で統計学使うつもりだぜ~」みたいな人とか、「もっと分析してみたい!なんか出せよゴラァ」みたいな人だけ見てください!


>スポンサーリンク


教育・心理系研究のためのデータ分析入門 第2版



教育・心理系研究のためのデータ分析入門 第2版
平井明代
東京図書
売り上げランキング: 133,000


教育・心理系研究のためのデータ分析入門です。お値段は少々高め。3000円です。「まじで大学教授金稼いでるんだから安くしろよな!」と思うところですが、ぐっと我慢。


さて、今まで我流の統計分析を学んできたわけですが、実際に論文を書くとなると、卒論の指導教官に「え、君、そのデータどこから持ってきたの?え?食堂?サンプル偏りすぎじゃない?ぶち殺すよ!」と脅されることも多々あります。つまり、データをどうとるかとか、そのデータを図る指標ってしっかりしてるの?みたいな話になってくるわけです。


ということで、この本で学べるのは、ちゃんとした研究計画をもとに、ちゃんとしたデータを集めて、ちゃんとした分析をする!ってことです。このへんの内容になると、分散分析など、実験系で使う統計手法が出てきたりします。が、このへんのことが理解できれば、卒論は心配ないんじゃないですかね。


(ちなみに各いう私は、卒論のアンケート調査の際、友達が少なすぎてサンプルが集まらず、就職が決まっていたのに留年しかけるというエピソードを持っているので、まずは友達を作るかイケメンに生まれなおすことから始めたほうがいいと思います。)



教育・心理系研究のためのデータ分析入門 第2版
平井明代
東京図書
売り上げランキング: 133,000



Rによるやさしい統計学



Rによるやさしい統計学
Rによるやさしい統計学
posted with amazlet at 17.10.13
山田 剛史 杉澤 武俊 村井 潤一郎
オーム社
売り上げランキング: 5,031


さて、ここまで勉強してくると、「おっしゃぁ!大量のデータ分析するぞい!まずはデータを紙に書いて・・・・・って、データ多すぎワロタw」とか「え、データの処理面倒くさwww」とか、「え!エクセルって二項ロジスティック回帰分析できないの?くそじゃんw」みたいな悩みが少しずつ出てきます。


まあそれでもだいたいの学生が、4万円ぐらいするIBM制のSPSSという、4年間で一度使う核兵器みたいな破壊力を持つ統計ソフトウェアを使って卒論のデータを分析するのがあるあるなんですが、ほとんど何も考えなくてもデータ分析できちゃうぜっていう代物なんですね。


で、今回紹介するのは、そんな核兵器を使わず、かつ自分の力で統計分析してみたいよ!って人、また「いろいろ理論は学んできたけど、まだ実際大数の法則のシミュレーションとかしたことないから、どんな感じで収束するのかわかんねw」みたいな人におすすめです。実際にプログラミングコード(Rという簡単な言語)を利用して統計学を分析するので、かなり理論が実践に近づくと思います。



Rによるやさしい統計学
Rによるやさしい統計学
posted with amazlet at 17.10.13
山田 剛史 杉澤 武俊 村井 潤一郎
オーム社
売り上げランキング: 5,031


さて、ここから先はさらにその上に行く、統計学ちゃんと学びたい派のために書きますので、もう疲れた人は鼻ほじっていてください。


統計学入門



統計学入門 (基礎統計学Ⅰ)

東京大学出版会
売り上げランキング: 1,847

かなり有名な書籍ですが、統計学入門という書籍。こちらは「入門」と書いていますが、数学をやってきた人にとっては入門だといわれています。僕ら大学統計学の底辺からしたら、「統計学・ラスボス」とか「統計学・甲骨文字解読」ぐらいのレベル間なので、最初に間違えて手を出して統計の世界から去っていった人を多く見てきました。


が、今までの書籍をちゃんと理解できていれば、いままで勉強してきたことを大学教授が一般化して難しく話しているだけに聞こえるので、こちらは読み物として読んでおくのがおすすめです。


統計学入門 (基礎統計学Ⅰ)

東京大学出版会
売り上げランキング: 1,847

統計検定3級


統計検定級3級の問題集ですね。なにに使うかよくわかりませんが、

本書は統計検定3級(高校卒業レベル)、4級(中学卒業レベル)の過去問と解説を収録しています。掲載しているのは、2014年から2016年の6回の試験で実際に出題されたすべての問題です。日本統計学会認定、唯一の問題集です。

らしいです。僕の英検5級という、穴を拭く紙にすらならない検定よりは、ましだと思います。統計が本当に好きになってしまった人、どうせ統計やるなら検定まで受けようwみたいな人がいたらぜひ読んでみてください笑




ちなみにこちらが統計検定2級。

●統計検定2級
試験内容は「統計学基礎(大学基礎科目)」。大学基礎課程(1・2年次学部共通)で習得すべきことについて検定を行います。

日本統計学会公式認定 統計検定 2級 公式問題集[2014〜2016年]

実務教育出版
売り上げランキング: 1,626



>スポンサーリンク


大学の統計学は難しくない。簡単なレベルからやればできる


いかがだったであろうか。大学の統計学って、実はそんな難しくないです。本質的には、難しいことからいきなりやろうとしてるから難しくかんじるだけだと思います。3歳の自転車乗れない子供に、がけから補助輪なしで自転車で吹っ飛ばしているようなものですから笑


ということで、気になった書籍があったら読んでみてください~アマゾンが一番安かったですよ。


マンガでわかる統計学
マンガでわかる統計学
posted with amazlet at 17.10.13
高橋 信 トレンドプロ
オーム社
売り上げランキング: 7,034









1億人のための統計解析 エクセルを最強の武器にする
西内 啓
日経BP社
売り上げランキング: 165,300





教育・心理系研究のためのデータ分析入門 第2版
平井明代
東京図書
売り上げランキング: 133,000



Rによるやさしい統計学
Rによるやさしい統計学
posted with amazlet at 17.10.13
山田 剛史 杉澤 武俊 村井 潤一郎
オーム社
売り上げランキング: 5,031


統計学入門 (基礎統計学Ⅰ)
統計学入門 (基礎統計学Ⅰ)
posted with amazlet at 17.10.13

東京大学出版会
売り上げランキング: 1,847



日本統計学会公式認定 統計検定 2級 公式問題集[2014〜2016年]

実務教育出版
売り上げランキング: 1,626


>スポンサーリンク







スポンサーリンク

公開日 : 2017-10-12

【News Picks集客】いつ記事を投稿したらより読んでもらえるのか計測してみた

このエントリーをはてなブックマークに追加
News Picksで自分が選んだ記事を投稿することができます。「この記事について多くの人の意見を聞いてみたい!」という方も多いのではないでしょうか。


そこで、今回はNews Picksにいつ投稿したら、その記事がより読んでもらえるのか検証してみました



スポンサーリンク

公開日 : 2017-10-10

教育が好きな人におすすめの本16選!教育 × 心理学・社会学・経済学・テクノロジー・思想系

このエントリーをはてなブックマークに追加

教育に興味がある人におすすめの書籍を紹介するよ!


こにゃにゃちは、Daiです。私実は大の教育オタクでして、大学生の時は塾講師やったり、教育ITベンチャーで働いたり、放課後支援ボランティア、卒論は教育社会学やってたりと、本当に教育しかやってこなかったんですよね。まあそうなりゃ教育系の本を100冊以上読んできた訳です。


で、今回は特に面白かった教育関係のおすすめな本を紹介してみます。一応読者の想定は教育学関係のことに興味ある大学生や社会人向けですね!


目次


  • 教育 X 社会学・経済学
    • 1. 教室内(スクール)カースト (光文社新書) 【Kindle版あり】
    • 2. 保育園義務教育化 【Kindle版あり】
    • 3. 学力と階層 【Kindle版あり】
    • 4. データで読む 教育の論点
    • 5. 教育の社会学 新版- 〈常識〉の問い方,見直し方 (有斐閣アルマ)
    • 6. 「学力」の経済学 【Kindle版あり】
    • 7. 幼児教育の経済学 【Kindle版あり】
  • 教育 X 心理学
    • 8. やり抜く力 GRIT(グリット)――人生のあらゆる成功を決める「究極の能力」を身につける 【Kindle版あり】
    • 9. モチベーション3.0 【Kindle版あり】
    • 10. やさしい教育心理学 第4版 (有斐閣アルマ)
  • 教育 X テクノロジー
    • 11. 世界はひとつの教室 「学び×テクノロジー」が起こすイノベーション 【Kindle版あり】
    • 12. 予備校なんてぶっ潰そうぜ 【Kindle版あり】
    • 13. 教育×破壊的イノベーション~教育現場を抜本的に変革する
  • 教育 X 思想
    • 14. 学校と社会 (岩波文庫)
    • 15. グーグル、ディズニーよりも働きたい「教室」
    • 16. 下流志向
  • 個人的におすすめな教育書籍トップ3


スポンサーリンク

大学生におすすめ!一人で引きこもってできるお金がかからない趣味5選

このエントリーをはてなブックマークに追加


大学生になると、相当フリーな時間ができて、暇になりなりますよね。僕は大学1年生の夏休み、あまりにも暇すぎて一人でドラクエをやっていたら夏休みが終わっていました。「もったいねぇな時間」と思いながら、趣味を見つけられなくて困った記憶があります。


大学生活の4年間で一人でできる最高に楽しい趣味を見つけてしまい、完全に引きこもり型になった私ですが、僕が心からおすすめできるお金のかからない趣味を5つ紹介したいと思います。



スポンサーリンク

公開日 : 2017-10-09

Googleの検索結果が上位になると、クリック率が何パーセント上がるのか調べてみた

このエントリーをはてなブックマークに追加
題名の通り。SEO対策では、検索ボリュームの大きいページのページ順位を上げて、クリック率(CTR)を上げていく。今回気になったのは、「ページ順位が1あがると、クリック率がいくつ上がるか」という疑問だ。






そこで、今回は僕が運営するReview of My Lifeというブログの検索データを、Google Consoleから取得し、ページ連載順位から、CTRを予測する統計分析してみた。


データセットは、僕の過去の1カ月分の検索履歴データだ。そして、その中で以下の処理を行った。

  • 月間の検索数が100未満のものを削除
  • ページランクが10位以上のものは削除

もととなるデータセットは、469個のデータが存在したが、上記2通りの処理を行い、49個のデータになってしまったが、今回はこのデータで分析してみる。



スポンサーリンク

【Python】Pandasチュートリアル - CSVの読み書き:データの表示・追加・編集・削除を行う -

このエントリーをはてなブックマークに追加
PythonのPandasを利用して、CSVの読み込みや、データの追加・削除・編集などを行い、CSVの書き込みまでできる方法を解説します。また、特に頻出のメソッドと、そのメソッドの説明についてもやっていきたいと思います。


目次



  • Pandasが扱うオブジェクトとは? Dataframe型とSeries型の違い
  • データフレームを作成する
  • データシリーズを作成する
  • データフレームにデータシリーズを代入する
  • CSVデータを読み込む
  • データを眺める
  • 条件が合致するデータを取得データを消去する
  • 列を並び替える
  • データをコピーする(バックアップ用)
  • 特定の行の値を含む行を検索する
  • 特定の列の順番をつける
  • データのクリーニング





スポンサーリンク

Amazonプライムも、Kindle Unlimitedも、無料で1カ月体験できるらしい!

このエントリーをはてなブックマークに追加

Amazon Prime Readingとは何ぞや?



Amazonがつい最近、電子書籍読み放題サービス「Prime Reading」をリリースしました。

アマゾンジャパン(Amazon.co.jp)は10月5日、「Amazonプライム」会員が利用できる電子書籍の読み放題サービス「Prime Reading」を開始した。追加料金なしでマンガ、小説、ビジネス書、雑誌などが閲覧可能になる。

Amazon、電子書籍読み放題「Prime Reading」開始 (ITmedia ビジネスオンライン)

アマゾンジャパンが、「Amazonプライム」会員向けの電子書籍読み放題サービス「Prime Reading」を開始した。


あれ?Amazonって以前にKindle Unlimitedという同様の電子書籍読み放題サービスもやってたよね?」と思いまして、そうするとPrime Readingとはなんぞや?という話になります。そこで今回は、Prime ReadingとKindle Unlimitedの違いについて解説し、どちらのサービスがよいのかを見ていきたいと思います。



スポンサーリンク

公開日 : 2017-10-08

【Python】Webスクレイピングチュートリアル -「次へ」ボタンが存在するページをすべて取得する場合 -

このエントリーをはてなブックマークに追加
PythonのSeleniumを利用して、「次へ」ボタンが存在するページをすべて取得する方法を解説します。

目次

  • 挙動を確認する
  • 日本語でアルゴリズムを考える
  • 実装する
  • サンプルコード


スポンサーリンク

公開日 : 2017-10-07

【Python】Webスクレイピングチュートリアル -ログインが必要なサイトの場合-

このエントリーをはてなブックマークに追加


PythonのSeleniumを利用して、ログインが必要なサイトにアクセスし、データを取得する方法を解説します。

目次


  • はてなブックマークにログインしてみる
  • ログインページに移動する
  • ログインページのフォームのid, class, もしくはxpathを取得
  • データの挿入
  • フォームの送信
  • ログイン移動確認


はてなブックマークにログインしてみる

まず、はてなブックマークのログインページにアクセスしますと、このような画面になっています。



処理の流れとしては、こちらに

  • 自分のメールアドレスを入力
  • パスワードを入力
  • 送信ボタンをクリックする

というのを、Webスクレイピングで実行します。さらにログイン後自分のプロフィールアドレスに行き、自分のアカウント情報が取得できるかどうか確認します。
もしログインしていない状態で、そのページに行くと、ログインページに移動されます。ちゃんとログインできていると、プロフィールページに移動されます。それでは、実際にやってみましょう。


ログインページに移動する::browser.get(url)


まず最初に、seleniumをimportします。

from selenium import webdriver

次に、webdriverという仮想のブラウザを呼び出します。
browser = webdriver.PhantomJS()
ログイン先のURLをセットします。

loginUrl= "https://www.hatena.ne.jp/login"
 そして、そのページにWebdriverをアクセスさせます。

browser.get(loginUrl)

次に、自分のメールアドレスと、パスワードを入力します。

username = "あなたのメールアドレス"
password = "あなたのパスワード"

ログインページのフォームのid, class, もしくはxpathを取得::find_element_by_xpath()


で、今度はそのユーザー名と、パスワードを入力するところを指定する必要があるので、再度ログインページへアクセスし、F12ボタンを押します。そうするとこんな画面になると思います。




あとは、下のGIFのように、各値のclass、もしくはidを取得するか、xpathを取得してください。今回の場合は、xpathを取得します。



取得したユーザー名のXpathは、//*[@id='login-name']だったので、このように場所を指定してあげます。

userNameField = browser.find_element_by_xpath("//*[@id='login-name']")

データの挿入::send_keys()


そして、そのuserNameFieldに、usernameを入れてあげます。

userFameField.send_keys(username) 

同様にパスワードもですね。

passwordField = browser.find_element_by_xpath("//*[@id='container']/div/form/div/div[2]/div/input")
passwordField.send_keys(password)

フォームの送信::click()


これで値が入るので、「送信する」ボタンのXpathを取得します。

submitButton = browser.find_element_by_class_name("submit-button")
submitButton.click()

ログイン移動確認::browser.title


これで、ログインが完了されるはずです。ログインが完了されていれば、プロフィールページに移動すると、自分のユーザー名が表示されたページに移動するはずです。

profile = "profile.hatena.ne.jp"
browser.get(profile)
そして、このページのタイトルを表示します。
browser.title

これで自分のユーザー名が入ったページが表示されれば、成功です。おめでとうございます!最終的には、以下のようなコードとなります。

from selenium import webdriver
browser = webdriver.PhantomJS()

loginUrl= "https://www.hatena.ne.jp/login"
browser.get(loginUrl)

username = "あなたのメールアドレス"
password = "あなたのパスワード"

userNameField = browser.find_element_by_xpath("//*[@id='login-name']")
userFameField.send_keys(username)

passwordField = browser.find_element_by_xpath("//*[@id='container']/div/form/div/div[2]/div/input")
passwordField.send_keys(password)

submitButton = browser.find_element_by_class_name("submit-button")
submitButton.click()

profile = "profile.hatena.ne.jp"
browser.get(profile)

browser.title

最後に

ここまでで、よくわからなかった場合は、以下のチュートリアルにそって進めてみてくださいね!


Python データ分析入門マニュアル - 実例を使ってWebスクレイピングからデータビジュアライゼーションまでやってみよう -

Python データアナリティクス入門マニュアル Webスクレイピングを、プログラミングを学んだことのない人向けに0から解説するマニュアルです。何から学ぶべきか、環境構築はどうするかからはじまって、Webスクレイピング、データの前処理、そしてデータビジュアライゼーションまでを丁寧に解説します。 ...

また、PythonのSeleniumのドキュメンテーションには、さらに便利なメソッドが存在するので、見てみてくださいね!


Selenium with Python - Selenium Python Bindings 2 documentation

This is not an official documentation. If you would like to contribute to this documentation, you can fork this project in Github and send pull requests. You can also send your feedback to my email: baiju.m.mail AT gmail DOT com. So far around 40 community members have contributed to this project (See the closed pull requests).

Python データ分析入門マニュアルに戻る


スポンサーリンク

Python データ分析入門マニュアル - 実例を使ってWebスクレイピングからデータビジュアライゼーションまでやってみよう -

このエントリーをはてなブックマークに追加

Python データ分析入門マニュアル 



Webスクレイピングからデータビジュアライゼーションを、プログラミングを学んだことのない人向けに0から解説するマニュアルです。何から学ぶべきか、環境構築はどうするかからはじまって、Webスクレイピング、データの前処理、そしてデータビジュアライゼーションまでを丁寧に解説します。
すべてのカリキュラムが一カ月で終わるようにしています。過去記事にまとめてあるので、それを順に追って行ってもらう形になります。

目次

  • 基礎的な統計の知識をつけよう(0-2日)
  • プログラミングの基礎を学ぼう:HTML・CSS・Javascirpt・Python (10日)
  • Cloud9をセットアップしよう(Seleniumと定期実行環境の設定) (2日)
  • Cloud9とJupiterNotebookで、Webスクレイピングとデータ分析をしてみよう (5日)
  • PythonでAPIを利用しよう(3日)
  • Botを作ろう(3日)
  • 実際にAPIやWebスクレイピングを利用しデータ分析をやってみよう(5日)



スポンサーリンク

Pandas データの前処理で使えるチートシート

このエントリーをはてなブックマークに追加

Pandasでデータのクリーニングをするためのチートシートを作ってみた


PandasJupiter Notebookを使ってデータ分析をする機会が増えてきましたが、その際やっているデータの前処理がだいたい一緒だと気づきました。そこで、データのクリーニングでよく使うメソッドを、一覧形式でまとめておきたいと思います。なお、グーグル検索で英語で検索されることも多いため、英語でも記述します。

前提


  • COBOL.csvが存在
  • 列には、以下の値が入っている
    • workers:従業員数:ex 13名
    • age:従業員平均年齢:ex 31歳
    • income:年収: ex 400万 ~ 600万円
    • establishment:創立年度:ex 1998年03月32日
    • requirement:必要要件
    • title:求人のタイトル名




スポンサーリンク

COBOLで転職活動したらどうなりますのん? COBOLer転職市場を分析してみた

このエントリーをはてなブックマークに追加



どうも、新卒エンジニアのDAIです。ここ最近、趣味で2chのひろゆきさんの番組を見ていたのですが、COBOLという言語に興味を持ちまして。気になって調べてみたところですね、


- COBOL(コボル)は、1959年に事務処理用に開発されたプログラミング言語である。名前は「Common Business Oriented Language」(共通事務処理用言語)に由来する。(wikipedia)
- 世界で稼働しているシステムの過半数は、COBOLで構築されている」
- 現在でもライフラインを支えるような重要なシステムでは、メインフレームが使われ、主にCOBOLが使われている
- 普通は浮動小数点数になるからそこで誤差が生じるけど、COBOLは10進演算で行うことと言語仕様で決まっている(Togetter


(ほええ、おいらもCOBOLにお世話になっているのか!)


そんで、ひろゆき氏が言ってて面白かったんですけど、こんなこと言ってました。


「COBOLは昔の言語なんですけど、銀行とかお堅いシステムは現役でCOBOLが活躍していて、若手がCOBOLを書きたがらないので、市場価値が相対的に高くなるみたいです。おすすめしないけど稼げる言語って聞いたことありますね」


そこで思ったんですね。「あれ、もしかして新卒COBOLプログラマーって、実はめっちゃ稼げるんでねぇか?Pythonとかイケイケ言語書いている場合ではないのではない!転職わんちゃん!」と。そこで、今回はCOBOLの転職市場について、データ分析してみました。



スポンサーリンク

公開日 : 2017-10-06

Python初心者が3カ月でWebスクレイピングができるようになるために必要な知識

このエントリーをはてなブックマークに追加



こんにちは、Daiです。最近Pythonが人気ですが、機械学習には手を出せない、とはいえプログラミングの挨拶プログラムを作るのには飽きた!みたいな人って結構多いのでじゃないでしょうか。


最近、Qiitaという技術掲示板でも、PythonのWebスクレイピングの方法を解説する記事が人気でしたが、まったくの初心者にはどうすればいいかわからないというレベル間だったと思います。そこで、今回はプログラミング初心者の人でも、何を学べばWebスクレイピングをPythonでできるようになるか、解説したいと思います。



スポンサーリンク

Pythonの環境構築でもう悩まない!初心者でも絶対にできるクラウドを使った環境構築方法!

このエントリーをはてなブックマークに追加

Pythonの環境構築がだれでも簡単にできるようになる方法



Python初心者が必ずぶち当たる壁があります。環境構築です。ある言語を動かすための環境設定する作業が環境構築なのですが、これが実は初心者にとって本当に難しいです。


僕は、3年前にPHPフレームワークLaravelで環境構築の壁にぶち当たり、2年間プログラミングアレルギーになってしまいました。しかし、1年前に、ある方法を使って「環境構築せずに」RubyフレームワークのRuby on Railsに手を出したところ、かなりハマりました。


中級者でも、環境構築でつまづくことも多々あります。それなのに、せっかくのデータサイエンスブームで、Pythonを触ってみたいという人が増えているのにもかかわらず、多くの人が「環境構築の壁」を超えられないのは、勿体無いと思います。


そこで、今回は、一切環境構築せずに、完全無料でPythonを動かす方法を解説したいと思います。



スポンサーリンク

ICU生なのに国連に行けなかったから負け犬どもへ

このエントリーをはてなブックマークに追加

どうも、有吉の夜会にICUが特集されたらしい。どうやら、弊大学の在学生は、国連に行くらしい。あぁ、ごめんね、お母さん。僕はアンダーグラウンドに行ってしまったようだ。


そういえば、先日、大学のクラスメイトと飲み会があった。僕のクラスメイトは、何と言っても理解し難いクズが多かった。英語の授業中、外国人の先生にエッセイの添削中「君、何のために大学来てるの?」と人生の添削されるやつ。卒論のテーマが決められずに中退した奴。卒業前から音信不通になる奴( ×3)。院進学後つまらなくて2ヶ月でバックれた奴。部活史上初めて「除籍」された奴。卒論指導で卒業2ヶ月前に卒業は怪しいと言われた奴などだ。この中で、国連の才能がある人はいないだろう。


でもクズはクズなりに、不適合な奴でも、社会のどっかの片隅で、適合者とは離れたアンダーグラウンドで生きてるみたいだ。院進学バックれマンは秋葉のサブカル翻訳者、そして卒論かけないマンは自衛隊、その他訳わからんベンチャー入った奴、経営傾き系系ベンチャーにいった奴。極めつけに特にヤバいのが、哲学科のマスターに行った奴だ。


そんな畜生どもも、人生なんとかやってきている。国連だ?うるせぇ。僕らは畜生なりにアンダーグラウンドで生きているんだ。国連に行けなかったICU生は、AKBみたいにマス受けはしないけど、地下アイドルみたいに生きていこう、そう思った金曜日でした。

スポンサーリンク

公開日 : 2017-10-05

ぶっちゃけ、日本で廃れているプログラミング言語ってなんなの?

このエントリーをはてなブックマークに追加

背景


こんにちは、DAIです。ここ最近こんな記事を見かけまして、これって日本だとどうなんだろうなぁと思いました。

Pythonが2017年の覇権言語に - Rubyは12位に転落

IEEE Spectrumは18日、独自の指標によって決定した人気プログラミング言語のランキング「 The Top Programming Languages 2017」を発表しました( Neowin)。 ...

このプログラミング言語の人気ランキングは、世界規模のものが多いですが、日本の環境はどうなのでしょうか。ちなみにGoogleトレンドで、各言語の検索数を見てみるとWeb言語は、PHPが減少、Pythonが上昇しているみたいですね。







しかし、ガラパゴス日本ではそうとは限らないかもしれません。海外と日本の言語事情は異なることも予想されます。実際に日本人に注目されている言語の注目度を分析してみようと思います。


目的



  • 日本の各プログラミング言語の人気度と、最近のホットなテーマを解明
  • 時系列で人気上昇中の言語と、すたれている言語を特定


人気度の尺度


今回は、技術界隈で人気のあるはてなブックマークというサービスで、記事へのブックマーク数が高いものを取得し、言語ごとに比較することにします。ある言語で検索しているときの、はてなブックマークされている数の大きさ(平均値)を人気度として取り扱います。

比較する言語


- この記事を参考に言語を選択しました。
- 以下、言語とそのリリース日

言語 リリース
Perl 1987
Python 1991
PHP 1995
Ruby 1995
Java 1995
Javascript:1995年 1995
R 1996
Scala 2003
Go 2009
Swift 2014


プログラミング言語の人気 - Qiita

日本でプログラミング言語を勉強し,書く上でQiitaに触れる機会は多い. たくさんのご指摘を頂いたので記事を少し修正した.まず 人気=記事数 の方程式は確かに成立しないあくまでの学習の参考文献などが多く学びやすいなどの解釈で,プログラミング言語学習の参考にして欲しいと思う. 日本のトレンド言語ランキング ...


データソースと手段



  • 過去10年分のはてなブックマークの言語ごとの検索結果から取得(2007~2017)
  • Webスクレイピングを利用し、CSV変換、かつPandasでデータ操作し、データビジュアライゼーションを実施、くわしくは下記記事を参照
  • 取得したデータは、(1)記事名、(2)日付、(3)ブックマーク数
  • それぞれの年度ごとにブックマーク数の平均値を取得

データ取得にかんしては、こちらの記事をご参考に・・・

【Python】スクレイピング→データ収集→整形→分析までの流れを初心者向けにまとめておく ~Pythonに関するはてな記事を10年分スクレイピングし、Pythonトレンド分析を実際にやってみた~

この数年間、Pythonの人気が高まっています。 Googleトレンド によると、Pythonの検索流入数は、この10年間で2倍近くになりました。特にグラフから見ると、だいたい2015年ぐらいからPythonの検索数は増えている模様です。 さて、この数年間で、Pythonがどのような言語として扱われ、どう変化してきたののでしょうか。 ...


結果報告


Javascriptの人気度


フロントエンド・バックエンドフレームワークとして使われるJavascriptは、今でもかなり人気なようです。以下主な結果です

  • 過去10年間、人気は上がり続けている
  • 2017年でブックマーク数が多いのは、バックエンドよりフロントエンドよりの内容
  • 初心者向けの記事も多数


人気記事は、フロントエンドよりの初心者向け解説記事が多いようですね。

Out[15]:

title date bookmarks
2 まじな話をすると、N予備校のプログラミング入門コースやるのがオススメ... 2017/09/11 3592.0
67 2017年のフロントエンドエンジニアならこの程度は知ってて当然だよな? ... 2017/02/14 1292.0
78 Modern JavaScript概観、そしてElectronへ 2017/01/23 1285.0
23 10年遅れたJavaScriptの知識をざっくり10分でアップデートしよう - WPJ 2017/06/16 1160.0
45 JavaScript,jQueryの爆速コーディング、デバッグ方法論の勧め~実践向け... 2017/03/30 1114.0
62 JavaScript における文字コードと「文字数」の数え方 | blog.jxck.io 2017/03/02 704.0
10 JavaScriptフレームワーク選定の議論 - Qiita 2017/08/02 693.0
16 フロントエンド開発の基本知識(2017年夏) - Qiita 2017/07/11 684.0
33 いかにしてJavaScriptを教えるか - mizchi's blog 2017/05/04 677.0
17 2017年JavaScriptのテスト概論 | プログラミング | POSTD 2017/07/11 602.0



Pythonの人気度

  • 2015年から人気が急上昇
  • 2017年でブックマーク数が多いのは、スクレイピング・機械学習等のデータサイエンスよりの分野
  • 初心者向けの記事も多数





Out[16]:

title date bookmarks
36 PythonでWebスクレイピングする時の知見をまとめておく - Stimulator 2017/06/25 1831.0
87 初心者がPythonを覚える為の本の選び方を体系化してみた(2017版) - Lean... 2017/01/15 1336.0
48 ディープラーニング実践入門 〜 Kerasライブラリで画像認識をはじめよう... 2017/04/28 1026.0
1 Pythonを書き始める前に見るべきTips - Qiita 2017/09/28 973.0
8 pythonで小さなツールを作る時のtips - Qiita 2017/09/04 931.0
29 KING JIM ポメラDM200でEmacs、Vim、Ruby、Pythonが動くなんて素... 2017/07/15 879.0
74 Pythonをやるときに参考になりそうな情報 - のんびりSEの議事録 2017/02/16 815.0
55 Python: ソケットプログラミングのアーキテクチャパターン - CUBE SUGAR... 2017/03/29 749.0
33 100万倍速いプログラムを書く - Qiita 2017/07/07 546.0
73 金融データのPythonでの扱い方 - 今日も窓辺でプログラム 2017/02/19 532.0

 Rubyの人気度

  • 2011年をピークに、人気度は一定
  • 2017年度はWeb系のフレームワーク関係の記事が多い



Out[17]:

title date bookmarks
12 KING JIM ポメラDM200でEmacs、Vim、Ruby、Pythonが動くなんて素... 2017/07/15 879.0
18 Swift実践入門 〜 今からはじめるiOSアプリ開発! 基本文法を押さえて、... 2017/05/25 839.0
20 Ruby書いたことないけどRuby書いた人の講演に行った - みたぬメモ 2017/05/21 508.0
7 Rubyist Magazine - HanamiはRubyの救世主(メシア)となるか、愚か... 2017/08/27 404.0
10 Rubyの死?開発者はどの言語を学ぶべきか? 2017/08/10 388.0
2 Rubyのtrueとfalseの話 - Qiita 2017/09/27 387.0
23 Ruby on Railsチュートリアルを軸にしてWeb周辺技術を勉強した - drilld... 2017/05/13 282.0
11 Awesome Ruby : 素晴しい Ruby のライブラリ・ツール・フレームワーク・... 2017/07/24 276.0
33 インタビュー:Rubyコミッターの笹田氏がクックパッドへの入社を決めた... 2017/01/24 163.0
31 最近のruby-core (2017年1月) | Money Forward Enginee... 2017/02/01 134.0


R言語の人気度


  • 2010年ごろに爆発的に人気が出始める(おそらくビッグデータブームの到来?)
  • ここ最近は下火
  • 初心者向けのR入門記事が人気な模様


title date bookmarks
36 Rを使えるようになるための10のこと - Issei’s Analysis ~おとうさん... 2011/09/17 611.0
39 第1回 Rは統計解析のブッシュナイフだ - 実践! Rで学ぶ統計解析の基礎 ... 2010/07/21 579.0
10 R vs Python:データ解析を比較 | プログラミング | POSTD 2015/10/28 509.0
35 Rが使えるフリをするための14の知識: ニュースの社会科学的な裏側 2012/02/04 466.0
5 R言語徹底解説を読む (1) ようこそRプログラミング - 僕らはRを愛しすぎ... 2016/07/10 398.0
14 A/B テストで施策の効果を検証!エンジニアのための R 入門 - クックパ... 2015/05/08 319.0
13 統計を始めたい人に僕がPythonよりRを勧める理由 - 蛍光ペンの交差点[... 2015/06/11 314.0
29 はてなブックマーク記事のレコメンドシステムを作成 Pythonによるはて... 2013/07/07 309.0
28 非エンジニアにもオススメ。数学が苦手な統計初心者がR言語を触ってみる... 2013/07/19 303.0
31 R統計解析入門: 統計解析 テクニカルデータプレゼンテーション  梶山... 2013/05/02 268.0


PHPの人気度

  • 2012年をピークに、人気低下中
  • 2017年度はウェブ開発系の記事が多数
  • PHPディスリの記事が増えてきている・・・?



Out[18]:

title date bookmarks
1 休日個人開発で学ぶテストコード! 画像に“集中線”を合成するツールを... 2017/08/22 472.0
2 PHPでデータベースに接続するときのまとめ - Qiita 2017/07/15 350.0
8 PHP - 【PHP】作成したメールフォームに脆弱性がないか、アドバイスもら... 2017/04/09 282.0
3 グーペのPHPバージョンを5.2から7.1にアップグレードしました - ペパボ... 2017/06/22 196.0
5 PHPができても他言語の学習には役に立たない理由を考えてみた。 - Qiita 2017/05/08 96.0
10 Trello のクローンを PHP で作りました - Qiita 2017/01/25 90.0
6 速習PHP最速マスター、初心者に優しい実用的で本よりも濃い内容にしてみ... 2017/04/22 73.0
11 PHPの中身をgdbで観察できるようなDockerイメージを作りました - hnwの... 2017/01/14 68.0
9 PHP CS Fixer v2 でもっと快適PHPライフ - Flog Splash 2017/03/31 61.0
7 $PHP = 💩; – Fuzz – Medium 2017/04/13 58.0


 Perlの人気度

  • 2013年をピークに人気低下中
  • 2017年には、Perl関係の記事で50ブックマークを超えたのは3記事のみ



Out[19]:

title date bookmarks
2 Perlで人工知能プログラミングを行うAI::MXNetの出来が凄そうだ - Perl... 2017/07/13 106.0
1 googleのエンジニアが書いたPerlの入門記事を紹介してほしいと依頼され... 2017/07/18 94.0
3 Perlが30倍速くなるかもしれないSPVMの開発版をリリースしました。 - Pe... 2017/06/20 91.0


Javaの人気度


  • まだ比較的人気かなぁ






Scalaの人気度

  • 2011年度に初めて姿を現し、それ以降人気上昇中
  • 2017年度には5記事しか存在しない
  • 初心者向け記事が存在するので、一部のプログラミング上級者が利用している?




Out[20]:

title date bookmarks
1 Scalaに関する誤解と事実を語る - kmizuの日記 2017/05/06 344.0
4 TwitterはScalaを捨ててません(少なくとも現在は) - kmizuの日記 2017/03/22 193.0
3 Scala入門としてCLIツールを作り、Scala.js, React, ScalaCSSで... 2017/04/07 86.0
2 Dottyによる変更点と使い方 - 水底 2017/04/30 55.0
5 PythonでScalaのようなlambda式を書いてみた。 - ABEJA Tech Blog 2017/01/19 50.0


Go言語の人気度

  • 2010年に現れ、2013年ごろから人気上昇中
  • 2017年の時点では、初心者向け記事はそんなにはやっていない



Out[21]:

title date bookmarks
12 Raspberry PiとGo言語でミニトマトの栽培環境を監視してLINE Botで通知... 2017/07/14 604.0
50 なぜGo言語(golang)はよい言語なのか・Goでプログラムを書くべきなのか 2017/01/16 602.0
28 Go言語のリアルタイムGC 理論と実践 | プログラミング | POSTD 2017/04/27 407.0
26 Big Sky :: ログイン認証をマイクロサービス化する「loginsrv」 2017/06/02 371.0
10 A Tour of Goを終えたあなたにおすすめのGoを勉強するためのリソース - ... 2017/07/21 310.0
49 Big Sky :: golang オフィシャル謹製のパッケージ依存解決ツール「dep」 2017/01/25 308.0
27 GolangでSlack Interactive Messageを使ったBotを書く - M... 2017/05/23 306.0
4 PHP, Python, Golang を NGINX Unit で動かしてみた - /va... 2017/09/08 282.0
3 Go にジェネリクスがなくても構わない人たちに対する批判について - met... 2017/09/19 261.0
37 Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017... 2017/03/27 232.0


Swift

  • 2014年に言語がリリースされたので、観測されるのは2014年から
  • ブックマーク数は上昇中
  • 入門系の記事が存在する




Out[22]:

title date bookmarks
5 Swift実践入門 〜 今からはじめるiOSアプリ開発! 基本文法を押さえて、... 2017/05/25 876.0
14 「Google丸投げ」でiOSアプリ開発が恐ろしくラクになる!Firebaseの使い... 2017/02/01 657.0
17 Swiftのエラー4分類が素晴らしすぎるのでみんなに知ってほしい - Qiita 2017/01/14 490.0
15 大規模アプリケーションのリファクタリング - Instagramのフィードを書... 2017/01/19 291.0
2 CotEditor を Swift に移行する - Qiita 2017/07/23 275.0
3 2017年の夏、Swiftをどうやって学ぶか - Hatena Developer Blog 2017/06/22 107.0
4 Swiftの開発者が、わずか6ヶ月でTeslaを去る | TechCrunch Japan 2017/06/21 102.0
8 新しいアプリを作るときによく使うSwift Extension集 - VASILY DEVE... 2017/03/07 75.0
12 Swift 3 マイグレーション - クックパッド開発者ブログ 2017/02/03 73.0
6 体系的なSwift言語学習 - Qiita 2017/05/10 72.0


まとめ


というわけで、途中は説明が面倒くさくなってしまい、はしょりましたが、ざっとこんな感じになりました。
  • 20世紀に開発された言語で、いまだ人気が上昇しているのはPython(1991)、Javascript(1995)
  • それ以外でも、Java(1995),Ruby(1995)あたりはまだ人気
  • PHP(1995)、Perl(1987)は死にかけ

これらのデータをもとに、人気度・新しさで2軸のマトリックスにわけたものがこちらです。


20世紀末に作られてからずっと人気があるのはPython・Java・Javascriptみたいです。Scala、Go,Swiftはこれからどうなるんでしょうか。気になるところです。ちなみにCobolのブックマーク記事を探したところありませんでした。


とりあえずミーハーな私は、Python、Java、Rubyあたりを勉強しておきます。

スポンサーリンク

Read more↓

書評














教育











キャリア

プログラミング・ライフハック

About me


・ 最近The Academic Timesというアカデミック専用メディアを立ち上げました。