「自然言語処理」の基礎から応用まで、全体像をサクッと学びたいあなた、こちらはいかがでしょうか。ディープラーニングもあります

Introduction to natural language processing recommended book おすすめ

わたしたちは普段、「言語」をやりとりすることで他人と「コミュニケーション」しています。

人類は進化の過程で、日本語、英語、ドイツ語、フランス語・・・など多くの言語を生み出してきました。

人類の進化の過程で生まれてきた日常の言語のことを「自然言語」と呼びます。

(ちなみに、コンピュータなどで使うプログラミング言語は「人工言語」と呼びます)

 

ヒトが進化してきた原動力には、「自然言語」があります。

また、近年話題の人工知能では、自然言語をコンピュータに理解させようという「自然言語処理」の研究が盛んです。

でも

  • 自然言語処理ってなに?

って思われる方もおられるかと思います。

そこで本記事では、自然言語処理がどういうものかをサクッと理解できるようにまとめました。

本記事の概要

自然言語が果している、3つの役割とは?

私たちは生まれてから成長するにつれて、

「自然と」言葉を覚えますし、

自然言語を使うことで、日々様々な活動を行うことができます。

少し小難しい言い方になりますが、

自然言語ってなんのために発達してきたの?って考えてみると、

3つの役割があるように思います。

①、自然言語によって「思考」をクリアにする

②、自然言語は「コミュニケーション」を可能にする

③、人類は自然言語をつかって、「英知を記述・蓄積し、文明を発展」させる

①では個人の範囲での自然言語の利用です。

②では個人同士の相互作用に自然言語が役立っています。

さらに、個人の総体である社会や文明の発展にも自然言語が欠かせないわけです。

これらをみてみると、自然言語は私たちにとってとても重要だということがわかります。

そして逆にいえば、「自然言語を調べることで、人類について理解できる」のではないでしょうか。

すこし大げさな言い方になったかもしれませんが、じつはそうでもないかもしれません。

なぜかというと、近年人工知能の開発が盛り上がっていますが、

人工知能に「人間らしさ」を付け加えるときに、

「自然言語」を使わせるのは必須といっても過言ではないからです。

自然言語は人類の英知の結晶です。

ヒトを限りなく模倣する人工知能には、自然言語を扱う能力が不可欠だからです。

ちなみに現在の人工知能は、たとえばスマホに話しかけると、

話しかけた内容に応じた答えを返してくれたりします。

これは、「ボット」や「チャットボット」などと呼ばれています。

チャットボットはほんの一例ですが、

人工知能などコンピュータに自然言語を処理させる学問は、

自然言語処理(Natural Language Processing: NLP)

と呼ばれています。

  • へぇ~、自然言語って重要なんだなぁ~
  • でも、自然言語処理って遠い話の気がするなぁ
  • 私たちの生活に関係あるの?

って思われる方もおられるかもしれません。

じつは、自然言語処理は私たちの生活にも密接に関わっているんです!

私たちに関係する自然言語処理、注目の3分野とは?

自然言語処理は、言語のあるところでどこでも応用できるので、さまざまな分野があります。

その中で、近年の人工知能ブームなどもあり、

以下の3つは特に注目分野ではないでしょうか。

①.情報を検索するための「情報検索システム

②.コンピュータに翻訳させる「機械翻訳

③、スマホに搭載されてる会話アプリなどの「対話システム

 

これらはどれもその名前が示す通りの機能を実現するためのものです。

わかりやすいですよね。

すでに現在もありますが、さらに改良していくことで、社会へのインパクトがとても大きいことがわかるかと思います。

このように自然言語処理は、今度ますます重要な分野です。

 

  • よし!自然言語処理を学んでみたい!
  • 自然言語処理をつかって、なにか面白いものを作ってみたいなぁ~
  • ネット上の口コミを自然言語処理したらビジネスに活かせないかな!?

など思われるかもしれません。

でも、自然言語処理にはどうやってるの?って思いますよね。

 

自然言語処理、4つの基本方法とは?

自然言語というと、わたしたちが朝起きて会話をすればそれも自然言語ですし、テレビでアナウンサーがしゃべってるニュースも自然言語です。

