Slide 1

Slide 1 text

慶應義塾大学 「経済学のための いろいろなデータさがし」 2020夏: 2/2 2-1. 企業データを取得する (EDINETとgBizInfo) 2-2. Linked Open Data 2-3. Google Big Query でデータを取得する 2-4. Youtube APIの使い方 2-5. API でデータを取得;楽天 2-6. スクレイピング応用編; Worldbank/gogo.gs 一橋大学大学院経済学研究科 原泰史 yasushi.hara@r.hit-u.ac.jp

Slide 2

Slide 2 text

今日の内容 • 16:30-16:55 • 2-1.企業データを取得する (EDINETとgBizInfo) • 2-2. LOD でデータを探す (gBizInfo) • 16:55-17:10 • 2-3. Google Big Query でデータを取得する • 17:10-17:20 • 2-4. Youtube APIからデータを引っ張り出す • 17:20-17:35 • 2-5. API でデータを取得する;楽天 • 17:35-17:50 • 2-6.スクレイピング; worldbank と gogo.gs • 17:50-18:00 • 質疑応答

Slide 3

Slide 3 text

2.1 企業情報を分析するには

Slide 4

Slide 4 text

企業情報/データベースでわかること • (上場)企業の製品, 財務パフォーマンス • 株価, ROA, ROI, ROE などのパラメータ • 売上高, 従業員数 • 創業年, 登記年 → 面接を受ける企業の財務, 経営パフォーマンスを同業他社と比 較して生産性を解析。面接で経営の改善案を提示する!(たぶん 面接官にとっては面倒くさいやつかもしれない)

Slide 5

Slide 5 text

(一橋大学で利用できる)企業データベース • 日経NEEDS • 日経テレコン21 • ビューロバンダイク (部局による) • Orbis データベースはIIRのみ利用可能とのこと • 帝国データバンクデータベース • Entrepedia • FOR STARTUP • DBJ データベース • EDINET

Slide 6

Slide 6 text

INITIAL (旧 Entrepedia) • スタートアップのデータベース • https://biz.entrepedia.jp/

Slide 7

Slide 7 text

INITIAL

Slide 8

Slide 8 text

INITIAL 無償ユーザとして登録後, メルカリを検索

Slide 9

Slide 9 text

INITIAL • メルカリ関連の情報が表示されるが, 有償版でないと細かな データは取得できない

Slide 10

Slide 10 text

FOR STARTUP/START UP DB • https://startup-db.com/ • スタートアップ企業12156社の情報を網羅 • INITIAL とは異なり、無償で参照できる • だけど、スクレイピング。ダメ、ぜったい。 • 関西学院大学とは共同研究しているとのこと。 • フォースタートアップス、関西学院大学と共同研究開始 「日本のスタート アップ企業の資金調達と成長に関する経済分析」にSTARTUP DBを活用 • https://forstartups.com/pressrelease/kwansei-university-startupdb- 20200326/

Slide 11

Slide 11 text

FOR STARTUP/START UP DB • メルカリの場合

Slide 12

Slide 12 text

日経NEEDS • 日本経済新聞社の総合経済データバンク・システム • 日経NEEDS-FinancialQUESTでは、WEBから以下の内容を用 途に併せてエクセル形式でダウンロードできる。 • 国内マクロパッケージ • 新ミクロ総合パッケージ • 地域統計オプション • 企業ファイナンスデータ

Slide 13

Slide 13 text

[一橋]日経NEEDS の利用条件 • (一橋ネットワーク内からの)同時接続10台 • 範囲: • 一橋大キャンパス内 • サービス時間 • 月曜日 5:00 ~ 日曜日 15:00 • 対応ブラウザ • Internet Explorer, Microsoft Edge • Google Chrome ですとクレデンシャル情報が渡されませんでした • ということで、これも大学がオープンになっている間に活用しましょう

Slide 14

Slide 14 text

[慶應] 日経NEEDS の利用条件 • 日経NEEDSの使い方: Home • https://libguides.lib.keio.ac.jp/needs • “一括ダウンロードするためのソフトウェアは、三田キャンパス大学院校舎パソコン室で利用できる ほか、在籍中であれば三田ITC、理工学ITCまたは湘南藤沢ITCに申請して個人のPCにインストール することができます(三田やSFC以外のキャンパスに所属される方も利用可能です)。 【三田ITC】 ・財務データ検索システム利用案内 ・株式データ検索システム利用案内 【理工学ITC】 ・財務データ検索システム利用案内 ・株式データ検索システム利用案内 【湘南藤沢ITC】 ・財務データ検索システム利用案内 ・株式データ検索システム利用案内” • 現状; オンラインでアクセスできるデータベース(日経企業財務データベースを含む)は 学部生も自宅からアクセス可能、図書館内でしかアクセスできないデータベースも、7月 13日から入館制限が一部緩和され予約制&制限時間ありで利用可能

Slide 15

Slide 15 text

実習. 日経NEEDS のデータを一橋大学図 書館から入手し解析する • 一橋大学付属図書館の電子リソースを参照する • https://www.lib.hit-u.ac.jp/retrieval/e_resource/dblist.html

Slide 16

Slide 16 text

実習. 日経NEEDS のデータを一橋大学図 書 館から入手し解析する • 「ナ」をクリックする

Slide 17

Slide 17 text

日経NEEDS-FinancialQUEST のメイン画面

Slide 18

Slide 18 text

