テキストマイニング

【R】記事中に使われている言葉のポジティブな割合を表す【RMeCab】

txtファイル分析 (1)

記事を分析していきます。

少しアナログなやり方ですが、許してください。

もしエラーがおきたらteratailで質問してみてください。エンジニアさんやプログラマーさんが教えてくれますよ。

今回の目的・概要

目的

txtファイルに書いてある文字を分析する。

そこでポジティブな言葉とネガティブな言葉のどちらが多く使われているの分析する。

実行環境

  • Window10
  • R バージョン 3.4.4

MacでもLinuxでも可能です。

必要なもの

  • MeCab
  • RMeCab
  • 分析したい記事をコピーしたtxtファイル
  • PN Table

記事をスクレイピングして分析したかったんですけど、まだできません。

出来るようになったら、また記事にします。

MeCabをインストールしていない方は、【MeCab】を【R】で使えるようにするための【RMeCab】を導入する方法・流れ【Windows編】をご覧ください。

必要なパッケージ

dplyrデータフレームの操作が楽にできる
magrittrパイプ演算子が使える。dplyrと相性良い
RMeCab形態素分析するため

記事のポジティブ率を調べる流れ

  1. PN Tableの読み込み
  2. ①を使いやすい状態にする
  3. txtファイルで品詞を抽出
  4. ③を細分化する
  5. 結合
  6. ポジティブとネガティブの変数作成
  7. ポジティブな割合を求める

txtファイルの名前はなんでもダイジョブです。同じディレクトリにいれておいてください。

①.PN Tableの読み込み

PN Table読み込み

##1
#パッケージの読み込み
library(dplyr)
library(magrittr)

#windowsの方
pn <-read.table(“http://www.lr.pi.titech.ac.jp/~takamura/pubs/pn_ja.dic”,
sep = “:”, stringsAsFactors = FALSE)

#Mac.Linuxの方
pn <- read.table(“http://www.lr.pi.titech.ac.jp/~takamura/pubs/pn_ja.dic”,
sep = “:”, stringsAsFactors = FALSE,fileEncoding = “CP932”, encoding = “UTF-8”)

read.table(URL)URLの表読み込み

Macユーザーの方はもしかしたら、変換しないで良いかもしれません。

表示がおかしくなったら、Windowsの方でお願いします。

②.①を使いやすい状態にする

①を使いやすい状態にする

##2
#一部抽出・名前変更
pn2 <- pn %>% select(V1, V4) %>% rename(TERM = V1)
pn2 %<>% distinct(TERM, .keep_all = TRUE)

#データ表示
head(pn2)

select(V1, V4) %>% rename(TERM = V1)V1,V4を選択し、V1の列名をTERMにする
distinct(TERM, .keep_all = TRUE)TEAMで重複しているものを削除

③.txtファイルで品詞を抽出

品詞抽出

##3
library(RMeCab)
#名詞と形容詞と動詞抽出
txtdata <- docDF(“test.txt”,pos = c(“名詞”,”形容詞”,”動詞”),type = 1)

作ったテキストファイルの「test.txt」から、名詞・形容詞・動詞を取っています。

④.③を細分化する

細分化

##4
# 品詞細分類によるフィルタ
txtdata %<>% filter(!POS2 %in% c(“数”, “サ変接続”,”接尾”,”非自立”))

先ほど取った、「名詞・形容詞・動詞」から「数・サ変接続・接尾・非自立」を外しています。

⑤.結合

結合

##5
#結合
txtdata2 <- txtdata %>% left_join(pn2)

tail(txtdata2)
txtdata2 %>% select(TERM, V4) %>% arrange(V4) %>% head(10)

⑥.ポジティブとネガティブの変数作成

ここにボックスタイトルを入力

##6
#ポジティブ・ネガティブ割合
poji <- txtdata2 %>% summarize( sum (V4 > 0, na.rm = T))
nega <- txtdata2 %>% summarize( sum (V4 < 0, na.rm = T))

summarize( sum (V4 > 0, na.rm = T))V4>0以上はポジティブな言葉の割合。na.rm=Tは欠損値を無視してくれる

PN Tableではポジティブな言葉は0以上、ネガティブな言葉は0以下に設定されています。

⑦.ポジティブな割合を求める

ポジティブな割合

##7
#ネガティブな割合をもとめる
print(poji/(poji+nega))

sum(V4 > 0, na.rm = T)
1 0.119403

結果は11%です。あなたはどうなりました?

スポンサーリンク

全体コード

全体コード

##今回の目的
#txtファイルの言葉を分析するポジティブな言葉の割合をしらべる。

##1
#windows
pn <-read.table(“http://www.lr.pi.titech.ac.jp/~takamura/pubs/pn_ja.dic”,
sep = “:”, stringsAsFactors = FALSE)

#Mac.Linuxの方
pn <- read.table(“http://www.lr.pi.titech.ac.jp/~takamura/pubs/pn_ja.dic”,
sep = “:”, stringsAsFactors = FALSE,fileEncoding = “CP932”, encoding = “UTF-8”)

##2
#一部抽出・名前変更
pn2 <- pn %>% select(V1, V4) %>% rename(TERM = V1)
pn2 %<>% distinct(TERM, .keep_all = TRUE)

#データ表示
head(pn2)

##3
library(RMeCab)
#名詞と形容詞と動詞を抽出
txtdata <- docDF(“test.txt”,pos = c(“名詞”,”形容詞”,”動詞”),type = 1)

##4
# 品詞細分類によるフィルタ
txtdata %<>% filter(!POS2 %in% c(“数”, “サ変接続”,”接尾”,”非自立”))

##5
#結合
txtdata2 <- txtdata %>% left_join(pn2)

tail(txtdata2)
txtdata2 %>% select(TERM, V4) %>% arrange(V4) %>% head(10)

##6
#ポジティブ・ネガティブ割合
poji <- txtdata2 %>% summarize( sum (V4 > 0, na.rm = T))
nega <- txtdata2 %>% summarize( sum (V4 < 0, na.rm = T))

##7
#ネガティブな割合をもとめる
print(nega/(poji+nega))

▼ゼロから始めるR言語に戻る▼

R言語
【随時更新】ゼロから始めるR言語【2018/3/30日更新】RとRStudioのインストールからグラフ・図・分析、テキストマイニング、スクレイピングなどをやっていきます。ネットでRを勉強したい人は是非ご覧ください。...

できれば、スクレイピングを極めて、テキストファイルを作りたい!

以上さぎのみや(@gumimomoko)でした。今日も分析しました。明日からも一生無双でやったりましょう。

参考にさせていただいたこと

R+RMeCabで感情分析

東工大学の高村研究室で公開している「PN Table」を利用させていただきました。 とても便利なツールです。

研究を行う人は必見です。

データサイエンティストになりたいなら

  • データサイエンティストになりたいけど、漠然とRの勉強をしている

もしそうならば、戦略的に勉強しましょう。戦略的に勉強しなければデータサイエンティストになるのは夢のままになってしまう可能性があります。

データサイエンティストになるためのおすすめの勉強方法・講座を3つご紹介します。

①通勤講座でデータサイエンティストの講座を受ける

  • ビジネスにデータを活用したいが方法が分からない。
  • ビックデータをどう扱えばよいか分からない。
  • データサイエンティストになりたいが、どうすればいいのか分からない。

このような場合、データサイエンティスト基礎講座 を受けてるのはどうでしょうか。動画によって、上のような悩みを解決してくれます。

まずデータサイエンティスト の基礎を学んでみて、ビジネススキルが足りなかったらUdemy で勉強するのが良いです。

いまなら10%クーポンもありますし、無料の動画もあります。今行動しないと一生やりませんので、もう少し下を見てからで良いのでご覧ください。

▼まずデータサイエンティストの基礎を学ぶ▼

データサイエンティストの基礎を学ぶ>>

②Udemyのデータサイエンティスト講座を受ける  

「Udemy」も動画で学ぶタイプの講座です。データサイエンティストになるための講座がそこそこあります。

通勤講座とちがうのが安さです。どちらも内容の質が良いことは間違えないのですが、Udenyは安めです。

「自分この部分の知識がないな」と思ったときの補強でも使えますね。一度講座をとって気に入らなかったら、全額返金できます。

▼データサイエンティストの基礎を学んだり、知識の補強をする▼

 Udemyのデータサイエンティスト講座を受ける>>

③データサイエンティスト育成スクールにいく

本気でデータサイエンティストになりたいなら、このスクールに行くのがおすすめです。

データサイエンティストに必要な知識は膨大です。統計学、機械学習、人工知能、データベース、プログラミング、ビジネススキルなどなど。

その知識をデータサイエンティストとしての経験がある先生たちが、オフラインで教えてくれます。

動画です。ご覧ください。

どうですか、めっちゃ良いですよね。ここは他の講座と違うなと思った部分があるのですが、転職支援もしてくれます。

さらに

データサイエンティスト全コースを一括で申し込んでいただいた方のみ、
ブートキャンプ終了時にご満足いただけない場合は受講料を全額返金します。

返金保障もあります。

もしまだ心配な方は説明会もありますので、いって見てください。

  • 未経験からデータサイエンティスト目指せる(Rを触っているあなたならもっと安心)
  • 返金保障あり
  • データサイエンティストに必要な知識を学べる
  • オフライン
  • データサイエンティスト経験がある先生に質問ができる
  • 転職支援あり

もう一度言います。本気でデータサイエンティストを目指すならおすすめです。

▼データサイエンティストになる▼

未経験からデータサイエンティストになる>> 

どれにしますか

①と②の場合はまず基礎を学んで、足りないところを補充して転職という感じです。③は転職支援もあるので安心です。

思いたったときに行動しなければ意味がありません。将来的にデータサイエンティストになりたいなら今すぐ行動しましょう。

データサイエンティストの基礎を学ぶ
通勤講座のデータサイエンティストの講座を受ける  

データサイエンティストの基礎を学んだり、知識の補強をする
Udemyのデータサイエンティスト講座を受ける  

本気でデータサイエンティストを目指す
データサイエンティスト育成スクールにいく

 

ABOUT ME
さぎのみや
さぎのみや
ゲーム開発を手助けるメディア【ユニシャー】を運営しているさぎのみやの個人ブログです。自分の考えや役にたったことを書いております。自分の芯がある人が好きです。→Amazonほしいものリスト
ゲーム開発を手助けるメディア「Unishar-ユニシャー」
  • Unityを勉強したい
  • とりあえずUnityを使ってゲームを作りたい

このような悩みを解決してくれる、アクセス急上昇中のUnityメディア「Unishar-ユニシャー」

Unityでのゲーム開発に役立つことばかりです。

Unity専門メディア「Unishar-ユニシャー」→