Pythonによるデータ分析・機械学習ブログ

Pythonによるデータの前処理・グラフ化、機械学習、統計解析、画像処理、Webスクレイピング、自然言語処理の基礎について紹介していきます。

MENU

【第3回】nltkを用いた単語の出現頻度解析

はじめに

 近年、テキストマイニングが注目されています。テキストマイニングの意味は以下の引用のようになります。

大量の文章データ(テキストデータ)から、有益な情報を取り出すことを総称してテキストマイニングと呼びます。自然言語解析の手法を使って、文章を単語(名詞、動詞、形容詞等)に分割し、それらの出現頻度や相関関係を分析することで有益な情報を抽出します。
ビッグデータの活用においても、テキストマイニングは非常に重要な要素となります。ビッグデータ解析の対象となるデータは数値などの形であらわされる比較的取扱いの簡単な「構造化・定量データ」、数値に表すことのできない感覚的な側面を持つ、「非構造化・定性データ」に大別されます

テキストマイニングとは|自然言語処理技術を活用して高精度な分析を可能とする「コトバ」に強い日本発AIソリューションTRAINA/トレイナ

 前記事では自然言語処理の一つである形態素解析Mecabを用いて行いました。そこでは形態素解析により品詞ごとに分かれた単語のリストを生成しました。この単語リストを用いることで単語の出現頻度を分析することができます。単語の出現頻度を分析の活用例ですが、例えばWebページの単語出現頻度分析を行うことで、Webページでよく使用される単語を知ることができ、SEO対策の支援をしてくれます。

 出現頻度解析を行うPythonのライブラリはnltk(Natural Language Toolkit)です。

 本記事では、自然言語処理で得た品詞のリストからnltkを用いて品詞単語の出現頻度解析を行い、グラフ化する手法を紹介します。

 

1. ライブラリのインストール

nltkは以下のコマンドでインストールできます。

 

2. 品詞のリストの取得

seleniumを用いてWebページからHTMLのテキストデータを取得し、Mecabを用いて形態素解析を行って品詞の単語のリストを取得する方法は以下の記事で紹介しています。

chantastu.hatenablog.com

品詞の単語のリストを取得するコードは以下の様になります。

 

3. 単語の出現頻度解析

単語の出現頻度を解析する関数はnltk.FreqDist()であり、引数に単語のリストを渡します。さらに、単語と出現回数を出力する関数はnltk.FreqDist.most_commonであり、引数に数値Nを渡すことで、上位N個の単語と出現回数のタプルをリストで得ることができます。

実際に取得してみましょう。以下では上位10個の単語と出現回数のタプルを取得します。

出力結果は以下の様になります。上位10個の単語と出現回数のタプルのリストを取得することができましたね。

 

4. 出現頻度の可視化(グラフ化)

単語と出現頻度のデータが取得できたので、そのデータを可視化したいと思います。グラフ化にはnltk.FreqDist.plotを用います。以下がグラフ化のコードとなります。

出力結果は以下の様になります。横軸が品詞の単語、縦軸が出現回数のグラフが取得できました。

5. 応用例

本記事で紹介した手法を用いることで、mecabを用いてテキストデータに対して形態素解析して、nltkを用いて出現頻度解析ができるようになります。

chantastu.hatenablog.com

 

オススメ書籍

テキストマイニングのオススメの書籍は以下です。サンプルコードが付いており、テキストマイニングの説明で理解しながら、実践的なコードで学ぶことができます。

 

スキル修得&転職

 近年、DXの進展に伴うデジタル人材の需要の高まりに追いついていない状況が続いていると経済産業省がホームページで記載している通り、DX人材、IT人材が不足しているのが現状です。さらにコンピュータの性能向上やAI技術の発展により、よりDX人材、IT人材の需要が高まってきます。さらには、今後の長期間安定して職がある業種とも考えられます。

以下の求人では、IT業界の転職や、IT未経験だけどIT人材を志望する就活を支援してくれます。無料で会員登録もできるので、まずは登録だけでもして様子を見てみてはいかがでしょうか?

▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼

▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲

 

おわりに

 本記事では、自然言語処理で得た品詞のリストからnltkを用いて品詞単語の出現頻度解析を行い、グラフ化する手法を紹介しました。これにより、重要なキーワードの取得などができるようになりました。ブログを書く方はWebページで出現頻度解析を行うことでSEO対策をすることができるようになります。

 自然言語処理テキストマイニングの組み合わせ手法は重要な流れなので、ぜひ覚えて使いこなせるようになりましょう。