収入UPの転職を目指す方へ

MeCab (めかぶ)とは?日本語の形態素解析をPythonでやってみた

  • 2024/07/22
what_is_mecab.jpg

ChatGPTをはじめ、AIの自然言語処理はますます進化を遂げています。本来コンピュータは計算機ですが、どのようにして文章を処理しているのでしょうか。今回は、日本語処理には欠かせない存在、MeCab(めかぶ)について解説します。

有村先生

MeCab(めかぶ)という可愛らしい名前ですが、コンピューターにとっては強力なツールなんです。

目次

Mecabとは?

MeCabとは、日本語の解析ツールで、AIなどが日本語などの言語(自然言語)を機械的に処理するために用いられます。数ある日本語解析システムの中でも、精度が高いことやPythonやR、C言語やJavaなどのプログラミング言語で利用しやすいことから、エンジニアから研究者まで、幅広い利用者の間で活用されています。

ちなみに、「めかぶ」という名前は、開発者の好物であるワカメの一部である「和布蕪(めかぶ)」に由来しています。

MeCabが行う形態素解析とは?

日本語の解析には、「形態素解析」という手法が使われています。形態素とは単語が意味を持つ最小の単位で、つまり形態素解析とは文章をできるだけ単語に分解することです。

英語に代表される多くの言語には単語間にスペースがあるため、文章から単語を抽出するのは簡単です。一方、日本語の場合は単語を区切るわかりやすい指標がありません。したがって、コンピューターが単語を抽出する難易度も高くなります。

例えば、以下の文章はどのように単語を区切ることができるでしょうか。

私は東京都に住んでいます。

日本語を使い慣れている人であれば、問題なく以下のように区切れるでしょう。

私/は/東京/都/に/住ん/で/い/ます/。

しかし、単純に区切る方法としては、「東京・都(とうきょうと)」だけでなく「東・京都(ひがしきょうと)」など、数多くのパターンがあり、一般的なコンピューターがその判別をすることは難しいのです。この難関をMeCabは、膨大な日本語データベースの辞書を利用して、確率モデルによって最も確率の高い区切り方をすることで乗り越えました。

mecab.png
Python上でのMeCabによる形態素解析の画像。自然な区切りができている。

MeCabの辞書とは?

MeCabが解析する際に活用している日本語データベースのことを「辞書」と呼びます。辞書にはいくつか種類がありますが、その中でも、最新のワードなどを含むIPA辞書と、古文まで豊富に含んだUnidicの2つが主流です。

形態素解析の活用方法・形態素解析を応用するには?

MeCabはいくつかのプログラミング言語に対応しており、PythonやR、C言語やJavaで利用することができます。MeCab本体と辞書をダウンロードし、ソースコードを実行することで簡単に使えます。

関連記事

【AI活用事例】業務を効率化してくれるAI(人工知能)とは?

文章を形態素解析することにより、単語の頻度などを特定することができるため、様々なことに応用することができます。例えば、以下のような使われ方が一般的です。

ワードクラウド

ワードクラウドとは、文章の特徴を図で可視化する手法のひとつです。形態素解析によって分解した単語の頻度などをもとに、文章がどのような内容なのかを図示することができます。実はこの記事の一番上にあるサムネイル画像は、本記事の文中のワードクラウドになっています。

クラスタリング

文章中の単語の頻度の割合を計算することにより、文章を特徴ごとにグループ化することができます。たとえば、迷惑メールの判定などに使われているのはこの手法です。迷惑メールに含まれる単語や文章の特徴を学習させることができれば、新たに受信したメールの判別を行うことも可能になります。

Webスクレイピング・APIを利用した分析

Web上のデータの多くは文字データで構成されています。Twitterの分析などに応用すれば、自社アカウントのフォロワーがどのような商品を必要としているのか、どのような層なのかなどを、自動で分析をするためにも形態素解析は役に立ちます。

関連記事

Webスクレイピングとは?Pythonを使って効率よく情報を集めよう!

進化を続ける自然言語処理

また新たな手法では、単語の特徴量をベクトルにする「Word2Vec」が注目されています。Word2Vecとは、単語を何次元ものベクトルに変換し、数値で表すことができる技術です。この技術の最大の特徴は、自然言語を数量的に扱うことができる点で、単語の類似度の計算はもちろん、単語を足し算したり、反対に単語を引き算することも可能です。Google検索をする際に、検索したワードに類似した単語がヒットするようにこの技術が使われてます。

PythonでMeCabを使う方法

ここからは、PythonでMeCabを使うための具体的な手順をご紹介します。
事前準備として、こちらのページの手順に従ってMeCabをインストールします。

形態素分析

手始めに文章の形態素分析を実行します。コードは以下のようになります。

import MeCab
A = MeCab.Tagger()
text = 'pythonでMeCabを初めて使ってみます'
result = A.parse(text)
print(result)

このコードを実行した結果、文章が品詞分解され、品詞や活用形などが表示されます。

品詞分解の結果。python、名詞、普通名詞、一般。で、助詞、格助詞。MeCab、名詞、普通名詞、一般。を、助詞、格助詞。初めて、副詞。使っ、動詞、一般、五段ワ行、連用形、促音便。て、助詞、接続助詞。み、動詞、非自立可能、上一段マ行、連用形、一般。ます、助動詞、終止形、一般。

ワードクラウド

次にワードクラウドを作成してみます。

