Webスクレイピングと形態素解析を用いた単語の出現頻度分析:GiNZAによる形態素解析、BeautifulSoup、Selenium、requestによるスクレイピング、nltkによる出現頻度分析
1. はじめに
最近流行りのWebマーケティングに限らずマーケティングで、ターゲットとする業界でのホットワードやキーワードを調査することはよくあることだと思います。特に費用をかけずに始められる集客方法であるSEO(Search Engine Optimization:検索エンジン最適化)では、キーワードの出現頻度を知るのは基本中の基本となっています。出現頻度の上位に来るワードを採用してブログやページを作り込むのはSEOの基本的な方法になっていて、本文中に適切にそのワードを含めることが重要な方法となっています。一般的に、「キーワード出現頻度解析」は指定したWEBページのテキストを解析してWEBページに含まれるキーワードを抽出してくれるサービスです。この「キーワード出現頻度解析」で、狙ったキーワードが実際にどのくらいの頻度で使用されているのか把握しておくことが重要です。
しかし、そういったホットワードやキーワードを収集、出現頻度を解析するのは大変かつ時間がかかりますし、どうやって解析したらいいかわからないですよね。
私自身も調査対象の業界の最近のホットワードやキーワードを調べて、ビジネスチャンスの調査やInstagram、Twitter、ブログ、Youtubeの題材にしたいと思っていますが、調査が非常にめんどくさかったです。
一方、PythonではBeautifulSoup、Selenium、requestによるWebスクレイピング、GiNZAによる形態素解析、nltkによる出現頻度分析ができることがわかっています。
そこで、ホットワードやキーワードの収集して単語の出現頻度を評価することを上記のライブラリを用いてPythonコードで自動化させました。今回は、そのプログラムを紹介します。
2. 各ライブラリの使い方
2.1 requestとBeautifulSoupを用いたHTML情報の取得
2.2 seleniumを用いたHTMLデータから要素の取得
2.3 seleniumを用いた検索ワードに対するWebページのタイトルとURLの取得
2.4 GiNZAによる日本語の自然言語処理:形態素解析、文節分割、係り受け解析、固有表現抽出
2.5 nltkを用いた単語の出現頻度解析
3. 動作環境構築(pip install)
必要なパッケージをインストールします。以下のコマンドをコマンドプロンプトで実行してください。
pip install openpyxl selenium webdriver_manager ginza==4.0.5 ja-ginza nltk beautifulsoup4 matplotlib tqdm
4. Webスクレイピングと形態素解析を用いた単語の出現頻度分析を行うPythonコード
下記で示すPythonコードでは以下のことを行っています。
Seleniumを用いて検索ワードに関連するページのタイトルとURLを取得およびリストをExcel出力
requestを用いて各URLに接続してHTML情報の取得
BetifulSoupを用いてHTMLのbody部分(各ページの文字情報)の取得
GiNZAを用いて各ページの文字情報に対して形態素解析を行い、名詞の文字リストを作成
nltkを用いた出現頻度分析を行い、単語の出現頻度を表すグラフと単語と出現数のリストをExcel出力
それでは上記に示す機能を持つ、Pythonコードを以下に示します。
ここから先は
¥ 300
Amazonギフトカード5,000円分が当たる
この記事が気に入ったらチップで応援してみませんか?