自然言語処理の基本タスクについて。
目次
AI・ディープラーニングの全体像
- 人工知能
- 機械学習
- ディープラーニングの基本・応用
- ディープラーニングの研究
- AIプロジェクト
- AI社会実装に伴う法律・倫理
自然言語処理の概要
- 「自然言語処理(Natural Language Processing;NLP)」→自然言語を統計的に解析できる形式へと変換し、機械処理を行う一連の技術
- 言語学と統計学(統計分析)を、機械学習技術と融合させることで実用化される
- 機械学習で有効に使うためには、適切な「前処理」を施す必要がある
- 単語を、「記号」から「数値」(ベクトルや行列で計算可能なもの)へ変換する
- 数値ベクトルに、「単語の意味」・「単語間の関係性」を表現する必要がある
- 近年では、ディープラーニングを取り入れて精度が著しく改善しており、機械翻訳や文章生成など様々なタスクに応用されている
自然言語処理のフロー
STEP
形態素解析
・文章の意味を持つ最小単位(形態素)に分割(分かち書き)
・品詞を推定
STEP
構文解析
・形態素間の関係性を解析
・主語、目的語、述語などの係り受け構造を推定
STEP
意味解析
・同じ文の中の意味の構造を見出す
・文法的な要素や文中の単語が、別の単語と関連性が高いかを判断
STEP
文脈解析
・複数文の意味や関係性を解析
・文章全体の意味を把握
形態素解析
- 「形態素解析(Morphological Analysis)」
- 文章を「意味を持つ表現要素の最小単位」に分割(分かち書き)→品詞を推定
- 日本語の形態素解析→「MeCab」・「JUMAN」・「Janome」・「Kuromoji」・「Sundachi」
- 「形態素(最小単位要素)」を後続の自然言語処理への入力として使用する
N-gram
- 「N-gram」→文章を、N文字ずつ(N単語ずつ)区切りながら分解するアプローチ
- グループ間で単語の重なりがあり、単語間のローカルな依存関係を捉えることができる
- 「文脈の把握」・「複数の意味を持つ単語の曖昧性の解消」に効果的
構文解析
- 形態素間の関係性を文法的に解析する手法
- 主語や述語などの係り受け構造を推定する
- 日本語のための解析ツール:「CaboCha」・「KNP」
意味解析
- 同じ文の中の意味構造を見出す
- 文章の意味を正しく把握するために、文中の単語同士の関連性を解析する
文脈解析
- 複数文の関係性を解析することで、文章全体の意味を把握するための作業
- 「照応解析」→文章内の代名詞などの照応表現が指している箇所を推定する手法
- 「談話構造解析」→文章の中の文と文の間の意味的構造から、因果や背景などを解明するための手法
データの前処理
- 「形態素解析」
→意味を持つ最小単位に分割し、品詞を特定する - 「データクレンジング」
→不要な文字列を除去する
(ストップワード:情報量が少ない単語・解析に関係ない単語) - 「Bag-of-Words(BoW)」
→単語の出現頻度を考慮した数値ベクトルに変換する - 「TF-IDF」
→単語に重要度を付与する
TF-IDF
特定の単語が文書内でどれだけ重要かを定量化した指標
(TF×IDF)
TF (Term Frequency) | 「ある文書の中の特定の単語の出現頻度」を表す指標 |
---|---|
IDF (Inverse Document Frequency) | 「全文書中で、特定の単語を含む文書がどれくらい少ない頻度で存在するか(文章間のその単語の珍しさ)」を表す指標 |