ディープラーニングと自然言語処理技術①

自然言語をコンピュータで処理する自然言語処理技術について。

目次

テキストデータ処理

  • 「単語n-gram」→文字列を複数個の単語を並べたものとして表現したもの
    ※文字であれば”文字gram”、音声であれば”音素gram”
  • n=1→「ユニグラム(uni-gram)」
    n=2→「バイグラム(bi-gram)」
    n=3→「トライグラム(tri-gram)」
  • 「Bag-of-Words(BoW)」→文や文章を、そこに出現する単語の集合として表現
  • 「Bag-of-n-grams」→n-gramとBoWを組み合わせたもの
  • ID化ワンホットベクトルへと変換(単語も数値列(ベクトル)として入力)
    ※BoWとして表現された文章も、各次元の値がその次元に相当する単語の文章中の出現頻度である1つのベクトルとして表現できる
  • 「TF-IDF」→単語の重要度のようなものを計算する手法
    (TFとIDFという2つの値を掛け合わせたもの)
    ※TF→1つの文章内での単語の出現割合(単語の頻度/文章内の全単語数)
    ※IDF→ある単語が出現する文章の割合(ある単語が出現する文章の数/全文章数)の逆数を取り、対数を取ったもの

単語の埋め込み

  • 「局所表現」→ワンホットベクトルは値が0か1しかなく、情報が疎であり、非常に高次元な単語表現
    →単語の同士の意味の近さを考慮することができない
    →局所表現を連続的で、情報が密で、次元数の低いベクトルに変換する
  • 分散表現(distributed representation)」「単語埋め込み(word embedding)
    →単語を分散表現で表すことで、ベクトル間の距離や位置関係から単語の意味を表現できる
  • 「word2vec」(単語の分散表現を得る代表的な手法)
    「分布仮説」(単語の意味はその周辺の単語によって決まる)をニューラルネットワークで実現したもの
    「スキップグラム(skip-gram)」→ある単語から周辺の単語を予測するモデル
    「CBOW(Continuous Bag-of-Words)」→周辺の単語からある単語を予測するモデル
    →いずれも、中間層の表現をその単語の意味表現とみる
  • 主成分分析(PCA:Principal Component Analysis)」を用いて、2次元に「次元圧縮(dimensionality reduction)」した値を表示
  • 「fastText」→word2vecの延長線上にあるライブラリで、単語埋め込みを学習する際、単語を構成する部分文字列の情報も含める
    →訓練データには存在しない単語であっても単語埋め込みを計算できる/活用する単語の語幹と語尾を分けて考慮できる
    →word2vecやfastTextで得られる分散表現は各単語1つだけ
  • 「ELMo(Embeddings from Language Models)」→文脈を考慮した分散表現を得る手法
    (その単語が出現した文の他の単語の情報から、その文において適切な意味となる分散表現を得ることができる)

この記事が気に入ったら
いいね または フォローしてね!

  • URLをコピーしました!
目次