ネットをみれば、ブログやツイッターの書き込みも自然言語です。

このように、自然言語はいたるところにあります。

では、これをどうやって処理するのでしょうか?

ざっくりとですが、4つの基本方法があります。

①、形態素解析

まず、自然言語をそのまま理解するのではなく、バラバラの部品に分解してから理解しよう!と考えます。

自然言語データを、たとえば文章であれば、単語に分割します。そして各部品である各単語の品詞を認識したり、品詞の活用を特定したりします。他に固有名詞や人名などがあればそれも認識します。

これを「形態素解析」や「固有名解析」と呼んでいます。

これは例えば、ある企業を知りたかったら、そこの社員を1人1人調べていけばいいんじゃない?というイメージです。

 

②、構文解析

次に、バラバラにした「単語同士の関係」を調べます。

(①の続き)その企業をより知るためには、社員同士のつながりも調べるといいんじゃない?と考えます。AさんとBさんは上司と部下の関係、BさんとCさんは同僚、CさんとDさんは親戚、といった感じです。これによってその企業の構造がわかります。

自然言語処理でも同じように、各単語同士の関係を明らかにします。これによって、「文の構造」がわかります。

このように1つの文の中の単語同士の関係を理解することを「構文解析」と呼びます。

 

③、意味解析

自然言語には違う文中の単語にもつながりや関係があることがあります。このように「文をまたがる単語同士のつながり」を理解するステップがあります。これを実現する方法を「意味解析(照応・省略解析)」と呼びます。

(②に引き続き)これを例えると、その企業を知りたかったら、その企業の社員と別の企業の人の関係も調べるといいんじゃない?と考えます。調べたい企業のDさんは取引先のEさんの担当とか、Fさんは別の企業のGさんと同級生とか、Hさんは別会社Iの社長の息子さん・・・といった感じです。これによって、その企業内だけの構造に、社外の人との関係情報が加わります。これによってさらに深くその企業を理解できるわけです。

 

④、文脈解析

自然言語にはさらに「文同士や節同士の意味的つながり」もあります。これは単語同士でなく、文や節という大きな塊同士のつながりの解析になります。これを理解するのが「文脈解析(談話構造解析)」です。

(③に引き続き)これを例えると、個人同士の単位でなく、個人が集まった企業同士の単位のつながりも調べたらいいんじゃない?というイメージです。調べたい企業の取引先企業にはJ, L, M・・・社がある、とか、O, P, Q, Rなどの子会社がある、とかそういう感じです。これによってその企業の全体の中での役割などお理解しやすくなります。

 

このように、解析手法が①から④へ進むほど、

(より高度というか抽象的というか)より広範にわたる関係性を調べていることがわかります。

 

ちなみに、国語の入試問題を想像してもらうとわかるのですが、

①から④まで、いずれも入試問題で問われる内容になっています。

つまり人間でも難しい問題なので、コンピュータや人工知能にそれを実現させようというのは、

とてもチャレンジングな課題だとわかっていただけるかと思います。

そしてだからこそとても面白い分野とも言えます。

 

とはいっても、自然言語には独特の難しさがあるんです。

たとえば「言葉の使い方」はその社会の中で決まりますし、

「言葉の意味」も文脈によって変わってきます。

つまり言語は、使われる環境や場面などの影響で様々な顔をもちます。

これらをコンピュータで処理するのがとても難しいのです。

  • うわ~たしかに難しそうだ~
  • 人間でも間違うことがあるのに、コンピュータにやらせるなんて無理じゃない??
  • なんか解決策ってあるの?

って思われるかもしれません。

こういった問題には、「言葉の複雑さ」「多様さ」「曖昧さ」をコンピュータに処理させることが必要です。

じつはインターネットの発達によって、これらが実現できるようになってきたんです!

自然言語処理は、ネット上のデータを有効活用して発達しています

自然言語処理の研究は、インターネットの普及によって転換点を迎えました。

なぜかというと、ネット上には膨大なテキスト文章が生成されているので、

