今回は、最近ホットワードの自然言語処理の中でも、自然言語処理の一過程である「形態素解析」について、基礎から丁寧に解説します!
また、形態素解析が実際に何に使われているのか、さらに形態素解析をするためのおすすめツールを日本語用と英語用にわけて紹介します。
ぜひ最後まで読んで、形態素解析とはなにかを理解してください!
公開日:2018年1月9日
形態素解析とは?応用例も交えてわかりやすく解説!
まず「形態素解析」という言葉とはどんな意味なのか、わかりやすく解説します。
形態素解析とは、私たちが普段生活の中で一般的に使っている言葉、つまり「自然言語」を形態素にまで分割する技術のことです。
形態素とは、言葉が意味を持つまとまりの単語の最小単位のことです。
例えば、「私は台所で料理します」という文章を形態素解析すると「私(代名詞)/は(副助詞)/台所(名詞)/で(助詞)/料理(名詞)/し(動詞)/ます(助動詞)」というように言葉を分割していきます。
このように形態素解析をして最小単位になった単語を、辞書などの情報と照らし合わせ、それらの単語の品詞の種類、活用形の種類などを割り出していきます。
形態素解析の応用例①検索エンジン
この形態素解析という技術は、インターネットの検索エンジンなどにも使用されています。
Googleなどの検索エンジンの場合、検索フォームに入力されたキーワードはそのまま処理されるのではなく、形態素解析によって最小単位にまで分割されます。
この分割によって検索に必要のない単語を省くことができ、余分なデータ処理をしないですみます。
例えば、検索フォームに「渋谷でランチ」と入力した場合、まず形態素解析の働きによって「渋谷/で/ランチ」と分割されます。
そして検索に必要のない助詞である「で」は省かれて検索されます。
このような手法によって、検索フォームに入力された余分な助詞、助動詞などを省くことができ、検索の精度が上がるうえ、データ処理の量を少なくすることができるのです。
形態素解析の応用例②AIの自然言語処理
また、形態素解析はAI(人工知能)の自然言語処理の過程でも使用されています。
コンピューターであるAIに、あいまいな表現などが多い自然言語を、プログラムを組んで処理してもらう場合、「自然言語処理」という特別な処理が必要になります。
日本語での自然言語処理を行う場合、処理してほしい文章を「形態素解析」「構文解析」「意味解析」「文脈解析」というようにさまざまな解析を行い、やっとコンピューターが自然言語の意味を処理できるようになるのです。
日本語での自然言語処理をする時、単語を最小単位にまで分割できる形態素解析の機能はとても重要です。
なお、自然言語処理についてより詳しく知りたい人は別記事の「自然言語処理とは?スマートスピーカーにも使われている技術をわかりやすく解説!」がおすすめです。
またAI(人工知能)についてより知りたい人は「人工知能(AI)とは?具体例を交えて初心者にもわかりやすく解説!」がおすすめです。
形態素解析の応用例③スマートニュース(SMARTNEWS)
形態素解析の技術はニュースアプリ「スマートニュース(SmartNews)」にも活用されています。
スマートニュースとは政治、スポーツ、経済、食品などさまざまなジャンルのニュースが読めるニュースアプリです。
日本だけではなく世界各国でもダウンロードされている人気アプリです。
そして、形態素解析はスマートニュースの画面上タイトルの文字組みに活用されています。
文字組みとは文字と文字の間などを調整し、ユーザーが読みやすいように文字を配置していく作業のことです。
スマートニュースでは、見出しであるタイトルの基本形が形態素解析されることによって、次に読む改行の位置が工夫され、読みやすい文字組みを可能にしているのです。
\文字より動画で学びたいあなたへ/
Udemyで講座を探す >日本語を形態素解析できる3つのツール
では、具体的にどうやって形態素解析を進めていくのでしょうか?
形態素解析は、日本語と英語でルールが異なります。
既に、それぞれに適したツールが、公開されていますので、まずは日本語の情報を形態素解析できるおすすめしたい3つのツールを紹介します。
日本語を形態素解析①:MECAB
「MeCab」はオープンソースの日本語の形態素解析エンジンです。
言語や辞書、またデータベース化された言語資料であるコーパスに依存しない、汎用的な設計がMeCabの特徴です。
ちなみに、名前の由来は「和布蕪(めかぶ)」から来ています。
MeCabで使用できる言語はC、C#、C++、Java、Perl、Python、Ruby、Rとたくさんあります。
また、さまざまな辞書と連結させることもできるため、日本語の形態素解析エンジンの中では最も良く使われています。
日本語を形態素解析②:JUMAN
京都大学大学院情報学研究科知能情報学専攻の黒橋・河原研究室が開発した形態素解析ツールが「juman」です。
jumanの特徴として挙げられるのは、文字コードであるUTF-8に対応している点、またWEBテキストから自動獲得された辞書、Wikipediaから抽出された辞書を使用できる点です。
なお、jumanは同じ形態素解析ツールであるMeCabよりも単語の意味分類を細かく実施します。
解析した単語をカテゴリなどで分けて集計することも可能なツールです。
日本語を形態素解析③:JANOME
「Janome」は、PurePythonで書かれている形態素解析ツールです。
ちなみに、名前の由来は「蛇の目」から来ています。
Janomeもjumanと同じように、辞書がはじめから内包されています
内包辞書は2017年12月10日現在mecab-ipadic-2.7.0-20070801といったデータが使用されています。
そして、Janomeは気軽にアプリケーションに組み込めるようにするため、シンプルなAPIの機能を備えられることを目指しています。
ほかにも様々なツールがありますが、ここでは主要な3つの日本語を形態素解析できるツールを紹介しました。
用途や使用できるプログラミング言語によって、ご自身に合うものを探してみてください。
英語を形態素解析できる2つのツール
最後に、英語を形態素解析できる使用する際におすすめの2つのツールをわかりやすく解説します。
英語を形態素解析①:TREE TAGGER
英語の形態素解析ができるツールとして有名なのは「Tree Tagger」です。
Tree Taggerは英語だけではなくドイツ語、フランス語、スペイン語など様々な言語に対応しています。
また、Tree TaggerはWindows、Mac、Linuxどの環境でも使用することができます。
またPythonからTree Taggerを使用することも可能です。
そしてTree Taggerを使用して単語を分類した時に品詞コードが表示されます。
表示される品詞コードの日本語訳の一覧はこちらで確認できます。
英語を形態素解析②:NLTK
英語を形態素解析できるもう一つのツールで紹介したいのが「NLTK」です。
NLTKとはNatural Language Tool Kitの略称で、Python用ライブラリになります。
NLTKは、品詞のタグ付けに構文解析、また意味解析などが簡単にできるのが大きな特徴です。
また、NLTKは文字列を対象としたデータマイニングであるテキストマイニングにも利用できます。
日本語、英語の形態素解析ができるツールをこれまで解説してきましたが、使用できるプログラミング言語はPythonが多いです。
よって、自然言語処理を学びたい人にとって、Pythonの知識が非常に重要となります。
【初心者向け】自然言語処理をPythonで学ぼう!形態素解析、tf-idf、WordVec、Doc2Vecを実装!
自然言語処理の基本を理解!livedoorニュースの記事を元にPythonでMeCabを使った形態素解析を行い、tf-idfやWord2VecやDoc2Vecなどのアプローチで記事をベクトル化しCOS類似度を求めていこう!
\無料でプレビューをチェック!/
講座を見てみる評価:★★★★★
取得したかったNLPのスキルが効率よく取得できた
また、OpenAIのAPIを使ってエンベッディングする方法も解説していてよかったです
評価:★★★★★
超簡潔かつ必要十分でわかりやすいです。はまりました。
最新情報・キャンペーン情報発信中