財務データを引っ張ってくる • 【概要】 • 全国証券取引所(ジャスダック 含む)上場会社及び非上場有価 証券報告書提出会社、全国信用 金庫について、有価証券報告 書・決算短信などの開示資料や 日経独自の調査にもとづき、決 算データ(上場会社は四半期 ベース)を収録します。最大で 1964年以降(単独本決算の 場合)の時系列データとして収 録しています。

Slide 19

Slide 19 text

財務データの取得 東証マザーズの全企業の データを取得する 全選択し, “採用” をクリッ クする “次のステップへ進む” をク リックする

Slide 20

Slide 20 text

財務データの取得 • 利用するデータ を選択し, “採 用” をクリック する • 右下に項目数が 表示される

Slide 21

Slide 21 text

財務データの取得

Slide 22

Slide 22 text

財務データの取得 結果をダウンロードしますか? と表示されるので「はい」 をクリックする

Slide 23

Slide 23 text

財務データの取得 • データの出力画面が表示される

Slide 24

Slide 24 text

Excel で取り出す

Slide 25

Slide 25 text

グラフを作成する キャンディル ミクシィ インタースペース アマナ F ジ R ー O エ ア N ヌ ス T ア カ E イ ネ O グ ッ ル ト ー プ アドウェイズ ユナイテッド 海帆 ト A ラ S ン J スジェジ ニ ェ ッ ネ ク レーションパ ス オイシックス・ラ・大地 バルニバービ SHIFT ベガコーデ ポ ー レ タ ー ホ イ シ ラ グ ョ イ ニ ン ア ゾ ス ド ンバンスト・メディア ドカ リヤ コッ ムク GA technologieシ s リコンスタジオ Aiming ラクスユーザベース モ ソ オ ブ フ ー リ キ ト ク ア ャ マ フ ル ス ッ ァ ワ ト ク ン ー ホ ス ル ード ルディンシ グャ スノン ト A ラ M ス B ト I ホ T ー I ル O デ N ィングス UUUM エムケ ビ ア ー ネ メ 総 エ ッ デ 医 ス ト ィ 研 ネ ホ ッ ー ト ゼ ルネ デラ ィ ピル ン ク・ グ スオ ス タイ 農ス 業タ 総ー 合 ア 研 メ ク 究 モ デ セ 所 ル ィ ル ホ フ カ マ ッ F ォ ル ー ト C F ネ ク リ R ッ ン I ト ク ・ Aミ Lド Bル E バ ウ グ R リ ェ ロ T ュ イ ア ー ー ノ バ ゴ ベ ウ ル ル ー ォ ウ フ シ ナ ン ェ ョ レ テ イ ン ッジドス リイ ーー ト ラクスル メルカリ アイ・ピー・エス システムサポート マネーフォワーイ ド ーソ ル 串 リ カ ネ ツ ネ ッ 田 ッ ト 中 ト ジ ホ イ ャ ー ヤ パ ル ー ン デ グ ィ ル ン ク ー グ ラ プ ス ウドワークス シェアリングテクノロジー東名 ACCESS 手フ 間ル いッ らタ ず イ グ フ ン ラ ィ ル ト ン ジ ル ッ パ ラ G デ ェ ・ タ ル ロ ン - ィ イ カ マ ー ス F ー テ 霞 ン ド A ズ ッ ヶ パ ス C ク 関 ニ タ T コ キ ー ー O ー ャ キ R ポ ピ ャ デ Y レ タ ピ ィ ー ル タ ジ シ ル タ ョ ル ア ン デ メ プ ィ デ リ ー ィ ッ ・ ア ク デ プ フ ス ィ ロ ー ー フ バ シ ・ ェ ー ル エ ッ ユ ブ バ ス シ ー レ ーザ イ エー ン す ッM ロ ら グ ビ H マ ー ら ・ ー Z E エ ー カ ネ テ プ U R ー ト ル ッ ク ラ U O ア ト ノ ッ Z イ ロ ツジ ーW シト e ョ ア ビ l ン ナ ン カ ラ b ノ U メ イ シ オ y キ ェ M サ ド オ ス ン ャ ブ ス N ン レ ム ソ テ コ リ ラ フ バ ッ ・ レ ム リ ア イ ァ イ ク バ イ ズ ス ト サ ー オ ス イ ジ バ パ イ マ オ ア イ ス ジ サ ・ オ ・ ニ イ フ フ バ ア エ ァ ァ イ ン ー ー オ ン ス マ マ グス マー夢 サ ケ 展 ン ッ 望 ワ ト カ エ ン ン パ フ タ ニ リ ェ ー ー イ プ ガ ス ラ ル ネ イ 不 ッ ズ 動 ト産 ワーロ クG ッM クO オ メ リ ン デ サ ィ ー ア チ 工 は 房 てな ビーブレイクシバ ス ン テ ク ム E ・ ズ d オ u ブ L ・ a イ b ノベーショG ン MO イ T ト E ク C ロ H メディM イ ア R ー シ T ア ド ー ク ク トコー ル gooddaysホールディア ン ラ グ イドアーキテク ツ フリークアウト・ホールディング レアジョブ GMOメディア エクストリー 中村パ 超ー 硬トナ ム アクアラインーエージェン ト トライスジテフェーァイジングデルリーープテホィーールケスデユロータィピ ナ コ ピ ジ ン ー イ ン ー オ グ バ テ ド ア ス ン ッ タ ド ド オ ッ & ト コ コ レ ム クティコブラボソスエーデシエィャルアルテワスイサ ヤ J イ ー ス ン ト ポ プ リ ス ロ ア ー ト パ ク ム V テ A K リ A ィ m リ u ー L サ デ a ッ d ト U ー z ク a E バ タ i ソ n N ー バ a フ キ E ワ ン ジ ト ャ X ー ク ー リ ン ク ボ バ 窪 ス テ D ミ ス 田 ク e ッ 製 ノ l ク 薬 サ t ホ a ー エ - ル ン F デ シ ス l ィ ン y メンP ロ テ h ゼ ホ a ッ ー r タ ル m ディングス エスユーエス ウェルビー HANATOUR JAPAN SERIOホールディングス 大泉製作所 テラプローブ テノ.ホールディングス ピ ポ ア ー ラ ト ク エ ッ ル ク ・ ビ テ ズ ィ マ ー ネ ・ ジ エ メ ス ン フ ト ロ ソ ン リ テ ュ ィ ー ア シ イ ョ ン ン タ ズ ーナショナ ル コプロ・ホールディングス メタッバ プ ー ス チ 旅 ャ 工 レ 房 クス・ホールディング日本ホスピスホールディング ス フレアス 日本イ ス ン キ パ ー ク 場 ト ブ 開 ホ ラ 発 ー ン ル ジ デ ス イ ィ タ ン ン タ グ ジ ー ス 神 ー ネ コ 戸 ニ ッ ン 天 ー ト ヴ 然 イ ァ 物 ン ノ 化 フ 学 ィニギ テ ー ィ ク ア ー ス イリグッドコ スー ピポ ーレ ドーシ ョン MTG ヴィそ ッ ー ツ せいグル弁 ー ア 護 プ ド 日 士 ベ 本 ド ン 動 ッ チ 物 ト ャ 高 コ ー 度 ム医療ハ セ ホ キ イ ン エ ー リ ャ ア タ ヌ プ フ リ ス ー ・ ァ ア ・ ピ イ ア ー ン ・ バ ド シ ー ・ ー ス カンフ パ ア ロ ニ ル ン ー ー テ ジ プ ィ ャ レ ア パ シ ・ フ ジ ン マ ィ イ ョ ネ ン ジ テ ・ ベ メ ッ シ ス ン ク ス ト ト テ メグ ム ンロ ・ー サバ イル 識学サマ日 ン本 サアタバセサットジマ ャーパンケリティミテンッグ ヘリオJス MC リント ク レ バ ン メ ル ン ダ ッ ド バ ー ト ピ イ ズ ホ ア オ ー ・ ル ホ W デ ー F A ィ ル r S ン デ i H グ ィ n ハ ス ン ヒ g ウグ ュ e スス ー 8マ 1ン・テ ア ク ソ ノ シ ス エ あ デ A イ ん ー m ツ し タ i ・ ん サ d ホ 保 イ A エ ー シ 証 エ ホ リ ル ン ー ア バ ス ル リ ー ・ デ ン ラ エ ィ ク イ ンフ グス ブ C リ R ッ G ジ ホ イ ー ン ル タ デ ー ィ ナ ン シ グ ョ ス S ナ O ル U 自律制御シ み ス ら テ ベ い ロ ム ス ワ グ ト 研 ト ー リ ラ 究 ワ ク ー ン 所 ン ス ザ ド ス ットハ コウ ムテレビジョンブティック ス ベルトラ一家ダイプ ニ ラ ン ッ グ ツ ギ プ フ ロ ト ジ ェ ク ト NATTY ファS イW バA ーN ゲK ーY ト フィッイ ト オレ 富士山マ タ ガ イ ジ フ セ ン ォ イ ア サ ー ズ ー ラ ー ビ イ ム ス ア フ ユ ビ セ ニ ソ リ ン フ 駅 ケ ン テ ォ 探 ッ グ ッ ー ツ シ ク ム ス ネ 日 テ ク 本 ム ス フ デ ト ァ ー s ル J タ ア M コ I セ イ e ム G ク リ d バ - シ ッ i リ S ョ ジ う o ュ A ン エ る ー W コ る P デ S モ K ザ K ッ S イ I ト H ン Y A A ロ エ K ジ T チ ク I ザ e ー ス ー c シ ム モ ス ド h ノ ス カ ミ マ n プ ピ オ ン レ o ス リ ナ カ ジ オ l ッ ビ ブ ン o ト ・ コ g ジ セ・ ライ ピン ーフ ・ォ サ レ ノ イ ン イ エ 地 ト ド ン ア 盤 ラ ヒ エ ー ス ネ ッ キ ュ ク ー テ A ス マ ク p フ ン ツ p ェ ・ ・ B ニ メ ス a ッ タ タ G n ク ボ ジ a k ス ロ オ m バ ー ・ e ア イ ム ジ W ジ オ ・ ラ ャ i ャ テ イ パ t イ プ ク a ト イ h ル ロ n ア ー メ レ d ッ エ デ ド プ ム ィ ・ f ネ ア パ a エ ッ ・ ー c ー ト ネ ト 日 t ド ジ ッ ナ 本 o ッ ャ ト ー リ r C ト パ ワ ズ ビ y Y ン ー ン B グ E 和 ア 保 R 心 ル 証 D フ Y ァ N ポ E リス 0 200 400 600 800 1000 1200 1400 1600 1800 0 50 100 200 250 300 従業員数 150 企業利潤 企業利潤と従業員数

