1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RMeCabで頻出単語を抽出する

Last updated at Posted at 2024-10-19

はじめに

実務で、自由回答アンケート内の頻出単語をRMeCabで抽出し、可視化する機会があったため、メモ書きとして残しておくことにします。

なお、今回はChatGPTで作成したサンプルデータを使用します。

image.png

アウトプット

添付画像のような形で、アンケートに含まれる単語ごとの出現回数を棒グラフで可視化することができました。

image.png

また、wordcloud2というライブラリで別の可視化もしてみました。

wordcloud2.png

コード

単語ごとの出現回数をCSVとしてエクスポートするまでのコードは以下の通りです。

なお、RMeCabの実行環境を一から構築するのは少々面倒なため、RをランタイムとしたColaboratryを使用しています。

system("apt-get install -y fonts-noto-cjk")

system('sudo apt-get install -y mecab', intern=TRUE)
system('sudo apt-get install -y libmecab-dev', intern=TRUE)
system('sudo apt-get install -y mecab-ipadic-utf8', intern=TRUE)

install.packages("RMeCab", repos = "http://rmecab.jp/R", type = "source")
install.packages("tidyverse")

library(RMeCab)
library(tidyverse)

df_survey_responses_fix <- RMeCabFreq("{filePath}") %>%
  arrange(desc(Freq)) %>%
  filter(Info1 == "名詞" & Info1 != "非自立") %>%
  select(Term, Freq)

df_survey_responses_fix

write_csv(df_survey_responses_fix, "df_survey_responses_fix")

ポイントは、RMeCabFreqメソッドです。

本メソッドの引数に、Colabratoryにアップロードしたアンケートデータ(サンプルデータ)のファイルパスを指定すれば、単語ごとの出現回数を集計してくれます。

コードを実行後、以下のデータフレームの内容がCSVとしてエクスポートされます。

image.png

可視化

以降は、RStudioで可視化を行います。

棒グラフ

ggplot2で日本語を扱うと文字化けするため、以下の記述が必要です。

  • theme_gray (base_family = "HiraKakuPro-W3")
install.packages("readr")
install.packages("tidyverse")
install.packages("wordcloud2")

library(readr)
library(tidyverse)
library(wordcloud2)

df_survey_responses_fix <- read.csv("{filePath}") %>% 
  top_n(10, Freq)

g <- ggplot(df_survey_responses_fix, aes(x = reorder(Term, -Freq), y = Freq)) +
  geom_bar(stat = "identity") + 
  labs(x = "Term", y = "Freq") +
  ggtitle("Number of Occurrences per Word") +
  theme_gray (base_family = "HiraKakuPro-W3")

plot(g)

ワードクラウド

ワードクラウドの利用は初めてでしたが、シンプルで分かりやすいですね。

install.packages("wordcloud2")
wordcloud2(df_survey_responses_fix, color = "black", backgroundColor = "white")

以上で可視化は完了です。

おわりに

RMecabの中には他にも便利なメソッドがあり、余裕があれば調査してみたいです。

また、Rは可視化の自由度がかなり高いので棒グラフの可視化においても細かな調整ができるのはよいですね。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?