それらを収集し処理するのは、コンピュータ上で比較的容易に、かつ、高速にできるからです。

つまり自然言語処理の試行錯誤をするための材料が増え、かつ、試行錯誤繰り返すスピードと効率も上がったので、研究スピードが加速したわけです。

研究っていうと、自分には関係ないかも~

って思われるかもしれません。

でもこれ、少し考えてみると、ネット上のデータって基本的に誰でも取得できますよね。

なので、自然言語処理の手法を学べば、

自然言語処理は「誰でもやってみることができる」環境になっているわけなんです。

  • え!そうなの!
  • たしかに誰でもできそう!
  • 自然言語処理をやってみよう!

って思う半面、

  • 自然言語処理ってむずかしそう~
  • どう、自然言語処理を勉強したらいいんだろう!?
  • なにに応用したら役に立つかなぁ~

なんて不安に思いますよね~

でもだいじょうぶです!

自分に適切な本を選ぶことで、スムーズに理解することができるからです。

初心者の方は、まず全体像をサクッとつかむのが早道です。

全体像がわかれば、次は必要な手法を1つ1つ身につけていけばオッケーです。

さらに応用を見据えて勉強すれば効率もやる気もアップしますよね!

というわけで、

  • 自然言語処理の「全体像」をサクッと勉強できる
  • 自然言語処理の「解析方法」を学べる
  • 機械翻訳や対話システムなどの「応用」も学べる

こんな本があったらうれしいですよね~

そこで今回は、自然言語処理の全体像を基礎から応用まで、サクッと学べる本をご紹介します↓

本書の特徴は、とにかくサクッと学べることです。内容が凝縮されていて、自然言語処理の全体像を俯瞰し、各手法をテンポよく理解することができます。

また、最近特に話題になっている「ディープラーニング」の基礎となる「ニューラルネット」や、ディープラーニングの1つである「リカレントニューラルネットワーク」などを学べるのもうれしいポイントです。

他にも、

  • Google検索の仕組みとして知られる「ページランク
  • 各文章のトピックを推定する「トピックモデル
  • 観測されたデータから予測確率を計算する「ベイズ推定

など、自然言語処理の重要概念を盛りだくさんで網羅的に学ぶことができ、概観をシッカリつかめる1冊となっています。

 

ちなみに、ディープラーニングってなに?って方はこちらもどうぞ↓
なぜ、ディープラーニング(深層学習)は注目されてるの?

 

本書の構成は以下のとおりです

第1章 はじめに

1-1、言語の働きと特徴
1-2、自然言語処理の問題の整理

自然言語処理の難しさ
基本解析と応用システム

1-3、コーパスに基づく自然言語処理

生コーパス
注釈付与コーパス

1-4、分類問題としての自然言語処理
演習問題

第2章 系列の解析

2-1、はじめに

語の並びの解析
語について

2-2、日本語文の形態素解析

形態素解析の難しさ
形態素解析候補のラティス構造
ビタビアルゴリズム

2-3、日本語文の未知語処理

基本的な未知語処理
単語辞書中の単語への帰着
単語辞書の自動拡充

2-4、マルコフモデルと言語モデル

マルコフモデル
n-gram 言語モデル

2-5、HMMによる品詞タグ付け

英語の品詞曖昧性
HMM
HMMによる品詞タグ付け

2-6、機械学習による系列ラベリング

様々な手がかりの利用
CRFによる品詞タグ付け
固有表現認識

演習問題

第3章 構文の解析

3-1、木による構文の表現

依存構造表現
句構造表現
構文の曖昧性

3-2、文脈自由文法と構文解析

文脈自由文法
CKY法

3-3、依存構造表現と句構造表現の関係
3-4、構文的曖昧性の解消の手がかり

形に対する手がかり
意味の手がかり

3-5、グラフに基づく依存構造解析

問題の定式化
Non-projectiveな場合の依存構文解析
Projectiveな場合の依存構造解析
スコアの学習方法

3-6、遷移に基づく依存構造解析

演習問題

第4章 意味の解析

4-1、語の意味

語の意味の定義
語の創造的使用
シソーラス