Slide 26

Slide 26 text

5.帝国データバンクデータベース • 企業信用調査報告書 • 企業財務データベース • 企業概要 • 企業倒産 などの情報を網羅 ・未上場企業のデータもカバー

Slide 27

Slide 27 text

5. 帝国データバンクデータベース • 企業情報データ • 所在地 • 企業コード • 売上高 • 代表者名 などをカバー 引用: https://www.tdb.co.jp/pdf/samp_c2p.pdf

Slide 28

Slide 28 text

5. 帝国データバンクデータベース • 調査報告書 • 上場有無 • 資本金 • 取引銀行 • 仕入先 • 得意先 • 売上高 • 純利益 • 事業構成 • 信用スコア 引用: https://www.tdb.co.jp/lineup/pdf/samp_ccr.pdf

Slide 29

Slide 29 text

5. 帝国データバンクデータベース

Slide 30

Slide 30 text

5. 帝国データバンクデータベース • データ利用資格・手続き 1. センターで企業データを用いた研究に従事するのは、共同研究契約に予め記載さ れた一橋大学教員と帝国データバンク社員の他に、センターの連携協議会が認め る人とします(研究担当者、研究補助員、その他)。研究期間は、連携・協力協 定および共同研究契約の期間(2020年3月末までの2年間)を目処とします。 2. 本学の教員・学生のみならず、国内外の他大学等の教員・研究者・学生等も、所 定の手続きを経てセンターの研究担当者・研究補助員等になり、当センターの企 業データを利用することができます。ただし、他大学等の教員・研究者の場合は、 一橋大学客員研究員として承認される必要があります。具体的な手続き等につい ては、当センターにお問い合わせください。 3. 企業データは(株)帝国データバンク本社のワークステーションに設置され、セ ンター端末からの遠隔操作を通じてのみ利用できます。個別企業のデータの検 索・閲覧や持ち出しは一切できません。 4. センターの企業データを用いた研究に従事する人には必ず、所定の誓約書を提出 していただき、その規定に従っていただきます。 5. DPを含めて研究成果を公表する場合には、他大学の教員・学生等にも、所属機関 に加えて一橋大学の当センターのアフィリエーションを成果論文等に記載するこ とが義務づけられます。 http://www7.econ.hit-u.ac.jp/tdb-caree/qualification/

Slide 31

Slide 31 text

5. 帝国データバンクデータベース • マーキュリタワーの4F に研究センターがあります • もし卒論や修論や博論に使いたい場合には、是非ともお問い合 わせください

Slide 32

Slide 32 text

6+. NISTEP 企業名辞書 • http://www.nistep.go.jp/research/scisip/rd-and-innovation- on-industry • 複数のデータセットをID ベースで接合するためのテーブル http://www.nistep.go.jp/wp/wp-content/uploads/user- manual-of-comp_dic_2019_1.pdf

Slide 33

Slide 33 text

6+. NISTEP 企業名辞書 • カバーしている企業群 • ① 特許出願数累積 100 件以上 • ② 株式上場企業 • ③ 特許出願数の伸び率大 • ④ NISTEP 大学・公的機関名辞書掲載企業 • ⑤意匠・商標登録数累積 100 件以上 • ⑥ 持株会社制移行に伴い設立された事業会社 • ⑦ 一部事業の譲渡に伴い設立された会社 • ⑧ 名称変更又は吸収合併した企業が登録事由に該当

Slide 34

Slide 34 text

6+. NISTEP 企業名辞書

Slide 35

Slide 35 text

7. EDINET-PYTHON • pip を用いて edinet-python を導入する

Slide 36

Slide 36 text

7. EDINET-PYTHON • EDINET をインポートする • 特定日のドキュメントをイン ポートする • インポートしたドキュメント のタイトルを表示する

Slide 37

Slide 37 text

7.EDINET-PYTHON • EDINET のAPI を用いて, 特定企業のXBRL ファイルとPDF ファイルを取得する • 当該Notebook と同じディレクトリに保存する

Slide 38

Slide 38 text

7.EDINET-PYTHON • XBRL • XMLっぽいフォーマットの塊 • PDF

Slide 39

Slide 39 text

7.EDINET-PYTHON • 取り出したデータを参照して、必要なコンテンツを Parse する

Slide 40

Slide 40 text

7.EDINET-PYTHON • 情報を取り出す • Mecab と組み合わせると、きれいに出来そう

Slide 41

Slide 41 text

7.EDINET-PYTHON • 情報を取り出す(研究開発情報)

Slide 42

Slide 42 text

まとめ • 企業に関するデータベースはございます • ただし、体系立てて、かつExcelやPython やR にすぐ使える感 じになっているもの (日経系, Orbis 系) は、現状下とてもアク セスしずらい状況に • 企業ベースのデータで解析を希望する場合, 大学に入れる間に データの取得を済ませておく必要がありそうです • (秋や冬に大学に入れる可能性が、まだかなり不確かなので)

Slide 43

Slide 43 text

2.2 Linked Open Data

Slide 44

Slide 44 text

今日のテーマ; オープンデータ • オープンデータとは • “特定のデータが、一切の著作権、特許などの制御メカニズムの制限な しで、全ての人が望むように利用・再掲載できるような形で入手でき るべきであるというアイデア” • “オープンデータとは、自由に使えて再利用もでき、かつ誰でも再配布 できるようなデータのことだ。従うべき決まりは、せいぜい「作者の クレジットを残す」あるいは「同じ条件で配布する」程度である“ https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%BC%E3%83 %97%E3%83%B3%E3%83%87%E3%83%BC%E3%82%BF

Slide 45

Slide 45 text

