Help us understand the problem. What is going on with this article?

自然言語処理の概要まとめ

この記事について

G検定対策で自然言語処理の概要をまとめます。

自然言語処理とは

自然言語処理とは、人間が日常的に使用している言語をコンピュータで処理させる技術です。

自然言語処理のフロー

自然言語処理の主なフローは以下のようになります。
主な技術を併せて挙げます。

  1. 文書を単語などの最小単位に分ける(形態素解析)
  2. データのクレンジングを行い、不要な文字列を取り除く
  3. データをベクトルの形式に変換する(Bag-of-Words)
  4. 単語の重要度を評価する(TF-IDF)

形態素解析

言語で意味を持つ最小単位を形態素と呼びます。
形態素の品詞を判定することを形態素解析と言います。
形態素解析のイメージはこのような形になります。また、形態素解析は様々な解析エンジンがあります。

image.png

https://udemy.benesse.co.jp/ai/morphological-analysis.html

BoW(Bag-of-Words)

Bag of WordsはBoWと省略されます。
ブレス・オブ・ザ・ワイルドではないです。
BoWは単語を数値に割り当て、one-hot表現に変換します。

例として、以下の3つの文章を形態素解析します。

私はリンゴが好き
私はバナナが嫌い
私はみかんが好き

以下のような形態素が出きます。

私/は/リンゴ/バナナ/みかん/が/好き/嫌い

8個の形態素に番号を振ります。

0:私 1:は 2:リンゴ 3:バナナ 4:みかん 5:が 6:好き 7:嫌い

それぞれの単語をone-hot表現に変換するとこのような形になります。

私:[1,0,0,0,0,0,0,0]
は:[0,1,0,0,0,0,0,0]
リンゴ:[0,0,1,0,0,0,0,0]
...

文章にごとにベクトルを足し合わせます。

私はリンゴが好き
[1,1,1,0,0,1,1,0]

私はバナナが嫌い
[1,1,0,1,0,1,0,1]

私はみかんが好き
[1,1,0,0,1,1,1,0]

Word2Vec

BoWと同様に単語をベクトル化する手法です。
BoWとの違いは周辺語との関連性を考慮できる点です。

例えば、ベクトル同士の足し算/引き算を行うと、
「王様」-「男」+「女」=「女王」
となることは広く知られています。

Word2VecにはCBOWSkip-gramという2つのアーキテクチャが存在します。
両者の違いとして、CBOWは周辺単語から中心単語を予測し、高速に学習することが可能です。
逆に、Skip-gramは中心誤から周辺単語を予測し、高い精度の学習が可能です。

fasttext

名前の通り、Word2Vecをより高速にした手法をfasttextと呼びます。
Word2Vecとの違いとして、Subword分割という手法を採用しています。
Subword分割の考え方は類似している単語は関連性を高く学習する、というものです。

ELMo

ELMoはLSTMを多層につなぎ合わせることで、文脈を考慮して単語表現を獲得します。
例えば、Bankには「銀行」と「土手」という意味があります。
ELMoは文脈によってこの意味を解釈します。

BERT

BRET2018年GoogleからArxivへ論文を公開しました。
(BRETと来たらGoogleということは覚えておくと良いです)
BRETの特徴として、Attentionという機構を用いています。
また、一部の単語をマスキングして学習することも挙げられます。

Attentionの機構を簡潔にまとめます。

  1. 検索queryに一致するkeyを牽引する
  2. memoryから該当するvalueを取得する

Attentionについてはかなりざっくりした説明ですが、詳しくはこちらの記事で紹介されています。

XLNet

XLNetはBERTの改良版として発表されました。
BERTではマスキングを行うことで学習を行いましたが、実際にタスクを解く場合はマスキングを行いません。
これがノイズになってしまいます。

XLNetはこれを回避するため、自己回帰言語モデルを採用しています。
また、自己回帰言語モデルの弱点である双方向の情報を同時に扱えない点を克服するため、単語の予測順序を入れ替える手法を用いています。

TF-IDF

TF-IDFは頻度が少ない単語が何度も出てきた場合、その単語の重要度を上げるという概念です。

文章において、ある単語がどのくらい出現したのか考える概念であるTFと単語の頻度の低さ(どのくらいレアであるか)を表すIDFを組み合わせた概念です。

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした