Aidemy 2020/10/30
#はじめに
こんにちは、んがょぺです!バリバリの文系ですが、AIの可能性に興味を持ったのがきっかけで、AI特化型スクール「Aidemy」に通い、勉強しています。ここで得られた知識を皆さんと共有したいと思い、Qiitaでまとめています。以前のまとめ記事も多くの方に読んでいただけてとても嬉しいです。ありがとうございます!
今回は、ネガポジ分析の1つ目の投稿になります。どうぞよろしくお願いします。
*本記事は「Aidemy」での学習内容を「自分の言葉で」まとめたものになります。表現の間違いや勘違いを含む可能性があります。ご了承ください。
今回学ぶこと
・ネガポジ分析とは
・極性辞書を使ったネガポジ分析の実行
#ネガポジ分析とは
・__ネガポジ分析__とは、人の発言や発想が__ポジティブかネガティブかを判断するもの__である。実際には、文章などに含まれる評価、感情に関する表現を抽出して、文章中の感情を解析するという手法が取られる。
##極性辞書について
・「ネガ/ポジ」のことを__「極性」__とよび、極性辞書__は__単語ごとの極性をまとめたもの__である。単語には「-1~+1」__までの値が与えられており、値が大きいほどポジティブ、値が小さいほどネガティブな意味であることを表す。
##形態素解析
・(復習)__形態素解析__とは、__文章を単語という最小単位に分割すること__である。単語にすることで、極性辞書を参照することが可能になる。__MeCab__などを使って形態素解析を行うことができる。また、以下も復習の内容が多いが、全て今回行っていくものである。
・MeCabによる形態素解析は__MeCab.Tagger('')__でインスタンスを作成したあと、__mecab.parse(ファイル)__で行える。一行につき一単語__なので、単語ずつに区切るために、split('\n')で改行ごとに「lines」に格納していく。また、後ろ二行は'EOS(EndOfSplit?)'という記述と__空行__なので__削除する。また、作成したlinesについて、単語ごとに「タブ__と,」で分割し、{'BaseForm':word}__となるようにそれぞれ「diclist」に格納する。
##単語を極性辞書で参照し、PN値を取得
・前項で作成した形態素解析の関数「get_diclist()」から返される単語のリスト(wordlist)の__単語を極性辞書でさがし__、存在すればその極性値を抽出するという役割を持つ関数__「add_pnvalue()」を作成する。
・関数作成にあたり、まずは__極性辞書(pn_df)を「単語がキー、PN値が値」である辞書に変換__する。pn_dfの['Word']と['PN']をそれぞれリスト化し、「pn_dict」として一つの辞書にまとめる。
・add_pnvalue()については、渡された単語リストの各要素の中の'BaseForm'がキーの各単語について、pn_dictにその単語があれば、単語リストにキー'PN'を追加して__その単語のPN値を値とし、空のリスト「diclist_new」に格納して返すように作成する。ちなみに、pn_dictにある単語のPN値が知りたい時は「pn_dict[word]」とすれば良い。
#まとめ
・ネガポジ分析__とは、人の発言や発想がポジティブかネガティブかを判断するもの__である。ネガポジ分析は__極性辞書を使って行う。
・極性辞書でネガポジ分析を行うためには、極性辞書を参照できるように、文章を__形態素解析する必要がある。
今回は以上です。最後まで読んでいただき、ありがとうございました。