Level of Open Data ★ Available on the web (whatever format) but with an open licence, to be Open Data ★★ Available as machine-readable structured data (e.g. excel instead of image scan of a table) ★★★ as (2) plus non-proprietary format (e.g. CSV instead of excel) ★★★★ All the above plus, Use open standards from W3C (RDF and SPARQL) to identify things, so that people can point at your stuff ★★★★★ All the above, plus: Link your data to other people’s data to provide context https://www.w3.org/DesignIssues/LinkedData.html https://5stardata.info/ja/

Slide 46

Slide 46 text

オープンデータのエッセンス • データがオープンライセンスで公開されていること • コンピューターが処理できる形式になっていること • オープンに利用できるフォーマットでデータが公開されている こと • Web 標準でデータが公開されていること • 外部データともリンク可能なこと • これらを踏まえたのが, Linked Open Data

Slide 47

Slide 47 text

統計データのRDF (Resource Description Framework) 化 • 統計表のデータ定義では、統計 表のセルごとにRDF化を行ない ます。 • 統計表の各セルに対してIDを振 り、それを主語とします。 • 各セルに対して、次元、測度、 属性、観測値を、それぞれ述語、 目的語として定義します。 • 主語、述語、目的語の3つの要 素を「トリプル」といいますが、 ひとつの統計値(統計表のセ ル)は複数のトリプルによって 表されます。 http://data.e-stat.go.jp/lodw/outline/abstraction#1-1-1

Slide 48

Slide 48 text

Linked Open Data Cloud • https://lod-cloud.net/

Slide 49

Slide 49 text

オープンデータの具体例; メディア芸術データベース LOD • メディア芸術データベース • マンガ • アニメーション • ゲーム • メディア・アート に係る情報が集約されたデータ ベース

Slide 50

Slide 50 text

メディア芸術データベース • 検索結果 • 監督 • 演者 • 作成者 などの情報が取得できる

Slide 51

Slide 51 text

メディア芸術データベースLOD • https://metadata.moe/madb-lod/

Slide 52

Slide 52 text

メディア芸術データベースLOD • 公開年ごとにTVアニメ数を集計する PREFIX schema: PREFIX rdf: PREFIX rdfs: PREFIX ma: SELECT ?y (COUNT(DISTINCT *) AS ?cnt) WHERE { ?s a ma:Collection ; ma:media "TVレギュラー" ; schema:startDate ?startDate . } GROUP BY (SUBSTR(?startDate, 1, 4) AS ?y) ORDER BY DESC(?y) 接頭辞 PREFIX を指定する たとえば, PREFIX ma: は文化庁 DBの叙述構造を取得する

Slide 53

Slide 53 text

メディア芸術データベースLOD • 公開年ごとにTVアニメ数を集計する PREFIX schema: PREFIX rdf: PREFIX rdfs: PREFIX ma: SELECT ?y (COUNT(DISTINCT *) AS ?cnt) WHERE { ?s a ma:Collection ; ma:media "TVレギュラー" ; schema:startDate ?startDate . } GROUP BY (SUBSTR(?startDate, 1, 4) AS ?y) ORDER BY DESC(?y) Select では, ?y と ?cnt を取得する Where 中では, ma:Collection の中で, ma:media で “TVレギュラー” に当て はまるデータを取得し, schema:startDate の情報 を ?startDate に渡すことを明記する

Slide 54

Slide 54 text

メディア芸術データベースLOD • 公開年ごとにTVアニメ数を集計する PREFIX schema: PREFIX rdf: PREFIX rdfs: PREFIX ma: SELECT ?y (COUNT(DISTINCT *) AS ?cnt) WHERE { ?s a ma:Collection ; ma:media "TVレギュラー" ; schema:startDate ?startDate . } GROUP BY (SUBSTR(?startDate, 1, 4) AS ?y) ORDER BY DESC(?y) ?startDate を substr 関数を使って, 年数だけにする、それを ?y と名づけ、 年ごとにグルーピングする ?y の値で並べ替える (order by)

Slide 55

Slide 55 text

メディア芸術データベースLOD • 出力結果

Slide 56

Slide 56 text

メディア芸術データベースLOD • 年別のテレビアニメ数 0 50 100 150 200 250 300 350 1950 1960 1970 1980 1990 2000 2010 2020

Slide 57

Slide 57 text

メディア芸術データベースLOD 年次アニメ映画数の推移 0 20 40 60 80 100 120 1900 1920 1940 1960 1980 2000 2020 2040

Slide 58

Slide 58 text

13. 文化庁DB LOD からデータを取得する • 年ごとのTVアニメ数の推移を取得する

Slide 59

Slide 59 text

13. 文化庁DB LOD からデータを取得する • データを整形する

Slide 60

Slide 60 text

13. 文化庁DB LOD からデータを取得する • 年ごとのアニメ映画の数をカウントする

Slide 61

Slide 61 text

13. 文化庁DB LOD からデータを取得する • データを整形する

Slide 62

Slide 62 text

gBizInfo (旧法人インフォ) • https://info.gbiz.go.jp/ • (政府に関連する)企業の情報を 一元的に取得できる • Web インターフェースのみな らず, API も提供 • 取得できる主な情報 • 財務 • 特許 • 届け出・認定 • 補助金 • 調達 • 表彰 • 職場 • ローソンを出力した場合

Slide 63

Slide 63 text

gBizInfo (旧法人インフォ) • SPARQL Endpoint • http://api.hojin-info.go.jp/sparql

Slide 64

Slide 64 text

14. gBizInfo LOD からデータを取得する • ソニーの法人番号を調べて, そこからソニーによる政府調達の 情報を一元的に取得する

Slide 65

Slide 65 text

14. gBizinfo LOD からデータを取得する • 結果を成形する

Slide 66

Slide 66 text