4-2、同義性

同義語
分布類似度

4-3、多義性

多義語
語義曖昧性解消

4-4、文の意味

構文と意味
格と意味役割

4-5、英語の意味役割付与

PropBank
PropBankに基づく意味役割付与

4-6、日本語の格解析

問題の説明
格フレームの自動構築
構文と格の解析

演習問題

第5章 文脈の解析

5-1、結束性と一貫性
5-2、照応 ゼロ照応解析

共参照と照応
ゼロ照応
照応解析
ゼロ照応解析

5-3、談話構造解析

RST
Penn Discourse Treebank

演習問題

第6章 ニューラルネットワークの利用

6-1、はじめに
6-2、順伝播型ニューラルネットワークと誤差逆伝播法
6-3、Word Embedding

Word Embeddingとは
Word Embeddingの学習

6-4、リカレントニューラルネットワーク

演習問題

第7章 情報抽出と知識獲得

7-1、はじめに
7-2、情報抽出

関係抽出とイベント情報抽出
表現パターンの自動学習
テンプレートの自動学習
関係のデータベースの整備

7-3、知識獲得

事態間知識
スクリプト
知識獲得の今後

7-4、知識の柔軟な利用

演習問題

第8章 情報検索

8-1、はじめに
8-2、情報検索の基本的な仕組み

転置インデックス
語の重要度
ベクトル空間モデル

8-3、情報検索の評価

適合率、再現率、F値
MAP

8-4、ウェブ検索

ウェブ検索の仕組み
ページランク
Learning to Rank

演習問題

第9章 トピックモデル

9-1、LSA
9-2、PLSA

文生成モデル
パラメータ推定
LSAとの関係

9-3、ベイズ統計

最尤推定・MAP推定・ベイズ推定
多項分布とディリクレ分布

9-4.LDA

文書生成モデル
パラメータ推定
PLSAとの関係

演習問題

第10章 機械翻訳

10-1、はじめに

機械翻訳の難しさ
機械翻訳の歴史

10-2、統計的機械翻訳

IBMモデル
句に基づく統計翻訳

10-3、構文の利用
10-4、ニューラルネットワークによる機械翻訳
10-5、機械翻訳の評価

翻訳の評価尺度
評価型ワークショップ

演習問題

第11章 対話システム

11-1、対話システムの歴史
11-2、発話の意味
11-3、質問応答
11-4、音声対話システム
11-5、チューリングテスト
11-6、ニューラルネットワークによる応答生成

演習問題

第12章 まとめ

12-1、基本解析のまとめと問題点の整理
12-2、知識構築の新しい枠組み;クラウドソーシング
12-3、応用システムの発展の方向性

機械翻訳の発展
多言語言論ネットワークの可視化による異文化相互理解の支援
人間と自然な対話を行うシステム

12-4、おわりに

演習問題解答
参考文献
索引

となっています。

自然言語処理の基礎から、機械翻訳や対話システムなどの応用まで幅広く学べる内容となっています。

目次をみると相当な分量に思えますが、凝縮しているので分厚い本でもありません。

なので全体像をサクッとつかむのにも最適です。

とくに

これから自然言語処理をはじめたい!

という初学者の方にはぜひ一度みていただきたい、おすすめの本となっています↓

 

 

 

 

こちらもございます↓

自然言語処理の基礎

自然言語処理の基本と技術 (仕組みが見えるゼロからわかる)

自然言語処理〔改訂版〕 (放送大学教材)

入門 自然言語処理

自然言語処理と深層学習 C言語によるシミュレーション

深層学習による自然言語処理 (機械学習プロフェッショナルシリーズ)

ゼロから作るDeep Learning ❷ ―自然言語処理編

言語処理システムをつくる (実践・自然言語処理シリーズ)

形態素解析の理論と実装 (実践・自然言語処理シリーズ)

 

 

 

こちらの記事もございます↓

「テキストマイニング」の記事のまとめはこちらです

 

 

「自然言語処理」を学びたい人におすすめの良書、10冊はこちらです

 

 

「多変量解析」の記事のまとめはこちらです