Pythonコード集

【Python】スクレイピング で効率よく記事を読もう!その2

 

Cさん
Pythonを使えば、効率よく記事を読めることはわかりました
FRB
でもねぇ、記事の内容は良さそうなんだけど、長すぎて読む気がしない記事があるんですよね

 

前回の記事では、Pythonのスクレイピング を活用して、効率よく必要な記事だけを読むコツについてお話しました。

関連記事【Python】スクレイピング で効率よく記事を読もう!その1

続きを見る

 

しかし、良い記事ほど文章が長くなる傾向があります。

それだけ多くの情報量が詰まっているからです。

 

いくら有益な情報が載っているとはいえ、長ったらしい記事のすべてに目をとおすのは現実的ではありません。

特に、このブログを読んでくださっている忙しいビジネスパーソンのみなさんならなおさらです。

 

なので今回はー

  • Pythonで記事を要約する方法
  • Pythonで記事の中にあるキーワードをピックアップする方法

について解説します。

 

なお、前回の記事でも指摘しましたが、要約は日本語ではうまく機能しません。

なので、今回は英語のニュースを対象とします。

 

この記事を読んでわかること

わかること

  • PythonでWeb上の情報を得る方法
  • Pythonで記事の中にあるキーワードをピックアップする方法
  • Pythonで記事の内容を要約する方法

 

この記事の対象となる人

こんな人におすすめ

  • プログラミング言語『Python』に興味がある人
  • Pythonを使って効率的に情報を得たい人
  • 必要な情報だけをピックアップしたい人

 

結論からいいます

  • Pythonを使えば効率的に情報を得ることができる
  • スクレイピングを使えば記事を読む前に主旨をイメージできる
  • スクレイピング を使えば情報の収集に無駄な時間を使うことがなくなる

 

情報取集の基本『スクレイピング』

スクレイピングとは?

まずは復習です。

Pythonを使って、Web上にあるデータを取得する方法を『スクレイピング』といいます。

スクレイピングとはー

  • Web上にあるデータを取得すること
  • 取得した情報をスプレッドシートやデータベースに格納したり編集したりすること

スクレイピングを使えば、WEB上に存在するあらゆるデータを取得することができます。

 

しかし注意すべきこともあります。
スクレイピングを学ぶ前に、この点についてはしっかりと覚えておいてください。

注意すべきこと

  • Webサイトによってはアクセスを制限していることがある
  • アクセスの頻度によっては違法な攻撃として法的に処罰されてしまう可能性がある

 

実践!Pythonでスクレイピング

世の中には、色々な記事が流れています。

その中には、今の自分にとって有益な記事があります。

しかし、『これは長いだろ!』とうんざりする記事に出くわすことがあります。

 

そんな時に役立つのが、Pythonのスクレイピング で記事を『要約』することです。

以下では、Pythonで記事を要約する方法について解説します。

 

ロイター通信の記事を要約してみよう!

前回は、経済情報を発信している米大手メディア『ブルームバーグ』から複数の記事のデータを一気に取得しました。

今回は、ブルームバーグと同じく経済情報を発信している大手メディア『ロイター通信』から記事をひとつピックアップして、その記事を要約してみます。

 

今回取り上げる記事は以下です。

  • Investors eye shares of hotels, cruise lines as U.S. vaccinations pick up
    (米国のコロナワクチン接種が増えていることから投資家はホテルやクルーズ関連の株に注目している)

 

まずはPythonのコードから。

Pythonのコード例1

from newspaper import Article

url='https://www.reuters.com/article/us-usa-stocks-weekahead/investors-eye-shares-of-hotels-cruise-lines-as-u-s-vaccinations-pick-up-idUSKBN2AC2DQ'

article = Article(url)
article.download()
article.parse()


import nltk

nltk.download('punkt')

article.nlp()
article.keywords
article.summary

article.text
article.summary.replace('\n','')

 

上のコードを実行すると以下の結果がでます。

実行結果:記事の全文

記事の全文

実行結果:記事の要約

記事の要約

全文と要約を比べてみると、分量が全然違うことがわかります。

要約はたったの7行です。

これなら、時間のないビジネスパーソンでも、この記事が言わんとしていることを簡単に知ることができます。

また、これはジェイの経験ですが、言わんとしていることが先に分かれば、全文を読むスピードが早くなります。

つまり要約はー

時間を節約する手段

になり得るというわけです。

 

次はコードの説明です。

コードの説明

1:記事のデータを読み込むためのライブラリには、前回とおなじく『newspaper3k』を使います

 

from newspaper import Article

 

なお、前回の記事でもふれましたが、newspaper3kはインストールが必要です。

  • pipを利用してインストールする場合は、以下のコマンドを入力

pip install newspaper3k

  • condaを利用してインストールする場合は、以下のコマンドを入力

conda install -c conda-forge newspaper3k


2:情報を取得するサイトのURLを指定します

ここではロイター通信が配信している記事のURLを変数『url』に入れます

 

url='https://www.reuters.com/article/us-usa-stocks-weekahead/investors-eye-shares-of-hotels-cruise-lines-as-u-s-vaccinations-pick-up-idUSKBN2AC2DQ'

 


3:最後の仕上げに、取得した記事の全文と要約された文章を表示するコードを書きます

# newspaper3kにロイター記事のデータをわたす
article = Article(url)

#記事データのダウンロード
article.download()

#記事データの解析
article.parse()



