##はじめに
データサイエンスに興味があり、Rを勉強しています。
が、実際のところ、PythonやSQLの求人をよく見るけど、
Rはどのくらい需要があるのだろう?と不安になり(?)
「現場では、データサイエンティストはどのようなスキルを求められているか?」
が気になり、現在の求人を調べてみました。
##調査方法
せっかくなので、Rを用いて
求人サイト掲載中のデータサイエンティスト・データアナリスト求人から、
必須スキル・歓迎スキルを、形態素解析することに。
##データ対象
- 転職サイトGreen 76求人(2021年3月2日時点)をお借りしました
- 応募資格内の、必須スキル・歓迎スキルのテキストを手動抽出
- 画像解析・システム構築に関する求人は除く
###分析データ
length= 1121文字
##分析の流れ
- 形態素解析 RMeCab
- 名詞の洗い出し
- ワードクラウド可視化
##環境
R version 3.6.1
Windows10
テキストソフト:windowsのメモ帳
##出力結果
####▼頻度3以上の名詞を可視化
####▼頻度3以上の名詞からスキル要素をピックアップ
####▼スキル要素上位15 (表1)
これは手作成
No | Term | Freq |
---|---|---|
1 | Python | 71 |
2 | SQL | 62 |
3 | R | 49 |
4 | BI | 29 |
5 | Web | 22 |
6 | Tableau | 19 |
7 | AI | 16 |
8 | AWS | 15 |
9 | GCP | 11 |
10 | 10 | |
11 | BigQuery | 9 |
11 | SPSS | 9 |
12 | DB | 8 |
12 | Kaggle | 8 |
13 | Azure | 7 |
14 | Analytics | 6 |
14 | Hadoop | 6 |
14 | SAS | 6 |
15 | Excel | 5 |
15 | IT | 5 |
15 | TensorFlow | 5 |
##コード
library(RMeCab)
library(stringr)
library(dplyr)
#手動抽出したファイルを読み込み、形態素解析
Skill <- RMeCabFreq("skill.txt")
Skill$Term <-
str_replace_all(Skill$Term, "【.*?】", "") %>% # 【】で括られた見出しを削除
str_replace_all(., "[.*?]", "") %>% # []で括られた見出しを削除
str_replace_all(., "《.*?》", "") %>% # 《》で括られた見出しを削除
str_replace_all(., "<.*?>", "") %>% # <>で括られた見出しを削除
str_replace_all(., "≪.*?≫", "")%>% # ≪≫で括られた見出しを削除
str_replace_all(., "[0-9]", "")%>% #単独の数字
str_replace_all(., "\n", "")%>% #改行
str_replace_all(., "[:punct:]", "") #句読点
write.csv(Skill, "Skill_01.csv") #念のためreplaceしたテキストを保存
#名詞の洗い出し
Skill_r1 <- filter(Skill,Info1 == "名詞") %>%
filter(., Info2 == "一般" | Info2 == "固有名詞") %>%
select(., -c(Info1, Info2))
================================================
#頻度3以上の名詞を可視化 (図1)
library(ggplot2)
library(wordcloud)
wordcloud(Skill_r1$Term, Skill_r1$Freq,
scale =c(7, 1), min.freq = 3, random.order = FALSE,
random.color = TRUE, colors = brewer.pal(8, "Dark2"))
==================================
#さらにスキル要素の名詞をピックアップする
#書き出した"Skill_01.csv"ファイルを手作業で編集する
#編集したファイル名 「Skill_03.csv」
Skill_r2 <- read.csv("Skill_03.csv",header=T,row.names=1)
#頻度3以上、スキル要素の名詞を可視化(図2)
wordcloud(Skill_r2$Term, Skill_r2$Freq,
scale =c(7, 1), min.freq = 3, random.order = FALSE,
random.color = TRUE, colors = brewer.pal(8, "Dark2"))
##補足
「スキル要素」は手作業で、スキルや機能などのワードをピックアップ
(ただちに求人の歓迎スキルと関連のないワードも含んでいます)
##おわりに
頻度結果をみると、やはり、
Python
そして
SQL
が上位に。
Rも上位で安心(?)
意外だったのは
Tableau
やはりツールを用いるのかな
###改善点
・抽出データ、またスキル関係の名詞は手作業
・ピックアップしたスキル関係の名詞も曖昧
・前処理ももっとかっこよく(?)
改善点をふまえて、また出直します!