人工知能(1)自然言語処理

こんにちは。はじめまして。
アドバンストサービス部の村松です。

私はAIエンジニアとして、AIを用いた実証実験やサービス提案・開発を行っています。
そこで今回から、AIを用いた各種手法はどのように行われているのか、簡単にですが説明しようと思います。
ここで説明することは、手法の概要のみとします。興味を持たれた方は用語等で検索して知見を深めてみてください。
では今回は初回として、自然言語処理の文章認識について取り上げていきます。

自然言語

自然言語とは、音声や文字といった私たちが日常使用している言語のことをいいます。
これら自然言語を数値やベクトルといったコンピュータで処理のしやすい形に変換することで、それを用いて類義語を検索したり翻訳を行ったりと様々なことができるようになります。
自然言語を理解することはAI完全問題とも呼ばれ、非常に難しいことです。これから手法の一例を紹介します。

データ準備

AIで学習させる文章データを集めます。しかし、データを集めるのは非常に大変です。
クローラを作ってネット上からデータを集める場合は、相手のサーバへの負荷などにも気をつけなければなりません。

そこで事前検証として、用意されたデータのまとまり(コーパス)を用いて実現可能性を確かめてみることがよくあります。
有名なコーパスとして、Wikipediaの全文データや青空文庫の公開全データなどがあり、無料で使用することができます。とりあえずAIを動かしてみたいという人にもおすすめです。

文章解析

データが準備できたら次はデータを整形します。
まずは準備したデータから、タグや記号など不要なものを除き、必要な文章だけを取り出します。
コーパス毎にデータの保存方法が異なるため、除去する手法はそれぞれ考える必要があります。

次に形態素解析を行います。
英語の文章はスペースで区切られていますが、日本語の文章は連続しています。
そこで、「形態素」という意味をもっている最小単位に区切る必要があります。

その後に、文字毎の関連を調べる『構文解析』や、代名詞や指示詞などの指示対象を調べる『照応解析』などをやりたいことに応じて行います。

ベクトル化

ついに文章をベクトル化(学習)します。ベクトルにすることで近い意味の言葉を探したり、単語を足したり引いたりできるようになります。
単語の意味をベクトル化する『word2vec』や文章をベクトル化する『doc2vec』などの手法があります。このようにベクトル化したもの(モデル)がAIの正体です。

ここまで読んでいただきありがとうございました。
今回は私が今仕事で自然言語処理を扱っていたため、いきなり自然言語処理について書きました。
次回は気になったテーマを見つけて書いていこうと思います。