自然言語処理とは? 仕組み、ビジネス事例を解説

2020年08月12日

iPhoneでアラームを設定したいとしましょう。Siriに命令して、明日のアラームを設定するように言います。するとSiriが「何時に?」と尋ねてくるので、午前九時を指定します。これでアラームが設定されました。

この短いやり取りの中で、ユーザーはデバイスを起動し、デバイスはユーザーの話を聞いて処理し、行動を起こし、文章で反応しました。こうしたやり取りはすべて、自然言語処理のおかげで可能になりました。自然言語処理は、人間の発話を処理するあらゆる機械やプログラムの能力を支えています。SiriやAlexaのような、その存在がわかりやすいAIアシスタントやチャットボットを、陰で支えているのです。

 

自然言語処理とは

自然言語処理とは、話しかけられた言葉に気付き、意味を理解し、適切な行動を決定し、ユーザーが理解できる言語で反応する機械の能力の総称です。

自然言語処理の一分野として、自然言語理解があります。自然言語理解は、ベーシックな構文だけに留まるのではなく、意図された意味を理解しようとします。人間の発話にはニュアンスや微妙な意味、発音ミス、口語表現などがちりばめられており、自然言語理解は、こうした人間の複雑な発話に対応するように設計されています。言語処理における主要な研究分野の一つは、自然言語処理から自然言語理解への移行です。自然言語理解は、非構造化インプットをどのようにうまく処理して、機械が理解して行動できる構造化された形へ変換するかという、はるかに狭い分野を取り扱います。

自然言語生成は機械が書くものです。上の例で言えば、「何時に?」というSiriの返答が、自然言語生成に当たります。

 

自然言語処理の流れ

自然言語処理は、次のような流れで実行されます。

まず、形態素解析を用いて、文章を単語などの最小単位(形態素)に切り分けます。形態素解析とは、テキストデータを「意味を持つ最小限の単位(単語)」に分解し、文章やフレーズの内容を判断するために用いる技術です。

次に、データクレンジングを用いて、不要な文字列を取り除きます。Bag of words  などを用いて、形態素解析を行ったデータをベクトルの形式に変換する。Bag of words とは、文書中に出現する単語を数え、その数を特徴とする方法です。文書における出現順序は考慮されないので、シンプルな表現です。

最後に、tf-idf (term frequency – inverse document frequency) などを用いて、各単語の重要度を評価する。tf-idf は文書における単語の出現率を考慮する方法で、主に情報検索トピック分析などの分野で用いられます。

Siriのアラームの例で、ユーザー側から見てみましょう。簡単に説明しますと、以下のようになります。

① ユーザーはSiriにアラームを設定するように頼む。Siriはユーザーの発話(音声データ)をテキストへ変換する。
② Siriは自然言語処理(テキストを構造化されたデータへ変える)を使用し、プレーンテキストのリクエストを、自身へのコマンドへ変換する。
③ 続いてSiriは、このデータを意思決定エンジンへと処理する。
④ Siriは自然言語生成(構造化されたデータをテキストへ変える)を使用し、「何時に?」というような「返答を書く」。
⑤ ユーザーは「午前九時」と指定し、Siriはそれを再び自然言語処理を通して意思決定エンジンへと処理する。
⑥ Siriはアラームを設定する。

 

自然言語処理に関する用語

ここまで、自然言語処理を解説していく中で用語の説明を入れていきましたが、まだ触れていないも簡単に説明します。自然言語処理の用語を後ほども解説していきますので、ぜひ最後まで読んで頂けると幸いです。

構成解析

形態素解析を元にして、その形態素間の構文的関係を解析すること。

照応解析

照応詞の指示対象、省略された名刺を推定・補完すること。

