NLP とは
話し言葉や書き言葉といった人間が普段使用する言語を自然言語と言います。自然言語には、次のように文脈によって解釈が変わるといった「言葉の曖昧さ」や「意味の重複」が含まれています。
- 「dog ate a bone」と「bone dog a ate」
- 両文章とも同じ単語が同じ頻度で出現していますが、単語の出現位置によって、最初の文には意味が与えられ、もう一方の文には与えられません。
- 「Jack saw Ben with a telescope on a mountain.」
- 望遠鏡を持ったのはJackなのかBenなのか?
- 山の上にいるのは誰なのか?
- 「I went to the bank.」
- 「bank」という言葉は、金融機関だけでなく、川沿いの土手も指すこともあります。
自然言語処理(Natural Language Processing、NLP)とは、人間が使う曖昧で複雑な言葉をコンピュータで解析する一連の処理のことです。
NLP の用語
NLPにおける主要な用語は次の表の通りです。
用語 | 意味 | 例 |
---|---|---|
Corpus | 文書の集合 | Wikipedia の全てのページの文書 |
Document | 文書 | Wikipedia の「word2vec」のページの文書 |
Sentence | 文 | Document の最初の文(Word2vec is a group of related models that are used to produce word embeddings. ) |
Phrase | 句 | Sentence の最初の句(Word2vec is a group of related models ) |
Token | 単語 | Phase の最初の単語 (Word2vec ) |
Character | 文字 | Token の最初の文字 (W ) |
Vocabulary | 語彙 | ある Corpus に現れる ユニークな Token の集合 |
NLP の行程
NLPは主に4つの行程を踏まえて処理されます。
- 形態素解析(Morphological Analysis/ Lexical Analysis)
- 構文解析(Syntax Analysis)
- 意味解析(Semantic Analysis)
- 文脈解析(Pragmatic Analysis)
形態素解析
形態素解析は、文章を意味を持つ最小要素(形態素)に分解し、品詞などの情報を割り当てる工程です。この処理によって、文章中にある各形態素の意味をデータとして抽出できるようになります。
例えば、「Jack saw Ben with a telescope on a mountain.」という文章を形態素解析すると次のようになります。
原文 | 形態素解析後 |
---|---|
Jack saw Ben with a telescope on a mountain.」 | Jack (名詞) | saw (動詞) | Ben (名詞) | with (前置詞) | a (名詞) | telescope (名詞) | on (前置詞) | a (名詞) | mountain (名詞) |
構文解析
構文解析は、形態素解析をした言語要素をもとに文の構造を明確にする工程です。
「Jack saw Ben with a telescope on a mountain.」を形態素解析したのち、構文解析すると次のようになります。
Jack saw
|Ben with a telescope on a mountain
Jack saw
|Ben with a telescope
|on a mountain
Jack saw Ben with a telescope
|on a mountain
構文解析の点ではいずれの文も正しいことになります。
意味解析
意味解析では、構文解析をもとにそれぞれの単語の関係性を判断します。次の文があるとします。
Green
|shining
|aurora
|and
|stars
|are
|beautiful
上記の文では、オーロラが緑に光ることはすぐに理解できます。また、オーロラだけでなく星も緑に光るという解釈をすることもできます。
意味解析で辞書を引きながら各単語の関係性をチェックしていくと、オーロラは緑に光る一方、星が緑に光ると表現されることは少ないということが判明します。そのため、AIは上記の文において、緑に光るものはオーロラだけであると理解することができます。
文脈解析
文脈解析とは、複数の文章に形態素解析と意味解析を行い、文同士の関係性を解析する工程です。しかし、この行程は様々な領域の知識を機械に学習させる必要があり、発展途上の分野となっています。
NLP の活用例
NLPは次のような活用例があります。
- テキストマイニング
- SNS分析
- アンケート分析
- 対話システム
- Siri
- Alexa
- Google Home
- 機械翻訳
- DeepL
- Google Translate
- 検索エンジン
- Yahoo
- スパム検出
- 文書要約
参考