2.3 BigQueryを使ってみよう

Slide 67

Slide 67 text

データベースの環境構築って めんどくさい • SQL を使った解析をいちから行うためには 1. SQL のサーバを構築する 2. データを展開する 3. データに対してクエリを発行して解析する の流れを踏まえる必要があり, 特に 1. や2. はオペレーションシステムや 言語環境への依存があるため, いささか面倒です.

Slide 68

Slide 68 text

使うもの • Google Big Query Sandbox • https://cloud.google.com/bigquery/docs/sandbox?hl=ja

Slide 69

Slide 69 text

Google Big Query のはじめかた (1) 1. URL https://cloud.google.com/bigquery/docs/sandbox?hl=jaを開く

Slide 70

Slide 70 text

Google Big Query のはじめかた(2) • 2. “GCP Console を開く”をクリックする

Slide 71

Slide 71 text

Google Big Query のはじめかた(3) • 3. 左側のナビゲーションベインから BigQuery を選択する

Slide 72

Slide 72 text

Google Big Query のはじめかた(4) • 4. [完了]をクリックする

Slide 73

Slide 73 text

Google Big Query のはじめかた(5) • 以下の画面が表示されればOK

Slide 74

Slide 74 text

Google Big Query でクエリを打ってみる(1) • 以下の内容を、クエリエディタに打ち込む SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 10

Slide 75

Slide 75 text

SQL 構文の話 • SELECT: • 1 つ以上のテーブルから選択された行を取得するために使用する • Where: • 選択されるために行が満たす必要のある 1 つまたは複数の条件 • Join: • Inner Join:指定したカラムについて同じ値を持つレコード同士を結びつける • Left Join: • 左のテーブルを基準にして、指定したカラムについて同じ値を持つレコード同士を結びつ ける。値が右のテーブルにあり左のテーブルにない場合は INNER JOIN 同様結果に含まれ ないが、値が左のテーブルにあり右のテーブルにない場合は INNER JOIN と異なり 右の テーブルのカラムには全て NULL がパディングされ、結果に含まれる。 • Right Join: • 右のテーブルを基準にして、指定されたカラムについて同じ値を持つレコード同士を結び つける。 2020/7/14 75 https://dev.mysql.com/doc/refman/5.6/ja/

Slide 76

Slide 76 text

Google Big Query でクエリを打ってみる(1) • 以下の内容を、クエリエディタに打ち込む SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 10 翻訳; (1.) Select Name と gender と number の合計値を取得 して, number の合計値は total という名前に してね (2.) From `bigquery-public- data.usa_names.usa_1910_2013` というテーブルからデータを取ってきてね (3.) Order by Total の数字が大きな順にしてね (4.) LIMIT 最初から10番目までにしてね

Slide 77

Slide 77 text

Google Big Query でクエリを打ってみる(3) • [実行]をクリックする

Slide 78

Slide 78 text

Google Big Query でクエリを打ってみる (4) • 結果が出力される • どうやら James (4,924,235) や John (4,818,746) が多いらしい

Slide 79

Slide 79 text

Google Big Query でクエリを打ってみる (5) • [データポータルで調べる]をクリックする

Slide 80

Slide 80 text

Google Big Query でクエリを打ってみる(6) • [使ってみる]をクリックする

Slide 81

Slide 81 text

Google Big Query でクエリを打ってみる(7) • [承認]をクリックする

Slide 82

Slide 82 text

Google Big Query でクエリを打ってみる(8) • [許可]をクリックする

Slide 83

Slide 83 text

Google データポータルで可視化する(1) • 右下の指標に, total を指定する • クエリの出力結果と同じものが表示される

Slide 84

Slide 84 text

Google データポータルで可視化する(2) • 右上のグラフから, 可視化の手法を選択する • その1; 棒グラフ

Slide 85

Slide 85 text

Google データポータルで可視化する(3) • 右上のグラフから, 可視化の手法を選択する • その2; 積み上げ横棒グラフ

Slide 86

Slide 86 text

Google データポータルで可視化する(3) • 右上のグラフから, 可視化の手法を選択する • その3; ツリーマップ

Slide 87

Slide 87 text

今日の復習(20分程度) • Google Big Query + Google データポータルを使って, 大規模 データの解析をやってみましょう • 注意 • Sandbox 状態で解析すること • 大量データを解析して保持した場合 && クレジットカード情報を登録している場 合, 使用料を Google さんから請求されます • 4.3 で説明するオンプレミスな分析環境も, もし関心あればやっ てみてください.

Slide 88

Slide 88 text

利用できるデータセット • リソース から, [+ データを追加] をクリックする

Slide 89

Slide 89 text

利用できるデータセット • Word Development Indicators • Google Patent • US Census Data • US Residential Real Estate Data • Stackoverflow など, 楽しそうなデータ が並んでいる

Slide 90

Slide 90 text

a.) baseball data の場合 • ピッチャーの球種をカウントしてみる

Slide 91

Slide 91 text

Select pitchTypeDescription, count(gameid) as total FROM `bigquery-public-data.baseball.games_post_wide` group by pitchTypeDescrption ordey by total desc LIMIT 1000

Slide 92

Slide 92 text

a.) baseball data の場合

Slide 93

Slide 93 text

b.) Stack Overflow の場合 参考文献; https://qiita.com/perico_v1/items/7ea358a64cf1efa52cd9

Slide 94

Slide 94 text

このセクションのまとめ • 多変量データが使えると、出来ることが増える • どう考えても,今の時代クラウドを使ったほうが楽 • クラウドにデプロイしてもOKなデータか, そうではないデータ かを確認しよう

