Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Tatsuya Tojima
8,514 views
Python による 「スクレイピング & 自然言語処理」入門
データ解析入門〜グラフ分析処理・スクレイピング〜【found IT projectセミナー#6】 https://foundit-project.connpass.com/event/51809/
Software
◦
Read more
17
Save
Share
Embed
Embed presentation
1
/ 64
2
/ 64
3
/ 64
4
/ 64
5
/ 64
6
/ 64
7
/ 64
8
/ 64
9
/ 64
10
/ 64
11
/ 64
12
/ 64
13
/ 64
14
/ 64
15
/ 64
16
/ 64
17
/ 64
18
/ 64
19
/ 64
20
/ 64
21
/ 64
22
/ 64
23
/ 64
24
/ 64
25
/ 64
26
/ 64
27
/ 64
28
/ 64
29
/ 64
30
/ 64
31
/ 64
32
/ 64
33
/ 64
34
/ 64
35
/ 64
36
/ 64
37
/ 64
38
/ 64
39
/ 64
40
/ 64
41
/ 64
42
/ 64
43
/ 64
44
/ 64
45
/ 64
46
/ 64
47
/ 64
48
/ 64
49
/ 64
50
/ 64
51
/ 64
52
/ 64
53
/ 64
54
/ 64
55
/ 64
56
/ 64
57
/ 64
58
/ 64
59
/ 64
60
/ 64
61
/ 64
62
/ 64
63
/ 64
64
/ 64
More Related Content
PDF
BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈
by
順也 山口
PDF
潜在ディリクレ配分法
by
y-uti
PDF
【DL輪読会】GPT-4Technical Report
by
Deep Learning JP
PPTX
[DL輪読会] “Asymmetric Tri-training for Unsupervised Domain Adaptation (ICML2017...
by
Yusuke Iwasawa
PPTX
深層学習の数理
by
Taiji Suzuki
PDF
機械学習で泣かないためのコード設計
by
Takahiro Kubo
PDF
JVMパラメータチューニングにおけるOptunaの活用事例 ( Optuna Meetup #1 )
by
Hironobu Isoda
PDF
Deep Learningによる超解像の進歩
by
Hiroto Honda
BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈
by
順也 山口
潜在ディリクレ配分法
by
y-uti
【DL輪読会】GPT-4Technical Report
by
Deep Learning JP
[DL輪読会] “Asymmetric Tri-training for Unsupervised Domain Adaptation (ICML2017...
by
Yusuke Iwasawa
深層学習の数理
by
Taiji Suzuki
機械学習で泣かないためのコード設計
by
Takahiro Kubo
JVMパラメータチューニングにおけるOptunaの活用事例 ( Optuna Meetup #1 )
by
Hironobu Isoda
Deep Learningによる超解像の進歩
by
Hiroto Honda
What's hot
PDF
研究論文の書き方 - How to write a scientific paper
by
Antonio Tejero de Pablos
PDF
機械学習と機械発見:自然科学研究におけるデータ利活用の再考
by
Ichigaku Takigawa
PDF
Transformer メタサーベイ
by
cvpaper. challenge
PDF
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
by
Yasuhiro Yoshimura
PDF
勉強か?趣味か?人生か?―プログラミングコンテストとは
by
Takuya Akiba
PDF
セグメント?クラスタリング? ユーザーを分類し、サービスの改善に活かすポイント
by
Naoto Tamiya
PPTX
トピックモデルの基礎と応用
by
Tomonari Masada
PDF
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
by
Preferred Networks
PDF
機械学習で泣かないためのコード設計 2018
by
Takahiro Kubo
PDF
漸近理論をスライド1枚で(フォローアッププログラムクラス講義07132016)
by
Hideo Hirose
PDF
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
by
mlm_kansai
PDF
大規模な組合せ最適化問題に対する発見的解法
by
Shunji Umetani
PDF
【BERT】自然言語処理を用いたレビュー分析
by
KazuyaYagihashi
PDF
Point net
by
Fujimoto Keisuke
PDF
研究発表のためのプレゼンテーション技術
by
Shinnosuke Takamichi
PDF
PFD(Process Flow Diagram)の書き方紹介
by
Noriyuki Mizuno
PPTX
【DL輪読会】Toolformer: Language Models Can Teach Themselves to Use Tools
by
Deep Learning JP
PPTX
[DL輪読会]ドメイン転移と不変表現に関するサーベイ
by
Deep Learning JP
PDF
[DL輪読会]Attention Is All You Need
by
Deep Learning JP
PDF
新分野に飛び入って半年で業績を作るには
by
Asai Masataro
研究論文の書き方 - How to write a scientific paper
by
Antonio Tejero de Pablos
機械学習と機械発見:自然科学研究におけるデータ利活用の再考
by
Ichigaku Takigawa
Transformer メタサーベイ
by
cvpaper. challenge
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
by
Yasuhiro Yoshimura
勉強か?趣味か?人生か?―プログラミングコンテストとは
by
Takuya Akiba
セグメント?クラスタリング? ユーザーを分類し、サービスの改善に活かすポイント
by
Naoto Tamiya
トピックモデルの基礎と応用
by
Tomonari Masada
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
by
Preferred Networks
機械学習で泣かないためのコード設計 2018
by
Takahiro Kubo
漸近理論をスライド1枚で(フォローアッププログラムクラス講義07132016)
by
Hideo Hirose
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
by
mlm_kansai
大規模な組合せ最適化問題に対する発見的解法
by
Shunji Umetani
【BERT】自然言語処理を用いたレビュー分析
by
KazuyaYagihashi
Point net
by
Fujimoto Keisuke
研究発表のためのプレゼンテーション技術
by
Shinnosuke Takamichi
PFD(Process Flow Diagram)の書き方紹介
by
Noriyuki Mizuno
【DL輪読会】Toolformer: Language Models Can Teach Themselves to Use Tools
by
Deep Learning JP
[DL輪読会]ドメイン転移と不変表現に関するサーベイ
by
Deep Learning JP
[DL輪読会]Attention Is All You Need
by
Deep Learning JP
新分野に飛び入って半年で業績を作るには
by
Asai Masataro
Viewers also liked
PDF
Python入門 : 4日間コース社内トレーニング
by
Yuichi Ito
PPTX
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
by
Katsuhiro Morishita
PDF
Scikit learnで学ぶ機械学習入門
by
Takami Sato
PDF
scikit-learnを用いた機械学習チュートリアル
by
敦志 金谷
PDF
Python 機械学習プログラミング データ分析ライブラリー解説編
by
Etsuji Nakai
PDF
Gensim
by
saireya _
PDF
Pythonで簡単ネットワーク分析
by
antibayesian 俺がS式だ
PDF
野球Hack!~Pythonを用いたデータ分析と可視化 #pyconjp
by
Shinichi Nakagawa
PDF
PythonによるWebスクレイピング入門
by
Hironori Sekine
PDF
「Python言語」はじめの一歩 / First step of Python
by
Takanori Suzuki
PDF
10分でわかるPythonの開発環境
by
Hisao Soyama
PDF
Python東海Vol.5 IPythonをマスターしよう
by
Hiroshi Funai
PDF
RとPythonによるデータ解析入門
by
Atsushi Hayakawa
PDF
python-twitterを用いたTwitterデータ収集
by
Hikaru Takemura
Python入門 : 4日間コース社内トレーニング
by
Yuichi Ito
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
by
Katsuhiro Morishita
Scikit learnで学ぶ機械学習入門
by
Takami Sato
scikit-learnを用いた機械学習チュートリアル
by
敦志 金谷
Python 機械学習プログラミング データ分析ライブラリー解説編
by
Etsuji Nakai
Gensim
by
saireya _
Pythonで簡単ネットワーク分析
by
antibayesian 俺がS式だ
野球Hack!~Pythonを用いたデータ分析と可視化 #pyconjp
by
Shinichi Nakagawa
PythonによるWebスクレイピング入門
by
Hironori Sekine
「Python言語」はじめの一歩 / First step of Python
by
Takanori Suzuki
10分でわかるPythonの開発環境
by
Hisao Soyama
Python東海Vol.5 IPythonをマスターしよう
by
Hiroshi Funai
RとPythonによるデータ解析入門
by
Atsushi Hayakawa
python-twitterを用いたTwitterデータ収集
by
Hikaru Takemura
Similar to Python による 「スクレイピング & 自然言語処理」入門
PPTX
さくっとはじめるテキストマイニング(R言語) スタートアップ編
by
Yutaka Shimada
PDF
R による文書分類入門
by
Takeshi Arabiki
PDF
Pythonによる機械学習入門〜基礎からDeep Learningまで〜
by
Yasutomo Kawanishi
PDF
MapReduceによる大規模データを利用した機械学習
by
Preferred Networks
PDF
RとSQLiteで気軽にデータベース作成
by
弘毅 露崎
PDF
情報抽出入門 〜非構造化データを構造化させる技術〜
by
Yuya Unno
PDF
コンピュータビジョン7章資料_20140830読書会
by
Nao Oec
PDF
さくさくテキストマイニング入門セッション
by
antibayesian 俺がS式だ
PPTX
Approximate Scalable Bounded Space Sketch for Large Data NLP
by
Koji Matsuda
PDF
Python for Data Anaysis第2回勉強会4,5章
by
Makoto Kawano
PDF
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
by
Yuya Unno
PDF
質問応答システム入門
by
Hiroyoshi Komatsu
PDF
20190920 hannaripython20
by
Otazo Man
PDF
Pfi last seminar
by
Hidekazu Oiwa
PDF
Intoroduction of Bad Data Handbook
by
Atsushi Hayakawa
PDF
PythonでテキストをJSONにした話(PyCon mini sapporo 2015)
by
Satoshi Yamada
PPTX
今さら聞けないHadoop勉強会第2回 セントラルソフト株式会社(20120228)
by
YoheiOkuyama
PDF
R言語勉強会#6.pdf
by
Takuya Kubo
PDF
第三回さくさくテキストマイニング勉強会 入門セッション
by
antibayesian 俺がS式だ
PDF
社会ネットワーク分析第7回
by
Satoru Mikami
さくっとはじめるテキストマイニング(R言語) スタートアップ編
by
Yutaka Shimada
R による文書分類入門
by
Takeshi Arabiki
Pythonによる機械学習入門〜基礎からDeep Learningまで〜
by
Yasutomo Kawanishi
MapReduceによる大規模データを利用した機械学習
by
Preferred Networks
RとSQLiteで気軽にデータベース作成
by
弘毅 露崎
情報抽出入門 〜非構造化データを構造化させる技術〜
by
Yuya Unno
コンピュータビジョン7章資料_20140830読書会
by
Nao Oec
さくさくテキストマイニング入門セッション
by
antibayesian 俺がS式だ
Approximate Scalable Bounded Space Sketch for Large Data NLP
by
Koji Matsuda
Python for Data Anaysis第2回勉強会4,5章
by
Makoto Kawano
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
by
Yuya Unno
質問応答システム入門
by
Hiroyoshi Komatsu
20190920 hannaripython20
by
Otazo Man
Pfi last seminar
by
Hidekazu Oiwa
Intoroduction of Bad Data Handbook
by
Atsushi Hayakawa
PythonでテキストをJSONにした話(PyCon mini sapporo 2015)
by
Satoshi Yamada
今さら聞けないHadoop勉強会第2回 セントラルソフト株式会社(20120228)
by
YoheiOkuyama
R言語勉強会#6.pdf
by
Takuya Kubo
第三回さくさくテキストマイニング勉強会 入門セッション
by
antibayesian 俺がS式だ
社会ネットワーク分析第7回
by
Satoru Mikami
Python による 「スクレイピング & 自然言語処理」入門
1.
Python による 「スクレイピング &
自然言語処理」入門 Twitter: @salinger001101 戸嶋 龍哉 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 1 参考資料(サンプルコード): https://github.com/Salinger/found_it_project_06_crwl/blob/master/src/python_crawler_nlp.ipynb
2.
自己紹介 •氏名: 戸嶋 龍哉(とじま
たつや) •DATUM STUDIO 株式会社にて データエンジニアとして、さまざまな業種 の企業におけるデータ分析活用基盤の 構築、テキストマイニングによる分析、 機械学習アルゴリズムの整備に従事。 データ分析を活用し1円でも多くの収益を 上げるべく、がんばっている。 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 2 著書 2017/03/24
3.
目次 1. はじめに 2. クローラーとは? 3.
自然言語処理とは? 4. 解析のための下準備 5. クローラーによるデータの取得 6. テキスト解析 7. おわりに 8. 付録 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 3
4.
目次 1. はじめに 2. クローラーとは? 3.
自然言語処理とは? 4. 解析のための下準備 5. クローラーによるデータの取得 6. テキスト解析 7. おわりに 8. 付録 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 4
5.
セミナー概要 •クローラーとはWeb上のデータを自動的に収集するための道具 です。クローラーを活用することで、担当者が手動で行っていた Web情報収集の効率化、また自社だけでは入手できないさまざまな データを取得し自社データと結合することで新たな示唆を得ること が可能になります。 •今回のセミナーでは初心者を対象にクローラーを作成し対象サイト のデータを収集、テキスト解析を行い、分析結果を得るまでの 一連の流れについて、Python で使用するライブラリ、解析手法を 交えて解説いたします。 ※本発表は所属する組織とは一切関係がありません 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜
【FOUND IT PROJECTセミナー #6】 5
6.
今回やること •今回は対象ページとして 日本酒物語 日本酒ランキング(人数) とそれに紐づく各銘柄の詳細を収集し、解析を行います。 1.
解析のための下準備 2. クローラーによるデータの収集 3. テキスト解析 ◦ TFIDF によるレビュー中の特徴的な形容詞の抽出 ◦ 単語ベースのクラスタリング 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 6
7.
進め方 • 基本的にはスライドの記載内容に従って進めていきますが、 サンプルコードを見ながら進めるとより理解しやすいです。 • 手元に端末のある方は別途コードを記載したページを開いて おいてください。 2017/03/24
データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 7 参考資料(サンプルコード): https://github.com/Salinger/found_it_project_06_crwl/blob/master/src/python_crawler_nlp.ipynb
8.
目次 1. はじめに 2. クローラーとは? 3.
自然言語処理とは? 4. 解析のための下準備 5. クローラーによるデータの取得 6. テキスト解析 7. おわりに 8. 付録 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 8
9.
質問1 「クローラー」って単語 セミナー前に聞いたことあった方 手を上げていただけますか? 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND
IT PROJECTセミナー #6】 9
10.
質問2 「クローラー」 実際に作ったことがある方 手を上げていただけますか? 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND
IT PROJECTセミナー #6】 10
11.
そもそもクローラーって何? • クローラー(crawler) ◦ インターネット上にあるWebサイト、テキスト、画像、 動画など、さまざまなデータを収集するプログラムのこと。 •
スクレイピング, クローリング(crawling) ◦ クローラーを動かして、データを収集すること。 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 11 インターネット上の コンテンツ クローリング クローラー データ
12.
クローラーのメリット • 担当者が手動で行っていた Web
からの情報収集の自動化。 ◦ 情報収集にかかっていた時間の大幅削減が可能に。 ◦ 人間には不可能な量の情報を収集することが可能に。 • データの自動的な蓄積が可能。 ◦ 一定期間で消えてしまうデータの長期間に渡る分析が可能に。 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 12
13.
データ分析で用いられる クローラーシステムの例 (Azure 環境) 2017/03/24
データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 13 Virtual Machines (クローラー用) SQL Database Virtual Machines (Tableau Server用) Web ブラウザ ユーザー 結果 アクセステキスト 画像 動画 etc. データ加工 条件 結果 ビューの表示 インターネット上の コンテンツ
14.
クローラー作成に関わる技術 (クローラー本体) • プログラミング言語: ◦ 主に
Python で作成。後の分析作業が楽。 • ライブラリ ◦ Requests: Python の HTTP ライブラリ。 ◦ Scrapy: Web スクレイピングフレームワーク。 ◦ PhantomJS: コマンドラインで動作する仮想ブラウザフレームワーク。 JavaScript を使用したサイトの取扱も可能になる。 ◦ BeautifulSoup: HTML のパーサ。HTML の構造を効率よく扱える。 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 14
15.
目次 1. はじめに 2. クローラーとは? 3.
自然言語処理とは? 4. 解析のための下準備 5. クローラーによるデータの取得 6. テキスト解析 7. おわりに 8. 付録 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 15
16.
質問1 「自然言語処理」って単語 セミナー前に聞いたことあった方 手を上げていただけますか? 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND
IT PROJECTセミナー #6】 16
17.
質問2 「自然言語処理」で 何らかの解析を行ったことがある方 手を上げていただけますか? 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND
IT PROJECTセミナー #6】 17
18.
自然言語処理の分野 (概要) • 人間が日常的に使っている言葉(自然言語)をコンピュータ に処理させるための技術。 •
基礎技術 ◦ 形態素解析: 文を形態素(言語で意味を持つ最小単位)に分解し、 品詞などを判別する。 ◦ 構文解析: 文の構造の解析。修飾-被修飾の関係推定など。 ◦ 語義曖昧性解消: 複数意味を持つ語句の意味の特定。 ◦ 照応解析: 代名詞の推定、省略された語句の補完。 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 18
19.
自然言語処理の応用範囲 自動要約文生成 情報抽出
情報検索 機械翻訳 質問応答システム (QAシステム) 光学文字認識(OCR) 音声認識・合成 自然言語生成 かな漢字変換 文書校正 固有表現抽出 etc. 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 19
20.
自然言語処理の応用範囲 自動要約文生成 情報抽出
情報検索 機械翻訳 質問応答システム (QAシステム) 光学文字認識(OCR) 音声認識・合成 自然言語生成 かな漢字変換 文書校正 固有表現抽出 etc. 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 20 今回は このあたり!
21.
目次 1. はじめに 2. クローラーとは? 3.
自然言語処理とは? 4. 解析のための下準備 5. クローラーによるデータの取得 6. テキスト解析 7. おわりに 8. 付録 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 21
22.
Python の導入 • Python
初心者の方は Python 3 の最新版を導入すればよい。 ◦ 現時点の最新版は Python 3.6 • Anaconda を利用しての導入が楽なのでおすすめ。 ◦ インストーラーをダウンロードして実行するだけ。 https://www.continuum.io/downloads • 開発環境は Jupyter Notebook がおすすめ。 ◦ 今回見てもらってる HTML のような感じでコードを書ける。 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 22
23.
ライブラリの導入 • 例えば Mac
なら Jupyter Notebook 上から次のコマンド を実行すれば導入できる。 1. MeCab の導入 2. クローラー関係のライブラリの導入 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 23 !brew install mecab mecab-ipadic !pip install mecab-python3 !conda install -y html5lib !conda install -y requests !conda install -y BeautifulSoup4
24.
使用するライブラリの読み込み 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND
IT PROJECTセミナー #6】 24
25.
定数の設定 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND
IT PROJECTセミナー #6】 25
26.
目次 1. はじめに 2. クローラーとは? 3.
自然言語処理とは? 4. 解析のための下準備 5. クローラーによるデータの取得 6. テキスト解析 7. おわりに 8. 付録 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 26
27.
クローラーによるデータ取得の流れ 1. 対象ページのHTMLの取得。 2. 取得対象情報が含まれている部分のタグの特定。 3.
取得対象情報のパース。 4. 結果の保存。 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 27
28.
対象ページ このページの で囲まれた 部分から順位、 銘柄、蔵元名、 銘柄の詳細ページ のURLを取得する。 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND
IT PROJECTセミナー #6】 28
29.
Request を使用してページ取得 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜
【FOUND IT PROJECTセミナー #6】 29
30.
中身の確認 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND
IT PROJECTセミナー #6】 30
31.
BeautifulSoup を利用して テーブル要素の取得 • <table>
〜 </table> の部分を抜き出す。 • 各行要素 <tr> 〜 </tr> の部分を抽出 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 31
32.
行要素のパース 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND
IT PROJECTセミナー #6】 32
33.
データフレームへの変換 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND
IT PROJECTセミナー #6】 33
34.
CSVとして保存 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND
IT PROJECTセミナー #6】 34
35.
詳細ページ(レビュー部分) コメント一覧から次の要素 を取得する。 1. 投稿ID 2.
タイトル 3. 投稿日時 4. ユーザ名 5. テキスト ※ 流れとしては同じなので省略。 詳細はサンプルコードを参照。 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 35
36.
ここまでのまとめ • クローラーを活用することにより… ◦ 銘柄のリスト情報(銘柄マスタ)を取得できた。 ◦
銘柄マスタに紐づく各詳細ページ(200ページ文)の コメント一覧を取得できた。 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 36
37.
目次 1. はじめに 2. クローラーとは? 3.
自然言語処理とは? 4. 解析のための下準備 5. クローラーによるデータの取得 6. テキスト解析 7. おわりに 8. 付録 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 37
38.
TFIDF によるレビュー中の 特徴的な形容詞の抽出 • この解析では、あるドキュメント中における特徴的な単語(特徴語) の抽出を行う。 2017/03/24
データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 38 元データ MeCab による 単語への分割・抽出 TfidfVectorizer による変換 BoW 形式への変換 TFIDFスコア算出 銘柄別 単語TFIDF スコア文書行列への変換
39.
Bag-of-Words (BoW) 形式への変換 •
集めたデータを各種統計処理で扱うためには、行列形式への変換が必要。 • 文章に単語が含まれているかどうかのみを考え、単語の並び方などは 考慮しないモデル。一番シンプルなモデルは単語があれば 1、なければ 0 となる。単語の出現回数を (TF: Term Frequency) 使う場合もある。 • 今回は Term Frequency を採用。 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 39 すもももももももものうち (1) ↓ [すもも, も, もも, も, もも, の, うち] (2) ↓ {すもも: 1, も:2, もも: 2, の: 1, うち:1} (3) MeCab による変換 CountVectorizer による変換
40.
文書行列への変換 • 各文書に含まれる単語を列に、文書を行、単語の出現回数を要素とした 行列形式に変換する。 • 例:
以下のテキストの文書行列への変換 ◦ (a) 「すもももももももものうち」 ◦ (b) 「料理も景色もすばらしい」 ◦ (c) 「私の趣味は写真撮影です 列のラベルは単語の出現の早い順に [すもも, も, もも, の, うち, 料理, 景色, 素晴らしい, 私, 趣味, は, 写真撮影, です] とすると、文書行列は下記のようになる。 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 40 [[1,2,2,1,1,0,0,0,0,0,0,0,0], # (a) [0,2,0,0,0,1,1,1,0,0,0,0,0], # (b) [0,0,0,1,0,0,0,0,1,1,1,1,1]]# (c)
41.
TFIDFの計算 • TFIDF =
TF ✕ IDF • TF: 文書内における単語の出現頻度。 ◦ 「ある文書中である単語が何回出現したか」 ◦ 1つの文書に多く出現する単語ほど重要度が高くなる。 • IDF:(ある単語が含まれている文書数 / 全ての文書数) の逆数 ◦ 多数の文書に出現する単語ほど重要度が低くなる。 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 41 TF: ある文書 d に出現した単語 w の回数 DF: 単語 w が含まれている文書の数 N: 全ての文書数
42.
TFIDFの意味 • TFIDF が大きな値になる。 →
文書内である特定の単語が多く出現し、かつその単語は 他の文書ではほとんど出現しない。 • 例 ◦ 「私」: 各文書内における出現回数は多いが、多くの文書に 出現するので重要度は低い。 ◦ 「特許」:「特許」を話題の中心にしている特定の文書内には 多く現れ、一般的な文書には現れないので重要度 が高い。 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 42
43.
TfidfVectorizer を用いた変換 • CountVectorizer(from
scikit-learn) ◦ BoW 形式への変換、文書行列への変換、単語と列番号の 対応付けなどの作業をまとめて行うことができる。 • TfidfVectorizer (from scikit-learn) ◦ 前述の CountVectorizer による行列化と TFIDF の計算を 同時に行うことが出来る。 ◦ 今回はこれを利用する。 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 43
44.
対象品詞の単語群を返す関数を定義 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND
IT PROJECTセミナー #6】 44
45.
全銘柄のコメントを読み込んで 単語単位に分割・対象品詞の単語のみ抽出 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND
IT PROJECTセミナー #6】 45
46.
銘柄別に単語をまとめる 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND
IT PROJECTセミナー #6】 46
47.
TFIDFの計算 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND
IT PROJECTセミナー #6】 47
48.
各銘柄 TFIDF スコア上位5件の 単語を抽出 2017/03/24
データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 48
49.
銘柄マスタと結合して結果の確認 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND
IT PROJECTセミナー #6】 49
50.
TFIDF 計算結果の保存 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜
【FOUND IT PROJECTセミナー #6】 50
51.
単語ベースのクラスタリング • レビュー内に含まれている単語の傾向が似ている銘柄 = 特徴が似ている銘柄
と仮定して解析してみる。 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 51 元データ MeCab による 単語への分割・抽出 CountVectorizer による変換 BoW 形式への変換 StandardScaler による標準化 クラスタ 番号 文書行列への変換 PCA による次元圧縮 コサイン類似度 基準の階層型 クラスタリング
52.
単語の抽出 • 今回は 名詞
/ 動詞 / 形容詞 を使用 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 52
53.
CountVectorizer による文書行列化 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜
【FOUND IT PROJECTセミナー #6】 53
54.
StandardScaler による標準化 • 今回のようにレビューの件数が大きく異なる場合、 数値を標準化すると良いクラスタリング結果が得やすい。 •
各要素から平均を引いて、標準偏差で割る(Zスコア)。 • この変換を行うと、平均が 0 で標準偏差・分散が 1 になる。 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 54
55.
PCA による次元圧縮 • 単語行列は疎な状態。
次元圧縮を行うことで、 より効率が良く、直感に近いクラスタリング結果を得られる。 • 今回は 7252 次元(単語数)から 30次元に圧縮。 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 55
56.
クラスタリング実行 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND
IT PROJECTセミナー #6】 56
57.
銘柄マスタと結合し結果の確認 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND
IT PROJECTセミナー #6】 57
58.
結果の出力 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND
IT PROJECTセミナー #6】 58
59.
ここまでのまとめ • スクレイピングしてきた文書から特徴語が抽出できた。 • スクレイピングしてきた文書間で似ている物同士を まとめることができた。 2017/03/24
データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 59
60.
目次 1. はじめに 2. クローラーとは? 3.
自然言語処理とは? 4. 解析のための下準備 5. クローラーによるデータの取得 6. テキスト解析 7. おわりに 8. 付録 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 60
61.
今回カバーできなかった点 • 形態素解析用辞書の改善 ◦ デフォルトのものだと「山田錦」が「山田」+「錦」に分割されてしまう。 また連続する名詞の扱い方を改善するためにも辞書を工夫する必要がある。 •
否定語の扱い ◦ 美味しくない → 美味しい + ない と分割される。 このままでは「美味しい」としてカウントされてしまう。 • 数値を含んだ単語の取扱 ◦ 例えばアルコール度数を表すような数値、精米歩合の数値などが うまく扱えていない。 • ノイズとなるような単語のカット ◦ 例えば「Wow very oishii Sake ! 」などのテキストが含まれているが、 このようなものが含まれていてもあまり有益な結果を得られない。 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 61
62.
まとめ • Python を用い、クローラーを作成することで 対象サイトのデータを自動的に収集できた。 •
テキスト解析を行い、特徴語の抽出、類似文書の クラスタリングの結果を得ることができた。 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 62
63.
目次 1. はじめに 2. クローラーとは? 3.
自然言語処理とは? 4. 解析のための下準備 5. クローラーによるデータの取得 6. テキスト解析 7. おわりに 8. 付録 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 63
64.
参考文献 • 日本酒物語 日本酒ランキング(人数):
http://www.sakeno.com/followrank/ • MeCab: http://taku910.github.io/mecab/ • Anaconda: https://anaconda.org • sckit-learn: http://scikit-learn.org • Pandas: http://pandas.pydata.org • Jupyter notebook: http://jupyter.readthedocs.io/en/latest/index.html • サンプルコード: https://github.com/Salinger/found_it_project_06_crwl/blob/master/src/python _crawler_nlp.ipynb 2017/03/24 データ解析入門〜グラフ分析処理・スクレイピング〜 【FOUND IT PROJECTセミナー #6】 64
Editor's Notes
#2
本日は皆様お集まりいただき、誠にありがとうございます。それでは「〜」と題しまして、戸嶋が発表いたします。
#3
それでは自己紹介です。私は戸嶋龍哉ともうします。いま所属している会社はDATUM STUDIO株式会社というところで、現在はデータエンジニアとして〜。 著書として、共著ではありますが、データサイエンティスト要請読本 機械学習入門編と最近出たパーフェクトRという本がございます。
#4
それでは本日の内容についてご紹介致します。まず本日のセミナー概要をお話した後、クローラーと自然言語処理の基礎についてお話した後、実際にとあるサイトからデータをクロールし解析するまでの一連の流れをご紹介致します。
#5
ではまずセミナーの概要をお話致します。
#6
〜、〜、一応念のためですが、〜。
#7
そして、実際に作ったものはこのようなものになります。〜。〜。〜。〜。
#8
〜、〜。
#10
では 〜。 〜。
#11
つづいて〜。 〜。
#12
そもそもクローラーとはなんぞや ? という質問に対する答えは次のとおりです。〜。またスクレイピングという単語もありこれは 〜 を指します。これをクローリングと呼ぶ場合もあります。イメージはこのスライド下部の図のようになります。
#13
クローラーを作るメリットとしては次のようなものが挙げられます。まず〜です。これにより〜なります。また〜。弊社での実例として、Webのサイト合計8000サイトからとある情報を集めるクローラーを1日で作った例などがございます。次にデータの自動的な備蓄が可能になります。一定期間で自動更新されたり、消失してしまう情報を蓄えることが可能になるため、本来は困難であった長期間に渡る分析が可能になります。
#14
データ分析で用いられる基本的なクローラーシステムは次の図のような構成になります。クローラーは基本的に稼働させっぱなしになることが多いので、24時間稼働するサーバにのせて運用することが多いのですが、この管理を自社でやるよりは Azure や AWS のようなクラウドサービスを使うほうがお手軽です。この例では Microsoft の Azure を利用した場合になっていますが、Amazon の AWS や Google の GCPのようなクラウドサービス、またオンプレの環境いずれの場合でも基本的には同じです。図の左上から順に見ていくとインターネット上のコンテンツに、サーバー上で稼働するクローラーがアクセスし、結果として様々なテキスト情報、画像、動画などを取得してきます。取得してきた結果を適切な形に加工し、データベースに格納します。ここまでで、データの取得・加工が完了します。実際には集めたデータを様々な形で活用しますが、この例では集めたデータを BI ツールの Tableau を活用して、ユーザが Web ブラウザからグラフや表として確認できる形で提示しています。
#15
つぎは〜。 〜。
#16
次は自然言語処理についてのお話です。
#17
〜。
#18
〜。
#19
〜。
#20
〜。
#21
で、今回やるのは〜。