形態素解析とは何か?使われている分野や仕組みなどをわかりやすく解説!
こんにちは!
現役Webエンジニアの今井(@ima_maru)です。
今回は、人の言葉を理解するための「自然言語処理」という分野の技術を紹介します。
その名も「形態素解析」です。
この技術は、Googleなどの検索エンジンやAmazonのAlexaなどの製品にも使われていて、自然言語処理の中で重要な役割を担っています。
そんな「形態素解析」について概要から仕組みまでを解説しようと思います。
- 形態素解析とは
- 形態素解析は何に使われている?
- 形態素解析の仕組み
- 形態素解析エンジンやAPI
- まとめ
それでは解説していきます。
形態素解析とは?
形態素解析とは、文章を「形態素」(意味を持つ単語の最小単位)ごとに区切り、品詞情報を解析する技術です。
簡単に言ってしまえば、文章における各単語の意味付けをするというイメージです。
具体例を出すとわかりやすいと思うので、以下の文章を形態素解析してみましょう。
「私はプログラミングスクールでAIの勉強をします」
この文章を形態素解析すると、以下のようになります。
「私(名詞)/は(助詞)/プログラミングスクール(名詞)/で(助詞)/AI(名詞)/の(助詞)/勉強(名詞)/を(助詞)/し(動詞)/ます(助動詞)」
これで形態素解析が完了です。これらの一つ一つの単語が「形態素」という基本単位になります。
このように、文章を形態素に区切ってそれらの品詞情報を解析することを「形態素解析」と呼ぶのです。
ちなみに、日本語の品詞には、下記のようなものがあります。
品詞 | 説明 | |
---|---|---|
名詞 | 物事の名称。体言とも。 | 山、本、私 |
動詞 | 物事の動作・作用・存在を表す。 | 見る、読む、寝る |
形容詞 | 物事の性質や状態を表す。「い」で終わる。 | 美しい、難しい |
形容動詞 | 物事の性質や状態を表す。「だ」で終わる。 | 綺麗だ、静かだ |
助詞 | 関係を表したり意味を付け加えたりする。 | を、が、と |
助動詞 | 意味を付け加える。使役・推定・過去など。 | させる、らしい、だ |
副詞 | 他の言葉を修飾する語。疑問・願望・たとえなど。 | なぜ~の、どうか~ください |
連体詞 | 名詞を修飾する。 | この、大きな、いわゆる |
接続詞 | 前後の文をつなぐ。 | それで、しかし、または |
感動詞 | 感動・呼びかけ・応答などを表す。 | ああ、やあ、いや |
日本語の場合、これらの品詞情報等を解析するということですね。
形態素解析は何に使われている?
形態素解析がどんなものか分かったところで、実際にどのような場面で使われている技術なのかを知りたいところですよね。
ここでは、実際に今、形態素解析がどのようなサービスで使われているかを見ていきます。
Googleなどの検索エンジン
形態素解析は、Googleなどの検索エンジンで使われています。
具体的に言えば、検索ワードに対して形態素解析を用いた処理をしています。
例えば「最新のプログラミング言語の人気ランキング」で検索した場合、「最新」「の」「プログラミング言語」「の」「人気」「ランキング」というように、個別の単語に分けて検索を行っているということです。
さらに「の」は助詞なので、省くことができます。つまり、
- 入力ワード「最新のプログラミング言語の人気ランキング」
- 検索ワード「最新」「プログラミング言語」「人気」「ランキング」(AND検索等)
このように形態素解析を用いて検索を行なっているのです。
以下の記事は、検索エンジンの仕組みについて解説されていてとてもわかりやすいですので、是非参考にしてみてください。
スマートニュース
形態素解析は、ニュースサイトである「スマートニュース」でも使われています。
具体的に言えば、見えやすいような見出しの改行位置を決めるために使われています。
以下の記事で詳しく解説されているので興味のある方は読んでみてください。
自然言語処理
形態素解析は、人間の文章を理解するためのAI技術である「自然言語処理」でも活用されています。
自然言語処理は、の代表的な使い道は下記の通りです。
- 文章分類
- 系列ラベリング
- 文章補完
- 翻訳
- 音声認識/音声合成
- 画像キャプショニング
近年自然言語処理でできることの範囲が広がってきていますが、その大元の技術として形態素解析があります。
日本語での自然言語処理を行う場合、処理したい文章を「形態素解析」「構文解析」「意味解析」「文脈解析」のように様々な尺度で解析を行い、コンピュータが自然言語処理の意味を理解していきます。
その際日本語では形態素解析が出来ることが重要となります。
なぜなら日本語は英語とは異なり、文章がどこで区切れるか分かりにくいからです。
例えば英語の場合「My name is Taro」という文章があれば、My/name/is/Taroという風に区切れるのは一目瞭然です。
しかし日本語で「私は太郎です」という文章があった場合、文章がどこで区切れるか判別するのは英語より大変です。
Alexaなどのスマートスピーカー
形態素解析は、AmazonのAlexaやGoogleのGoogle Homeなどのスマートスピーカーで使われています。
例えば、「アレクサ、電気をつけて」というと、「アレクサ」「電気」「を」「つけ」「て」というふうに形態素解析をすることができます。
こちらは音声認識機能とセットで活用されており、音声を認識し、それを文字列に変換した後に形態素解析を行っています。
形態素解析エンジンやAPIなどを紹介!
ここからは形態素解析エンジンやAPI等を紹介していきます。
形態素解析は、日本語と英語でルールが異なります。
それぞれ、日本語と英語に適したツールが公開されているので紹介していきます。
MeCab(日本語)
「MeCab」はオープンソースの日本語の形態素解析エンジンです。
ちなみに読み方は(めかぶ)です。
特徴は、コーパスという言語や辞書やデータベース化言語資料に依存せずに集計を行えるや使用可能な言語がC、C#、C++、Java、Perl、Python、Ruby、Rなどたくさんあることです。
辞書との連結も行うことができるため、日本語の形態素解析エンジンの中では最も人気なエンジンとなっています。
JUMAN(日本語)
JUMANは京都大学が開発した形態素解析ツールです。
jumanの特徴としては、日本語の文字コードであるUTF-8に対応していることや、WEBテキストから自動獲得された辞書、Wikipediaから抽出された辞書を使用できることなどが挙げられます。
そしてMeCabよりも単語の意味の分類を細かく実施します。
そのおかげで解析した単語などをカテゴリなどで分けて集計する際に便利なツールです。
JANOME(日本語)
JanomeはPurePythonで書かれている形態素解析ツールです。
Janomeもjumanと同じく、辞書が初めから入っています。
そしてJanomeは気軽にアプリケーションに組み込めるようにするため、シンプルなAPIの機能を備えられることを目指して開発されています。
他にも形態素解析に使える様々なツールがありますが、今回は3つの主要な日本語の形態素解析ツールを紹介しました。
目的やプログラミング言語に応じて、それぞれ使い分けると良いです。
続いて英語を形態素解析する際に使用するツールを紹介していきます。
TREE TAGGER(英語)
英語の形態素解析ツールとしては有名なのが「Tree Tagger」です。
Tree Taggerの特徴としては以下のようなことが挙げられます。
- 英語だけではなく、フランス語、スペイン語、ドイツ語などの様々な言語に対応しているエンジンである
- OSを選ばず、「Windows」「Mac」「Linux」などの環境で使用することができる。
NLTK(英語)
英語を形態素解析するためのもう一つのツールが「NLTK」です。
NLTKとはNatural Language Took Kitの略称で、Python用のライブラリです。
NLTKは形態素解析だけではなく、品詞のタグ付や構文解析、または意味解析などが簡単にできるのが特徴です。
つまり文章を様々な尺度で分析しやすいのです。
また、NLTKは文字列を対象としたデータマイニングである、テキストマイニングにも利用できます。
まとめ
今回は自然言語処理のベースとなる技術である形態素解析について紹介しました。
形態素解析とは、文章の意味を解析するために、文章の語句を最小単位に区切る技術のことでした。
日本語は文章がどこで途切れるか分かりにくいので、日本語に対しての自然言語処理において非常に重要な役割を担っています。
形態素解析の応用例としては、Googleの検索エンジンや、AIによる自然言語処理、スマートスピーカーなどがあります。
形態素解析を知っていると自然言語処理について理解が深まると同時に、普段使う検索エンジンなどもより便利に活用することができるようになるかもしれません。
ぜひエンジンやAPIを活用してより深く理解したり、検索エンジンの便利な検索方法をマスターしたりして活用してみてください。
以上「形態素解析とは?仕組みからわかりやすく解説!」でした!
最後までご覧いただきありがとうございます。