Giants2019-02-02自然言語処理について勉強してみた(その1:基本)NLPStackGAN、HDGANやAttnGANなどのText-to-Image系の勉強をしていると、ある程度自然言語処理の知識が必要になってきます。今まではその辺度外視して、GANにフォーカスして勉強してみたんですが、このへんで自然言語処理について勉強してみようと思います。tsunotsuno.hatenablog.comtsunotsuno.hatenablog.comtsunotsuno.hatenablog.comそんなわけで、今回は自然言語処理の基本について勉強してみました。参考にさせていただいたのはこちら。見る初学者向けの本で、本当にゼロからやるには最適だと思います。いうわけでゼロからお勉強してみたので、そのメモです。細かい説明はこちらの本を買って読んでもらうとして、なんとなく私が使いそうなところだけメモっていきます。自然言語処理の大きな目標としては、人間が慣れ親しんでいる自然文をコンピュータに理解させて、人間の役にたつことをコンピュータにさせるようにしていくことです。そのために、人間の言葉をコンピュータに理解させることが自然言語処理の分野で取り扱うものになります。人間の言葉をコンピュータに理解させるということを、もう少しブレークダウンするとこんな感じになっているようです。Unno大まかに文章の構造を理解させるか、もう少しメタな視点で文章の意味を理解させるかに大きく二分されるようです。前者はコンパイラなんかが具体例に当たるんでしょうかね。後者が世間一般で言われているいわゆる自然言語処理のような気がしますね。その中にも細かな技術要素があってそれはこんな感じになっているようです。Networksこの細かな技術要素について、現在も研究開発が進められています。言語を構成する意味の最小単位は単語です。単語が持つ意味を組み合わせ・並べ替えを行うことで、自然文が構成されています。単語の意味をコンピュータに理解させる手法としては、大体下記の3つが知られているようです。カウントベース着目する単語の周囲の単語の登場頻度をカウントすることで意味を理解(分散仮説に基づいた分析)推論ベース(Word2Vec)手作業が多かったり、解釈の精度が思ったほど出なかったりで、最近はもっぱら推論ベース(Word2Vec)を使っていろんなことをやっていくのが主流ですね。この手の分析の話に登場するキーワードがいくつかありますので紹介していきます。コーパス自然言語処理の文脈で結構な頻度で登場するのがコーパスというキーワードです。corpus)は、言語学において、自然言語処理の研究に用いるため、自然言語の文章を構造化し大規模に集積したもの。構造化し、言語的な情報(品詞、統語構造など)を付与している。コンピュータ利用が進み、電子化データとして提供している[2]。(出典:Wikipedia)基本的には普通の文章を大規模に集積したものを表しますが、ポイントは品詞や文の構造を与えられたデータ形式に変換されている点です。自然言語処理では様々な形でコーパスが使用されるようです。hypothesis)シソーラス以外の手法で単語の意味を理解しようとする手法の前提にある仮説を分散仮説と呼ばれます。単語の意味は、周囲の単語によって形成されるという仮説です。簡単に言うと、各単語が多次元空間上でどこに位置しているかを表現した行列です。例を見たほうが速いので、参考に見てみます。speech)上のめちゃくちゃ有名なスピーチの一説について共起行列を考えます。文を単語にバラす着目する単語の前後に登場する単語をカウントする文中すべての単語に対してカウントを集計するこうしてカウントするとこんな感じの行列が得られるはずです。各行が各単語を表すベクトルとなっており、単語と単語との間にある出現しやすさを表しています。このように表現されたものが共起行列と呼ばれます。カウントベースによる単語の意味の取得カウントベースでの単語の意味の取得には、上の共起行列を使用します。共起行列に含まれる各単語のベクトルの組み合わせに関して、コサイン類似度を計算します。これにより、ある注目する単語について、近傍に登場しやすさを推定できるので、分散仮説によって単語の意味を推定できるようになります。感想やっぱり奥が深いですね。難しいですが、少しずつ勉強していきたいと思います。いうことで、次はWord2Vecについて勉強します。ニュースコーパスで遊んでみる(3回目)この前はこんな感じにやってました。tsunotsuno.hatenablog.co...2019-03-21機械学習用の自分用Dockerfileをまとめる今回は特に新しいことはありません。完全に自分用メモです。絶賛勉強中なので、その兼ね合いでちょっ...2019-02-17自然言語処理で遊んでみる(その2:テキストデータの解析)この前はこんなことをやっていました。(1)月別アーカイブはてなブログをはじめよう!nogawanogawaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。