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

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

MENU

【第2回】Mecabを用いた形態素解析

はじめに

自然言語処理(Natural Language Processing:NLP)は、人間の言語(自然言語)を機械で処理し、内容を抽出することです。自然言語処理には、形態素解析構文解析、意味解析、文脈解析などがあります。

 形態素解析の意味は以下の引用のようになります。

形態素解析とは、日頃使っている言葉(自然言語)を「形態素」(=意味を有する表現要素の最小単位)にまで分割し、それらが品詞としてどれに当たるのか分類する文字列抽出法のことです。

形態素の概念自体は、「単語」とよく似ています。しかし、単語ほど単体で取り扱えるものではありません。“意味を有する表現要素の最小単位”といっても実際は、明確に意味が存在しないものまで含まれます。

形態素解析とは?仕組みや主なツール、活用例など解説

 Pythonを用いて形態素解析をしようとすると、形態素解析用のライブラリであるMecabが必要になります。Mecabのインストール方法は以前の記事で紹介しています。

 本記事ではMecabを用いた形態素解析の手法、品詞に分かれた単語のリストの生成方法を紹介していきます。

 

1. Mecabを用いた形態素解析

形態素解析の流れとしては以下のようになります。

  1. テキストデータの用意(※requests & BeautifulSoup or Seleniumを用いてHTMLデータのを取得でもOK)
  2. Mecab.Tagger()でインスタンスを作り、mとする。(形態素解析するたの辞書を指定)
  3. m.parseでテキストを分解(形態素解析

それでは、上記の流れのコードを以下に記載します。

出力結果は以下の様になります。出力が300行ほどになるので、ここでは先頭から30単語に絞って表示します。

 

2. わかち書き

わかち書きとは文章などの語と語の間を空白を挟んで記述することです。わかち書きがわからない場合もあるかと思いますが、出力結果を見ればどういうものか理解できると思います。

それでは、わかち書きを行う例を以下に記載します。わかち書きを行う際には、MeCab.Tagger()の引数に'-Owakachi'を指定します。

出力結果は以下の様になります。品詞ごとに分かれており、品詞間にはスペースがあります。

 

3. 品詞のリスト作成

ここでわかち書きにより品詞ごとに単語が分かれたので、品詞のリストを作成してみようと思います。以下の例では、わかち書きを行って、.split()で文字列をスペースで区切って、カンマ区切りの品詞のリストを作成しています。

出力結果は以下の様になります。

 

4. 応用例

本記事で紹介した手法を用いることで、以下の記事のようにseleniumを用いて検索ワードに対する各ページのタイトルとURLを取得して、そのURLからrequestsとBeautifulSoupを用いてHTMLのテキストデータを取得し、mecabを用いてテキストデータに対して形態素解析ができるようになります。

chantastu.hatenablog.com

 

オススメ書籍

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

 

スキル修得&転職

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

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

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

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

 

おわりに

本記事ではMecabを用いた形態素解析の手法、品詞に分かれた単語のリストの生成方法を紹介しました。本記事で得られた結果を用いることで単語の出現頻度分析などができるようになり、重要なキーワードを取得することができるようになります。