談話解析文章中の文と文の関係や、話題の推移を明らかにすること。
文脈解析複数の文章に形態素解析と意味解析を行い、文同士の関係性を解析すること。
LSTM (Long Short Term Memory) 時間的に長期の依存関係をモデル化しようとしたニューラルネット。RNNの中間層のユニットをLSTM blockと呼ばれるメモリと3つのゲートを持つブロックに置き換えることで実現される。
Word2vec単語をベクトルとして表現し、意味の近さや、次に示す「計算のアナロジー」を行えるようにするための仕組み。
skipgram入力された単語の周辺語を予測するというダミータスクを解く過程において獲得される、単語のベクトル表現。
CBOW周辺の単語を与えてある単語を予測する、word2vecの手法。
主成分分析データから主成分という新たなデータを求める、線形な次元削減の手法。詳しくは、こちらの記事を御覧ください。
次元圧縮データの情報を失わないようにデータを低い次元に圧縮する手法。例えば、身長と体重をBMIと表し、2次元から1次元の次元削減する。
Latent Dirichlet Allocation(潜在的ディリクレ配分法)文中の単語から、何のトピックかを推定する教師なし学習法。ディリクレ分布が用いられる。各単語が「隠れたあるトピック」から生成されているものとし、そのトピックを推定する。
Latent Semantic Indexing(潜在意味解析)文章ベクトルにおいて、複数の文書に共通に現れる単語を解析することによって、低次元の潜在意味区間を構成する方法。特異値分解が用いられる。
n-gram法語と語の繋がりを判別する言語モデル。

 

形態素解析

形態素解析とは、自然言語を形態素(言葉が意味を持つ単語の最小単位)にまで分割する技術であり、英語ではmorphological analysisといいます。自然言語処理の他にも、Googleなどの検索エンジンやスマートニュースのニュースアプリなどにも活用されています。日本語を形態素解析できるツールでは「MeCab」というオープンソースの形態素解析エンジンや、京都大学大学院情報学研究科知能情報学専攻の黒橋・河原研究室が開発した形態素解析ツール「juman」があります。また「Janome」はpythonで形態素解析を実装できるツールです。Pythonを用いた形態素解析について詳しくは、こちらのQiita記事も御覧ください。英語の形態素解析は「TreeTagger」や「Polyglot」というPythonの自然言語解析モジュールがあります。

 

word2vec

自然言語処理の定番となっているword2vecは、名前の通り、単語をベクトル化する手法です。

「Word2vecは、 単語の埋め込みを生成するために使用される一連のモデル群である。 これらのモデルは、単語の言語コンテキストを再構築するように訓練された浅い2層ニューラルネットワークであり、大きなコーパスを受け取って一つのベクトル空間を生成する」Wikipediaより

Gensimというpythonのフリーライブラリを使うと、簡単にword2vecを使うことができます。Pythonでのword2vecの使い方について詳しくは、こちらの記事もご覧ください。

 

word2vecのCBoWとskip gram について

word2vecでは、CBoW(continuous bag-of-words)およびskip gramという二つのモデル構造のいずれかを使用し、単語の分散表現を生成します。まず、CBoWとは周囲のコンテキスト単語から現在の単語を予測するモデルであり、コンテキスト単語の順序は問われません。逆にskip gramはある特定の単語を使用し、周囲のコンテキスト単語を予測します。その単語に近ければ近いほど、コンテキスト単語の重みを大きくします。1つの中間層(隠れ層)をを持つニューラルネットワークで、重みを判定することを目的として学習させていきます。

 

自然言語処理における意味解析

自然言語処理における意味解析とは、単語の意味を利用し、正しい文を解析することです。意味解析には2つの目的があります。1つ目は複数の意味のある単語の意味を文中の他の単語との意味的整合性から決定することで、2つ目は依存関係を示す種々の表層j表現からその深層の意味関係を決定すること。日本語の意味解析のツールでいいますと、日本語文の語の意味と、語と語の間の深層関係を正確に計算する「意味解析システムSAGE」や、文章を入力すると、形態素解析、係り受け解析、意味解析を行う「日本語意味解析ツールAYA」などがあります。

 

自然言語処理向けのデータアノテーション

どうすれば自然言語処理ができるのでしょうか。データを分解して整理する方法を、以下にいくつか挙げていきます。以下のようにしてプログラムを訓練し、その自然言語処理能力を高めるのです。

 