#記事の全文を表示する
article.text.replace('\n','')

#記事の要約を表示する
article.summary.replace('\n','')

書いたコードは、トータルでたったの10行ちょっとです。

たったこれだけのことをするだけで、あれほど長い英文が一瞬で要約されました。

 

英語の勉強にも役立つスクレイピング

今回、Pythonのスクレイピング を使って要約のブログ記事を書いた目的は2つあります。

ひとつは、スクレイピング を使えば効率よく情報を集めることが出来ることを説明するためです。

 

そしてもうひとつはー

スクレイピング の要約は英語の学びにも役立つ

ということを知ってもらうためです。

 

これからの時代、英語の重要性はますます高まっていくでしょう。

米国株(アメリカ株)の投資をしているなら、なおさら英語で情報を集めることが求められます。

Pythonのスクレイピング で長い英文を要約すれば、その記事の言わんとしていることが簡単にイメージできます。

言わんとしていることが前もってイメージできれば、全文の理解度が高まるでしょう。

それを繰り返していくと、英文のリーディングが楽しくなります。

リーディングが楽しむことができれば、いろんな英文を読もうという意欲がわいてきます。

意欲がわけば、さらにリーディングが楽しくなります。

 

この記事に出会ったのも何かの縁です。

スクレイピング を活用して英語を楽しく学んでみることをおすすめします!

 

キーワードをピックアップすることもできる!

さて、要約した記事を読む時間すらない!という人もいるかと思います。

そんな方には、『キーワード』をピックアップすることをおすすめします。

 

どうやって記事のキーワードをピックアップするのか?

実際にコードをみてみましょう!

Pythonのコード例2

#必要なライブラリのインポート
from newspaper import Article
import nltk

#ロイター記事のURLを取得
url='https://www.reuters.com/article/us-usa-stocks-weekahead/investors-eye-shares-of-hotels-cruise-lines-as-u-s-vaccinations-pick-up-idUSKBN2AC2DQ'

#記事の内容を変数articleに入れる
article = Article(url)

#記事のダウンロード
article.download()

#記事の解析
article.parse()



#Pythonで自然言語処理をするためのコード
nltk.download('punkt')

#自然言語処理を実行するコード
article.nlp()

#記事の中のキーワードをピックアップ
article.keywords



 

コード例1と違うのは、以下の2点です。

追加したコード

  • 新たに『nltk』ライブラリをインポート
  • 一番最後に『article.keywords』を記述

 

たった2つのコードを追加するだけで、以下の結果が表示されました。

実行結果:キーワード検索

記事のキーワード

全部で17のキーワードがピックアップされました。

 

タイトルを確認したあとに、上のキーワードを順に見ていくとー

コロナワクチンとレジャーセクターや株価について書かれた記事

だという当たりをつけることができます。

 

また、『marriott』という有名なホテル名や『shares / sector / investors / eye / earnings』というキーワードを見るとー

  • レジャーセクターの中でもホテル業界の業績回復と株価に注目している投資家がいる

ということが、要約すら読まなくても、記事の内容をある程度予想できるのです。

ちなみにキーワード検索で表示されたマリオットホテル(Mar)は、今週18日に第4四半期の決算を発表します。

 

このようにキーワードから当たりをつけることに慣れていけば、より効率よく情報を集めることができるでしょう!


 

必要な情報は保存しておくこと

情報を集める→保存する

今回は『newspaper3k』で、ロイター通信の記事をスクレイピング しました。

しかし、情報は集めるだけでは意味がありません。

情報は、使って初めてその効果を発揮するからです。

情報を使うためには、情報をデータとして保存しておく必要があります。

そうすることで、いつでもどこでも情報を引き出して分析できるからです。

 

よって、次回の記事では、Pythonのスクレイピング で取得した情報を保存する方法について解説します。

乞うご期待!

 

まとめ

まとめ

  • Pythonのスクレイピング を使えば記事を簡単に要約できる
  • Pythonのスクレイピング を使えばキーワードをピックアップできる
  • 要約やキーワードから記事の内容を推測できれば効率よく情報を集めることができる
  • Pythonのスクレイピング は英語の学びにも役立つ

注記事項

ジェイの米国株投資ブログ(以下当サイト)に掲載されている記事は、投資の助言を目的としたものではありません。当サイトに掲載されたコンテンツの正確性については、可能な限り注意を払っています。しかし、意図せず誤情報が紛れ込む可能性や情報そのものが古くなっている可能性があり、その正確性を完全に保証するものではありません。
当サイトのコンテンツを参考に投資を行い、その後発生したいかなる結果についても、当サイト並びにブログ運営者は一切責任を負いません。すべての投資行動は『自己責任の原則』のもとで行ってください

 

最後に

Pythonを学びたい方へ

今やPythonは、マーケットの分析に限らず、あらゆる分野で使われているプログラミング言語です。

Pythonを学んでおけば株式の投資に役立つだけでなく、これからのキャリアを形成する上でも力強い武器となるでしょう。

『私もPythonを学んでみたい!』

という人は以下のリンク先をご覧ください。

プログラミングを学ぼう

 

なぜプログラミングを学ぶ必要があるのか?その理由がわかります。

そして、ジェイが四苦八苦しながら『これがPythonを効率的に学ぶ方法だ!』と考えることをまとめた内容となっています。

この記事と出会ったのも何かの縁です。
ぜひチャレンジしてみてください!

 

-Pythonコード集