【結論】
・自然言語処理とは、人が日常的に使用している自然言語をコンピュータに処理させる技術
・曖昧性なく解釈できるように厳密に文法を定義されているコンピュータ言語と対照的に、自然言語は解釈が一意でないのが特徴
・機械学習や統計的手法の発展によって日々精度が向上している
【目次】
【本題】
自然言語処理とは
自然言語処理は、人が日常的に使用している自然言語をコンピュータに処理させる技術です。
英語では「natural language processing」なので、「NLP」という略称で呼ばれることもあります。
そもそも「自然言語」とは何か?
「自然言語」の具体例は以下の通りです。
- 日本語
- 英語
- ドイツ語
- イタリア語 etc…
つまり人間同士がコミュニケーションを取る時に利用する言語を「自然言語」と呼んでいます。
では、わざわざ「自然」言語と呼ぶのはなぜでしょうか?
それは、人がコンピュータとのやり取りで用いるコンピュータ言語との対比のためです。
コンピュータ言語の代表例は以下の通りです。
- HTMLやXMLといったマークアップ言語
- RubyやJavaScriptといったプログラミング言語
自然言語とコンピュータ言語は、コンピュータで処理する上で根本的に異なる部分があるので、明確に区別する必要がある。
自然言語とコンピュータ言語の違い
最大の違いは「曖昧性」です。
例えば、以下の文章について…
宇宙人は宇宙船で逃げるジェニファーを追いかけた
以下の様に、一つの文章でも2通りの解釈をすることができる
宇宙人は宇宙船で、「逃げるジェニファー」を追いかけた → 宇宙船に乗っているのは「宇宙人」 宇宙人は、「宇宙船で逃げるジェニファー」を追いかけた → 宇宙船に乗っているのは「ジェニファー」
対して、プログラミング言語であれば…
1 * 2 + 3 * 4 → 「1と2の乗算の結果」と「3と4の乗算の結果」を加算する
解釈は1通りしか有り得ない
この様に、曖昧性なく解釈できるように厳密に文法を定義したものがコンピュータ言語 (文法に沿わない入力は、文法エラーとして処理される)
コンピュータ言語のように解釈が一意でないのが自然言語の特徴であり、自然言語処理の大きな課題の一つです。
自然言語処理の活用例
自然言語処理は様々な場面で活用されています。以下がその代表例です。
日本語入力
日本語の場合、文字の種類は数千以上ありますが、それらを正しく変換して入力するには、日本語入力ソフトが不可欠です。
機械翻訳
機械翻訳は、ただ単語の意味を読み取るだけではなく、文法を理解して、任意の言語に翻訳してくれます。
検索エンジン
WEB検索においても、検索ワードに関連するサイトを、サイトの文章から把握したり、スパムを判定するなどして、検索結果を表示しています。
対話システム
対話システムでは、音声を認識し、その意味を解析して、適切な応答を生成するという、非常に高度な処理が行われています。
参考情報
《今日の学習進捗(3年以内に10000時間に向けて)》
社内勉強会の発表資料を作成中(進捗80%くらい?)
3連休の殆どを費やしたにしては、あまり進まず・・・
学習開始からの期間 :282日
今日までの合計時間:2629h
一日あたりの平均学習時間:9.4h
今日までに到達すべき目標時間:2575h
目標との解離:54h
「10,000時間」まで、
残り・・・「7371時間!」