Google Homeはどのように音声を認識しているのか

AI・機械学習

2017/12/04

AI・機械学習

2017年10月、家庭用音声AIアシスタントである「Amazon Echo」や「Google Home」が日本にも上陸して、ニュースになりました。

本記事では、これらの製品を支える技術の1つ、「自然言語処理」について解説していきます。

自然言語処理を全く知らない人でも理解できるように解説していますので、ぜひ最後まで読んで自然言語処理の概要を掴んでください。

自然言語処理とは?活用例と手順も紹介!

まず、前提として、自然言語とは、私たちが日常で書いたり話したりして使う、日本語や英語などの言語を指します。

そして、自然言語処理とは、自然言語を処理する技術や学術分野の総称です。なお、今回取りあげる言語は、日本語のみとします。

自然言語処理では、はじめに、処理したいテキストを単語に分割する前処理が必要となります。

単語に分割するためには、文章を形態素に分割していきます。形態素とは、一文の中で意味をもつ最小の表現要素の単位のことです。

文は、名詞や動詞、形容詞のような自立語と、助動詞、助詞のように異なる品詞の言葉と組み合わさって文節を作る付属語で構成されています。異なる品詞が組み合わさっている文節は、更に品詞単位に分割します。

自然言語処理のイメージ

このようにして、自然言語処理の前処理が完了となります。

なお、コンピュータで処理するには、形態素解析ソフトを利用します。現在主流のソフトはMeCabです。

続いて、自然言語処理の活用例や行う手順について、詳しく紹介していきます。

 

自然言語処理の活用例は?

自然言語処理の応用範囲は広く、日常の様々な分野で利用されています。

身近なところでは、GoogleやYahooの検索エンジンによる検索や、Google翻訳やBaiduオンライン翻訳などの機械翻訳、Microsoft Office WordやSmartNewsなどの要約文の自動生成、AppleのSiriやGoogleEcho、NTTドコモの「しゃべってコンシェル」の音声認識・合成などに自然言語処理の技術が使われています。

自然言語処理が使われている音声アシスタント

自然言語処理で利用するモデルや手法は年々進化しており、近年では潜在的な情報を抽出する技術としてトピックモデル(統計モデルの一つ)が注目を集めています。

Pythonのライブラリgensimはこのモデルのライブラリです。

また、前処理に利用する辞書はNEologdが人気です。

 

自然言語処理を行う手順について

自然言語処理は、(1)形態素解析→(2)構文解析→(3)意味解析→(4)文脈解析の順で行われます。

ここでは、具体例をもとに、(1)~(4)を説明しましょう。

 

◆例◆
”太郎は花子が好きだ”

(1)形態素解析:意味をもつ最小の表現要素の単位に分割し、品詞等を判別

形態素解析

 

(2)構文解析:形態素をもとに、文の構造を明確にする

構文解析

 

(3)意味解析:構文をもとに、意味をもつまとまりを判別

意味解析

 

(4)文脈解析:文単位で構造や意味を考える

文脈解析

この具体例では、どのフェーズの解析難易度もあまり変わらないように思えます。

しかし実際は、(1)形態素解析 から(2)構文解析 の解析難易度が、他のフェーズよりもずっと難しいのです。

これは文の解釈には曖昧性が伴うためです。

例えば、3通りに解釈できる「白い表紙の新しい本」という文は、それだけでは形態素解析をしても文字列同士の関係がわからず、正しい文意がわかりません。

このため、コンピュータがこの曖昧性に惑わされず正しく文章を解析するための手法や技術の研究が進められています。

 

自然言語処理と組み合わせるPython

自然言語処理とPythonを組み合わせると、データの収集を自動化できたり、情報の解析が簡単にできます。

Python text isolated on white background

具体的には、データから特徴語の抽出や類似文書のクラスタリングをした結果を得たりすることができます。

これにより、例えば全国の名水リストのサイトから自動でデータを収集してきて、人気のある水とその取水地の一覧や、購入者の評価を利用して似た味の水を一覧にしてみることができます。

手順としては、(1)クローラーの作成、(2)データのあるサイトからデータを収集、(3)テキスト解析を行う、(4)分析結果を得る、になります。

Pythonについては「Pythonとは?何に使えるの?Pythonの特徴や使い道を詳しく解説!」で解説していますので、詳しくはそちらをご覧ください。

 

人工知能(AI)による機械学習と自然言語処理の可能性

自然言語処理は、多分野と関係を持ちやすい境界領域な分野にあります。

様々な研究分野の成果を取り入れるとともに、別の様々な研究分野で応用され、成果を上げています。

近年ではトマス・ミコロフ氏らのニューラルネットワークモデル「Word2Vec」が、飛躍的な精度の向上を見せており、意味解析、文書分類、機械翻訳など様々な分野での応用が期待されています。

ところで、AIが機械学習により高度な自然言語処理を行うことができたら、どんなことが起こるのでしょうか。

AIによる自然言語処理が完璧に近いものになれば、人がAIを教育するには、データ入力ではなく、教える内容を話して伝えれば済むでしょう。

AI同士が打ち合わせをする日がくるかも

近い将来、AI同士で打合せをして仕事を片付けてくれるようにもなるかもしれません。

もっとも、2017年7月、Facebookで交渉訓練中の2体のAIチャットボットが、突然人間に理解できない独自言語を作り出し、その言語で互いにコミュニケーションを取り始めたことから、開発チームは急遽AIの機械学習プログラムを強制終了させたことがありました。

このニュースは、シンギュラリティ到来後の暗い方のシナリオを人々に思い起こさせたのも記憶に新しいところではあります。

機械学習については「機械学習とは?ディープラーニングとの違い&必ず知っておきたいDQNとは?」で解説していますので、詳しくはそちらをご覧ください。

 

いかがでしたか?

自然言語処理とは何かお分かりいただけましたか?

udemyでは、初心者でも自然言語処理について学習できる動画講座を用意しています。

ぜひ受講して、自然言語処理について理解を深めてください。

 

AI・機械学習初心者が必ず受講しておくべき講座

AIとは何かを理解し、機械学習と数学の基礎を理解

分類・パターン認識からSVM、交差検証や過学習など機械学習に必要なあらゆるスキルが身に付く!

TensorFlowの環境構築から学べる、ディープラーニングの学習におすすめの講座

  • シェア
  • ツイート
  • Poket
  • はてなブックマーク
  • フォロー
  • シェア
  • ツイート
  • Poket
  • はてなブックマーク
  • フォロー

関連記事