📖

自然言語処理について(超基礎)

2023/05/25に公開

自然言語処理について

こんにちは!わいわわです。
今回は人工知能の応用例である「自然言語処理」について学習していきます!

自然言語とは

コミュニケーションを行うための自然発生的な言語のこと。
特に数式やプログラミング言語、人工的に定義された形式言語、人工言語と
対比させる必要がある場合にこう呼ばれる
つまり…私たちが日常的に話している言葉のこと!

プログラミング言語では…解釈が一通りしかない
自然言語では…解釈が複数ある場合も
例)「大きい青い服を着た幼稚園児」
大きいのは服の場合と、幼稚園児の場合の2通りの解釈ができる
つまり、自然言語には曖昧性が存在する

感情分析

自然言語処理では「感情分析」という分野がある
文章から感情を読み取ることができる
例)「低い」という言葉
・金額が低い → 肯定的
・質が低い  → 否定的
・難易度が低い → 文脈による
このように同一単語でも異なる勘定を表す!
また、文全体ではどうなるか、本当に言いたいこと(主訴)は?など、
曖昧性の要素はたくさんある!

つまり、その単語単体でその意味・感情などを評価することは困難
文章や文脈、周辺の語や共起性を見ることで曖昧性を解消する必要がある

この曖昧性を踏まえてコンピューターに処理させる技術が自然言語処理!

自然言語処理の流れ

  • 分かち書き
    意味をこれ以上分割できない最小の単位に分割する
    例)私/は/素晴らしい/エンジニア/と/野球選手/に/なりたい
  • 形態素解析
    最小単位に品詞付けを行う役割を付与する
    例)形容詞「素晴らしい」、動詞「なりたい」、助詞「と」など
  • 構文解析
    形態素解析によって得られた単語間の関係性を可視化、文法的な構造を調べる
    例)「素晴らしい」がかかっているのは「エンジニア」のみか「野球選手」もなのか
  • 意味解析
    正しく意味内容を解釈するために行われる
    例)「素晴らしい」は「エンジニア」にかかっているだろう、と結論を出す
  • 文脈解析
    語の関係や文章の背景に隠れた知識などといった複雑な情報が必要になるため、
    意味解析以上に難しい処理で、現在はまだ実用化されてはいない

他にも…
照応解析…代名詞や指示詞などの指示対象を推定したり、省略された名詞句を補完する処理
特に日本語は主語が抜ける場合が多く、補完することが重要

自然言語処理のアルゴリズム

bag of words

ある文書における単語の出現回数を数えるアルゴリズム
例)
Doc1:花子さんはパクチーが好きだ。。
Doc2:花子さんはパクチーとバナナを食べた。バナナとパクチーが好きだ。
Doc3:花子さんは焼肉が嫌いだ。
Doc4:太郎はパクチーが嫌いだ。
→Docごとに単語の出現回数で分析ができる
複数の文書を比較したり類似性を測定することが可能
また、「は」や「。」など文章と特徴と関係のない語をストップワードという
bag of wordsはシンプルな手法のため、
・各文章の特徴後が分からない
・単語の出現順序が考慮されない、意味的な表現を学習されていない
・単語数が増えたら次元数が増える
などのデメリットもある!

TF-IDF

文章中の含まれる単語の重要性を評価する手法
単語の出現頻度(TF)と単語のレア度(IDF)で重要度を評価
TF…Term Frequency
IDF…Inverse Document Frequency
例えば今回の記事では「自然言語処理」という普段聞かない単語が何回も登場している
→出現頻度高い、レア度も高いので重要な単語であると推測される

LDA

LDAはトピックモデルに分類され、潜在的な意味を得ることが目的となる
例)サッカーというトピックでは「シュート」という単語が出現しやすくなる

所感

今回は自然言語処理について学習しました。
流行りのchatGPTなどはこの自然言語処理が適用されているのでしょうか。
文脈解析が登場すればさらに便利になりそうです!
本日はここまで!

Discussion