Slide 95

Slide 95 text

リクエスト大会!

Slide 96

Slide 96 text

とりあえず、色々な方からリクエストの あった内容を盛り込みました • 2-4. • Youtube API • Instagram • 2-5. • 楽天API その1; 楽天市場 • 楽天API その2; 楽天トラベル • 2-6. • Worldbank • gogo.gs

Slide 97

Slide 97 text

2-4.Youtube API をたたいてみる

Slide 98

Slide 98 text

Youtube のAPI を叩くまでの流れ • API を有効化する • 必要なパッケージをAnaconda+Python 側に導入する • いくつかスクリプトをまわしてみる

Slide 99

Slide 99 text

Youtube Data API v3 を Google APIs 上で有効化する

Slide 100

Slide 100 text

[有効にする] をクリックする

Slide 101

Slide 101 text

左側メニューの[認証情報]をクリックする

Slide 102

Slide 102 text

API キーを取得する

Slide 103

Slide 103 text

Notebook 上で、google-api-python-client をインストールする

Slide 104

Slide 104 text

キーワードに基づき動画の情報を取得する

Slide 105

Slide 105 text

今回は知り合いの経営学者 Youtuber の情 報をゲットしてみる • いろいろテストしてたら、API の利用制限を越えたのであった • その後無事にデータ取得に成功

Slide 106

Slide 106 text

Instagram API について • Instragram API Platform が廃止され、後継のAPI に移行した模 様 • 位置情報やフォロワー数などの情報は提供されなくなる • 画像の位置情報は含まれなくなる • 参考文献 • https://www.e-pokke.com/blog/instagram-basic-display-api.html • https://embedsocial.jp/blog/instagram-api-changes-2020-2/ • https://arrown-blog.com/instagram-graph- api/#AxiosInstagram_Graph_API

Slide 107

Slide 107 text

2-5.楽天のAPI をたたいてみる その1; 楽天市場編

Slide 108

Slide 108 text

楽天のAPI を使う大まかな流れ • 楽天にログインする • 楽天のアプリID を発行する • テストサイトで動かしてみる • 実際にコーディング (Anaconda etc…) する

Slide 109

Slide 109 text

1. 楽天にログインして、続いて Rakuten Developers にアクセスする

Slide 110

Slide 110 text

2. [アプリID 発行] をクリックする

Slide 111

Slide 111 text

3. “アプリ新規作成フォーム” を入力する

Slide 112

Slide 112 text

4. アプリID/アフィリエイトID などを 取得する

Slide 113

Slide 113 text

5. API テストフォームでデータの取得を テストする • 今回は、”楽天商品検索 API” を利用する • Keyword に”うさまる” を指定する (基本的には、アプリID とパラメータさえ指定す れば、NotebookやR経由 でもデータが引っ張って これそうな感じである)

Slide 114

Slide 114 text

6. データの取得結果

Slide 115

Slide 115 text

7. 実際にPython 上でコーディングする • 先程のAPI テストフォームの内容に基づき、コーディング • アプリケーションID やデータの取得方式を指定する • 今回のキーワードは “うさまる” に • ただし、日本語はそのままURL に指定できないので、 urllib.parse.quote を使う

Slide 116

Slide 116 text

8. 実際にPython 上でコーディングする (続き) • Request を用いURL2 を 開く • 日本語データが含まれて いるのでデコード • URL先が開かない場合, 例 外処理をする

Slide 117

Slide 117 text

9. 実際にPython 上でコーディングする (続き) • 中身が表示されるが、ちょっと使いづらい

Slide 118

Slide 118 text

10. Panda 形式に変換する • Json パッケージをインポート • 取得したデータをjson として読み込む (json.loads) • Panda DataFrame 形式に json_normalize で変換する • このとき、Items をピボットする • とりあえず出力する (temp3)

Slide 119

Slide 119 text

11. Panda で出力される • とりあえず、うさまるグッズ情報が一覧取得出来ている

Slide 120

Slide 120 text

楽天のAPI をたたいてみる その2; 楽天トラベル編 • https://webservice.rakuten.co.jp/api/simplehotelsearch/ を 参照しながらコーディングする • 位置情報に基づく探索 • 座標情報に基づく探索 • 宿同士の検索 などが実行出来そう

Slide 121

Slide 121 text

座標情報を指定する形で宿を探索する • Json 形式でデータを取得 • 緯度・経度を指定する

Slide 122

Slide 122 text

東京駅近辺のホテル情報を取得する

Slide 123

Slide 123 text

Json をPandas DataFrame に変換する • json_normalize で record_path を指定することで、ホテル名な どの情報を取得する

Slide 124

Slide 124 text

DataFrame 形式の出力結果

Slide 125

Slide 125 text

2-6. スクレイピング; worldbank/gogo.gs

Slide 126

Slide 126 text

スクレイピングの応用編 • Worldbank • Gogo.gs

Slide 127

Slide 127 text

Worldbank(ICSID) Database of Bilateral Investment Treaties • https://icsid.worldbank.org/en/Pages/resources/Bilateral- Investment-Treaties-Database.aspx#

Slide 128

Slide 128 text

とりあえずスクレイピングしてみた 1. Pandas 2. BeautifulSoup 3. 手作業

Slide 129

Slide 129 text

1. Pandas でtable 内の情報を取得する • Table からデータは 取れている • ところが、ほしい情 報が入っていない

Slide 130

Slide 130 text

2. Beautiful Soup でデータを取得する • url を指定 • データが埋 まっている箇 所から、class を指定して データを引っ 張ってくる • td のデータを 取得する

Slide 131

Slide 131 text

2. Beautiful Soup でデータを取得する • ところが、あんまりきれいにデータが取れない。

Slide 132

Slide 132 text

3. 手作業でコピペする • 基本に立ち戻り、コピペしてみる

Slide 133

Slide 133 text

3. 手作業でコピペする • Excel にコピーできました。

Slide 134

Slide 134 text

スクレイピングがうまくいかなかった原 因(推測) • Table が入れ子構造になってる • スクレイピングしずらい構造になってる • たぶん、申請したら普通にくれるから? • https://icsid.worldbank.org/en/Pages/about/Contact-us.aspx

Slide 135

Slide 135 text

Gogo.gs • “ガソリン価格比較サイト gogo.gs は、ガソリン価 格やガソリンスタンド情 報を共有するサービスで す。掲載情報は、全国の ドライバーの皆さんやガ ソリンスタンドの方から 寄せられた情報をリアル タイムに掲載していま す。”

Slide 136

Slide 136 text

Gogo.gs をスクレイピングしてもOKか確 認してみる。 • https://gogo.gs/info/terms • 第4条 禁止事項 • 事務局は、登録ユーザの行為が以下の項目に該当すると事務局が判断した場合、事務局は上記登録ユーザに事前に何等 通知又は催告することなく、除名処分とします。 1.公序良俗に反する行為 2.犯罪的行為に結びつく行為 3.他のユーザ又は第三者の著作権を侵害する行為 4.他のユーザ又は第三者の財産、プライバシー等を侵害する行為 5.知的所有権、著作権、その他、法律に反する行為 6.他のユーザ又は第三者を誹謗中傷する行為 7.選挙の事前運動、選挙運動又はこれらに類似する行為及び公職選挙法に抵触する行為 8.本サービスの運営を妨げ、或は事務局の信頼を毀損するような行為 9.複数のメールアドレスを利用し重複して会員となる行為 10.登録ユーザのユーザとして有する権利を第三者に譲渡若しくは使用させたり、売買、名義変更、質権の設定その 他の担保に供する等の行為 11.本サービスを通じて入手したコンテンツを、事務局の承認なく、複製、販売、出版その他私的利用の範囲を超え て使用する行為 12.事務局が承認した、登録ユーザが運営する店舗もしくは商品の宣伝以外の、営利を目的とした行為 13.その他、事務局が会員の行為として不適切であると認めた行為 • 研究活動は11. に記載されている「私的利用の範囲」なのかすごく絶妙な気分になる

Slide 137

Slide 137 text

BeautifulSoup でデータを取得する • 個別店舗ごとの価格推移 を取得する • Table タグ内の”table table-bordered” クラス 内に価格推移が埋まって いるので、そこから引っ 張ってくる

Slide 138

Slide 138 text

BeautifulSoup でデータを取得する • Table の中身が取り出せる • ただ、ここから処理するのがちょっとめんどくさい

Slide 139

Slide 139 text

Pandas でデータを取得する • Pandas の read_html でデータを持ってくる • こっちのほうが楽そう

Slide 140

Slide 140 text

Pandas で平均価格を取得する • Pandas をimport する • レギュラー(0), ハイオク (1), 軽油(2), 灯油(3) の順 にデータが掲載されてい るので、添字 i で順番に 取得する (for 文) • read_html でデータを取 得し、空の DataFrame に追記する • 最後にデータを出力

Slide 141

Slide 141 text

Pandas でガソリンの都道府県別平均価 格を取得する • 価格が取得出来ていそう • 若干調整が必要かもしれない

Slide 142

Slide 142 text

スクレイピングの注意点(reprise) • 本当にスクレイピングしてもよいサイトかチェックする • サイト構造がよくかわるサイトもあるので、その場合にはコー ディングし直しになる • API やLOD、raw data で提供している場合にはそちらを使う

Slide 143

Slide 143 text

アフターサーヴィスのお知らせ • 今回取り上げたデータの取得手法はかなり限定的です • そのため、同じようにAPI やスクレイピングでデータをとって こようとすると、ひっかかったり、コードがうまく動かないと ころが必ず出てくると思います。 • そのため、困ったときには Slack の #わからないところの質疑 応答用 チャンネルに書き込んでください • 僕や、僕以外のメンバーが回答してくれるかもしれません

Slide 144

Slide 144 text

一橋データ分析講義の資料 • 1. https://speakerdeck.com/yasushihara/10hui • 2. https://speakerdeck.com/yasushihara/10hui-b83cea5a-c7ed-478f-9482-75eb2cfbf5a6 • 3. https://speakerdeck.com/yasushihara/10hui-07f62b90-55db-4d69-a46d-78c995cb8bf3 • 4. https://speakerdeck.com/yasushihara/10 • 5. https://speakerdeck.com/yasushihara/10-57e0b909-959b-48ba-a076-a3458c238412 • 6. https://speakerdeck.com/yasushihara/10-77078dec-4181-43d9-922e-e395e07c2eed • 7. https://speakerdeck.com/yasushihara/10hui-7da3864c-a6b1-47b3-8c12-b4507ee2b3c0 • 8. https://speakerdeck.com/yasushihara/10hui-b024f4c9-5dfb-453d-8697-585f86974786 • 9. https://speakerdeck.com/yasushihara/10hui-b83e5c32-af91-4af3-a91d-54f937a89a04

Slide 145

Slide 145 text

THANKS yasushi.hara@r.hit-u.ac.jp