AIに「ことば」を理解させたい(3)
(前回までの記事はこちら)
★ AIに「ことば」を理解させたい(1)
★ AIに「ことば」を理解させたい(2)
前回は、AIで「ことば」を分析するための数値化する手法の例をご紹介しました。
今回はその中でも、日本語の文章を扱う場合に必要な前処理である「単語の分割処理」についてお話しします。
- 目次
日本語はそのままでは数値化できない
前回『AIに「ことば」を理解させたい(2)』の最後でも少しお話ししましたが、日本語の前処理は、他の言語よりも少し複雑です。その理由を、以下2つの例文を用いて考えてみましょう。
①「This is a pen.」
②「これはペンです。」
文章①「This is a pen.」のように、基本的に単語が空白で区切られている英語などの言語の場合、どこからどこまでが一つの単語なのかをコンピュータに識別させるのは難しくはありません。
一方、文章②「これはペンです。」のような日本語の場合は、文章中の単語が空白などで明確に区切られていません。そのため、文章を一文字ずつ解析し、どこからどこまでが一つの単語なのかを調べる必要があり、その分手間がかかるんです。
なお、上記のように、意味を持つ最小単位である形態素に分ける技術は「形態素解析」と呼ばれています。また、形態素解析の結果を活用して、文章を単語ごとに区切って表記することを「分かち書き」といいます。(例:「これ は ペン です 。」)自然言語処理をしているとよく目にする言葉なので、この機会に一緒に覚えておいてくださいね。
形態素解析ツールの紹介
形態素解析を自力で行うのは大変ですが、幸いなことに、日本語の形態素解析ツールが公開されています。その中でも、今回は「MeCab」(http://taku910.github.io/mecab/)をご紹介します。
前節の文章②「これはペンです。」をMeCabで解析すると、以下のような解析結果を得ることができます。
これ 名詞,代名詞,一般,*,*,*,これ,コレ,コレ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
ペン 名詞,一般,*,*,*,*,ペン,ペン,ペン
です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
。 記号,句点,*,*,*,*,。,。,。
続いて、「これは鉛筆ではありません。」という文章ではどうでしょうか。
これ 名詞,代名詞,一般,*,*,*,これ,コレ,コレ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
鉛筆 名詞,一般,*,*,*,*,鉛筆,エンピツ,エンピツ
で 助詞,格助詞,一般,*,*,*,で,デ,デ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
あり 動詞,自立,*,*,五段・ラ行,連用形,ある,アリ,アリ
ませ 助動詞,*,*,*,特殊・マス,未然形,ます,マセ,マセ
ん 助動詞,*,*,*,不変化型,基本形,ん,ン,ン
。 記号,句点,*,*,*,*,。,。,。
上記のように、品詞の解析結果、漢字の読み方、動詞の変形などにも対応しています。
MeCab以外の形態素解析ツールには、ChaSen(http://chasen-legacy.osdn.jp/)などがあります。
辞書に単語を追加する
MeCabの形態素解析は、MeCab内の辞書に基づいて行われているため、辞書に載っていない単語が含まれている場合、うまく解析できない可能性があります。
もちろん、日々増加していく単語に対応して辞書も更新版が提供されています。しかし、社内用語や業界用語などの新しい単語は、公開されている辞書には登録されていない可能性がありえます。
このようなケースに対応するため、MeCabには、使用者が辞書に単語を追加できる機能もあります。
まとめ
今回は、日本語の文章をAIで扱うために必要な「単語の分割処理(=分かち書き)」と、それを行うための形態素解析ツールについてご紹介しましたが、いかがでしたか? ぜひ、アンケートや商品レビュー、エントリーシートの分析などに活かしてみてくださいね。
最後までお読みいただき、ありがとうございました。