事前に以下のコードを実行して日本語フォントをダウンロードします。

%%bash
sudo apt update
sudo apt install fonts-ipaexfont

こうすることでワードクラウドを作成する際に日本語が文字化けするのを防ぎます。

夏目漱石の『吾輩は猫である』の第一節を例として品詞分解し、名詞、形容詞、動詞を抽出して格納するコードを書きます。

import MeCab
from wordcloud import WordCloud

text = "吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで始めて人間というものを見た。しかもあとで聞くとそれは書生という人間中で一番獰悪な種族であったそうだ。この書生というのは時々我々を捕えて煮て食うという話である。しかしその当時は何という考もなかったから別段恐しいとも思わなかった。ただ彼の掌に載せられてスーと持ち上げられた時何だかフワフワした感じがあったばかりである。掌の上で少し落ちついて書生の顔を見たのがいわゆる人間というものの見始であろう。この時妙なものだと思った感じが今でも残っている。第一毛をもって装飾されべきはずの顔がつるつるしてまるで薬缶だ。その後猫にもだいぶ逢ったがこんな片輪には一度も出会わした事がない。のみならず顔の真中があまりに突起している。そうしてその穴の中から時々ぷうぷうと煙を吹く。どうも咽せぽくて実に弱った。これが人間の飲む煙草というものである事はようやくこの頃知った。"
mecab = MeCab.Tagger('-r/etc/mecabrc -Ochasen') #Chasenを使う。

node = mecab.parseToNode(text)
output = []

while node:
word_type = node.feature.split(",")[0]
if word_type in ["名詞","形容詞","動詞"]:
if not node.surface.isdigit():
output.append(node.surface.upper())
node = node.next

最後に、ダウンロードしたフォントを指定し、ワードクラウドの保存先などを設定して作成します。

text = ' '.join(output)

#ダウンロードした日本語フォントのパスを貼り付ける
fpath = "/usr/share/fonts/opentype/ipaexfont-gothic/ipaexg.ttf"
wordcloud = WordCloud(background_color="white", font_path=fpath, width=800,height=600).generate(text)

wordcloud.to_file("/content/sample_data/sample_wordcloud.png")

すると指定した保存先(contentファイルの中の、sample_dataファイルの中)に、以下の画像が出来上がります。

ワードクラウドの完成図。人間、書生、もの、我輩、顔、猫、などの単語がぎっしりと詰まっている。

おわりに

普段何気なく話している日本語が、コンピューターでどのように機械処理をされているのか、お分かりいただけたでしょうか。MeCabなどの形態素解析の技術は、身近なところで利用されています。

インターネット・アカデミーでは、MeCabを利用できるプログラミング言語の「Python講座」や、実際に自然言語処置ができる「AI(ディープラーニング)講座」をご用意しています。興味のある方はぜひ、無料カウンセリングにお越しください。

AIプログラミングを実践

AIエンジニア育成コース

「AIエンジニア育成コース」では、AIの歴史やAIが得意なことや苦手な事、ビジネスにおける活用事例などの基礎知識はもちろん、Pythonを使ったAIプログラミングの実践を行います。

Web・ITのスキルをつけて副業・就転職・キャリアアップを成功させたい方へ
1995年開校のリーディングスクールインターネット・アカデミー

自分にぴったりのコースが見つかる

日本初のインターネット専門校、インターネット・アカデミーでは、Web・ITのスキルを身につけて、自分が望むキャリアを手に入れたいという方に向けて、多彩なコースとサポートをご用意しています。

Webデザインを学びたい方

プログラミングを学びたい方

自宅でも校舎でも!自分のペースとスタイルで学べる

毎回好きな受講形式を選んで学習することができるので、働きながらじっくり通いたい方も短期間での就職を目指す方も自分の都合に合わせて、スケジュールを組むことができます。

  • ライブ授業

    現役のプロインストラクター
    と仲間と学ぶメリット

    ライブ授業
  • マンツーマン授業

    インストラクターと
    1対1という贅沢

    マンツーマン授業
  • オンデマンド授業

    いつでも学びたいことを
    学べる

    オンデマンド授業

自分に適した学習方法を探す

インターネット・アカデミーでは、無料カウンセリングを毎日開催しています。デザインやプログラミングの体験ができるのはもちろん、実際の授業に参加したり、就職や転職のご相談、通学スケジュールのご相談なども承っております。

  • ご要望をお伺い

    ご要望をお伺い

    まずはお客様のご要望をお伺いし、お一人おひとりの目的や悩みに最適な内容にカスタマイズ。お客様専用の内容で当日ご案内いたします。

  • カウンセリング

    カウンセリング

    就職や転職、在宅で働きたいなど、お客様の希望を叶えるために専任のスタッフが最適な学習プランをご提案。現在の仕事のご相談なども承ります。

  • 体験レッスン

    体験レッスン

    「自分に向いている分野は?」「自分にできる?」そんな疑問を解決するレッスンを無料で体験。デザインもプログラミングもお試しいただけます。

無料体験レッスン・個別相談のご予約

当日ご希望の方やお急ぎの方は、フリーダイヤルにてご予約いただけます。

0120-746-555 フリーダイヤル受付時間(平日・土日) 10時-21時 オンライン予約

相談してコースを選びたい方はカウンセラーに無料で相談

カウンセラーに無料で相談

※無理な勧誘は一切ありません

無料で相談してみる