Google Colaboratoryで形態素解析 | MeCabとJanomeの使い方
当ページのリンクには広告が含まれています。
本記事では、Gllgle Colaboratoryで形態素解析を行う方法についてまとめます。
✓目次
形態素解析とは | 形態素解析の必要性
形態素解析とは、コンピュータを利用して機械的な方法で文を形態素(言葉で意味を持つ最小の単位)に区切る技術のことを言います。
我々の身近な言語としては、日本語、英語があります。
この2つの言語は、当然ですが、使用する言葉と文法が異なります。
例えば、日本語で「これはペンです。」という文は、英語だと「This is a pen.」です。
英語は、”This”, “is”, “a”, “pen”という風に、単語と単語の間に空白が存在しますが、日本語は単語と単語の間に空白が存在しません。
このように、単語と単語の間に空白を入れる書き方を分かち書きといいます。
そして、分かち書きされていない日本語の文章を機械に理解させるためには、単語分割を行うとともに品詞を明確にする必要があるのです。
なぜなら文章は、決められた文法法則に従い単語に付与されている品詞を並べて構成されているからです。
機械に対して、単語の意味、品詞、文法を理解させなければ意味を解釈させることもできなければ、文を作成させることもできません。
形態素解析ツール
「形態素解析、難しくね?」と思われたかもしれませんが、形態素解析をするためのツールが用意されています。
日本語の主な形態素解析ツールには以下のようなものがあります。
・ChaSen
・JUMAN
・Janome
本記事では、上記のツールの中でも広く使われているMeCabとJanomeの使用方法を紹介します。
形態素解析の実装 | MeCab
実装環境には、Google Colaboratoryを使用します。
ローカル環境で動かしてみたい方は、以下の記事に、Jupyter Notebookの実行環境を作る方法をまとめておりますので参照してください。
まずは、python3で動作するMeCabライブラリをインストールします。
Google colaboratoryのセルに、以下を入力し実行してください。
1 | !pip install mecab-python3 |
以下のような出力が得られたら成功です。
1 | Collecting mecab-python3 |
次に、辞書データとしてUniDicをインストールします。
UniDicは国立国語研究所が開発している辞書です。
以下を入力し実行してください。
1 | !pip install unidic |
以下のような出力が得られたら成功です。
1 | Collecting unidic |
更に、辞書データもダウンロードします。
以下のコードを実行しましょう。
1 | !python -m unidic download |
以下のような出力が得られたら成功です。
1 | download url: https://cotonoha-dic.s3-ap-northeast-1.amazonaws.com/unidic.zip |
本記事では、「私は形態素解析を学んでいます」という文章を解析します。
以下のコードで解析できます。
1 | import MeCab |
出力結果は以下の通りとなりました。
1 | 私 代名詞,,,,,,ワタクシ,私-代名詞,私,ワタクシ,私,ワタクシ,和,,,,,,,体,ワタクシ,ワタクシ,ワタクシ,ワタクシ,0,,,11345327978324480,41274 |
出力された内容を確認しましょう。出力される形態素解析の結果は、左から順に以下の通りとなります。
- 表層形(surface)(文章中で使用されている単語)
- 品詞(part_of_speech)
- 品詞細分類1〜3(part_of_speech)
- 活用型(infl_type)
- 活用形(infl_form)
- 原形(base_form)(文章中で使用されている単語の原形)
- 読み(reading)
- 発音(phonetic)
MeCabを用いて分かち書きをしたい場合
分かち書きをしたい場合は、Tagger()
オブジェクトの出力モードに('-Owakati')
を指定すればOKです。
('-Owakati')
を指定することで、品詞などを付与せず、形態素ごとに区切りの空白を入れることができます。
1 | import MeCab |
以下のように分かち書きされた文章が出力されます。
1 | 私 は 形態 素 解析 を 学ん で い ます 。 |
Tagger()
オブジェクトの出力モードには、以下も指定できます。
-Oyomi
: 読みのみを出力-Ochasen
: ChaSen互換形式-Odump
: 全ての情報を出力
実行したい処理に応じて使い分けましょう。
形態素解析の実装 | Janome
まずは、janomeをインストールしましょう。Google Colaboratoryのセルに以下を入力し実行すればOKです。
1 | !pip install janome |
以下のような出力が得られれば成功です。
1 | Collecting janome |
早速、janomeを使って形態素解析をしてみましょう。
以下のコードでjanomeを使った形態素解析を行うことができます。
1 | from janome.tokenizer import Tokenizer |
以下のような実行結果が得られます。
1 | 私 名詞,代名詞,一般,*,*,*,私,ワタシ,ワタシ |
出力された内容は、MeCabと同様に、左から順に以下の通りとなります。
- 表層形(surface)(文章中で使用されている単語)
- 品詞(part_of_speech)
- 品詞細分類1〜3(part_of_speech)
- 活用型(infl_type)
- 活用形(infl_form)
- 原形(base_form)(文章中で使用されている単語の原形)
- 読み(reading)
- 発音(phonetic)
Janomeを用いて分かち書きをしたい場合
Janomeで分かち書きをしたい場合は、tokenize()
メソッドの引数にwakati=True
を指定すると、分かち書きのみを行います。
以下のコードを実行してみましょう。
1 | from janome.tokenizer import Tokenizer |
以下のような出力が得られると思います。
1 | 私 |
まとめ
本記事では、「Google Colaboratoryで形態素解析 | MeCabとJanomeの使い方」というテーマでまとめました。
本記事を参考に、自然言語処理の世界を楽しんでいただけたらと思います。
参考にさせていただいた記事など
自然言語処理のオススメ教材
- 1,200円でプロの講師から自然言語処理技術が無期限で学べます。
自然言語処理とチャットボット: AIによる文章生成と会話エンジン開発
- 本格的にAIを学びたい人へ
以下の何れかに該当する方は、キカガクさんのオンラインスクールがおすすめです。まずは無料のカウンセリングに参加し、自分が目指すキャリアや身に着けたいスキルが学べるか、等確認してみてください。無料カウンセリング予約はこちら
・プログラミング初学者(Pythonで機械学習を学びたい方)
・機械学習を学び、キャリアに活かしたい方
・何かAIサービスを企画、開発したい方
・技術を身に着けて転職したい方
・E資格を取得したい方
- Aidemyのプレミアムプランもオススメ