固有表現抽出

固有表現抽出は、非構造化データから「情報のユニット」を抽出して、構造化することを指します。こうしたユニットには、人々や組織、場所の名前、固有未意思が含まれることがあります。時間や日付、お金、百分率といった数字表現の特定に使うこともできます。

 

意味的アノテーション

意味的アノテーションは検索結果の評価に役立ちます。企業は基本的に、検索エンジンでお客様が自社の製品を見つけてくれるようにするために、検索の関連性を向上させる方法を探しているものです。問題は、製品説明の大半が情報ソースによって大きく異なり、正確でない場合もたびたびあることです。意味的アノテーションは、異なる製品タイトルと検索クエリをタグ付けするので、検索結果の向上に役立ちます。当社はある製品にどのカテゴリーが最適かを予想するのに役立つデータセットを構築できます。最適なカテゴリーがわかれば、eコマースのプロセスと製品分類がより容易で迅速になると共に、間違いを減らすことができます。

 

言語的アノテーション

言語的アノテーションは、センテンスの主題を評価することを指します。幅の広いジャンルですが、SNSデータの感情分析であれ、決まり切った質問に答えるのに自然言語処理を使うことであれ、基本的にテキストの分析に関わることすべてです。当社が擁する言語の専門家と翻訳者は、発話の一部分のタグ付けや音声分析も含めた多様なサービスをご提供しています。当社の100万人を超える翻訳者は、300言語に堪能です。

 

自然言語処理のビジネス事例

自然言語処理には、以下のような様々なビジネス事例があります。

  1. AIアシスタント: SiriやAlexaのようなスマートスピーカーです。
  2. チャットボット: チャットボットは本物の会話を真似るため、自然言語処理に大きく依存します。
  3. 感情分析: 自然言語処理は、文章のトーンを見極めるのに使われる。SNS上で自社製品がどのように受け止められているか知りたい企業にとって、非常に役に立ちます。
  4. 医療: 自然言語処理は医療に大きな意味を持つ。ヘルスケアアシスタント(Siriに似ているが、医学用語の学習をさせられた機械)や画像分類(医療スキャンの「理解」)などの活用事例があります。
  5. 顧客サービス: 多くの企業は、顧客サポートなどの電話を録音し、書き起こして分析しています。自然言語処理は、そのようなデータを分析してより迅速に顧客のニーズに対応することに役立ちます。

 

自然言語処理の最新技術や研究分野

自然言語処理の中にも、多くの研究分野があり、新しい技術は次々と開発されています。

  • セマンティックウェブ:  情報リソースに意味を付与することで、コンピュータで高度な意味処理を実現する研究。
  • 意味ネットワーク: 単語同士の意味関係をネットワークによって表現する研究。
  • 統計的自然言語処理: 言語処理に確率論的あるいは統計学的手法を用いる技術。
  • Transformerモデル: CNNやRNNを使わずに、アノテーション機構のみでベンチマークデータセットにおける質疑応答などのタスクにて、従来よりも高い精度が達成可能なことを示しました。OpenAIのGPT、ELMo、GoogleのBERTなどは、Transformerを活用しています。

 

Lionbridgeの自然言語処理サービス

自然言語処理モデルを学習させる教師データをお探しでしたら、お気軽にご連絡ください。当社はAI学習データの収集、アノテーション、検証などのサービスを提供しております。世界の各タイムゾーンを渡る、100万人の認定コントリビューターが登録されているので、大規模なAIプロジェクトも素早く仕上げることができます。テキスト、画像、音声等、様々なデータタイプに300言語で対応可能です。

こちらからお問い合わせください。

自然言語処理向けの学習データを提供いたします

メディア掲載結果

    AI・機械学習の最新情報をお届けします!

    Lionbridge AIのブログで紹介している事例記事やトレンドニュースといったビジネスに役立つ情報はもちろん、オープンデータセット集なども合わせてメール配信しております。