У меня есть фрейм данных со столбцом, состоящим из Strings (project_skills), который обозначает навыки, которые дает определенная работа (job_id).Я хочу разделить эту строку для каждой работы, чтобы получить вектор навыков, которые дает работа, а затем создать матрицу условий документа, чтобы обозначить, какие навыки (из всех возможных навыков) дает определенная работа.
I´у нас есть следующий фрейм данных:
job_id project_skills
107182 CSS,HTML,Joomla,PHP
108169 XTCommerce,Magento,Prestashop,VirtueMart,osCommerce
112969 Google Search Console,Google Analytics,Google Webmaster Central,C++,Java,C#
114660 Marketing,Email Marketing
118686 PHP
Результат должен выглядеть примерно так (в основном это матрица термина документа с разделенными запятыми фразами:
project_skills
job_id CSS HTML PHP Google Search Console Google Analytics Java ...
107182 1 0 0 ...
108169 0 0 0 0 0
112969 0 0 0 1 1 ...
114660 0 0 0 ...
118686 0 0 1 ...
Я пробовалследующее:
df <- data.frame(job_id = c(107182, 108169, 112969, 114660, 118686), project_skills = c("CSS,HTML,Joomla,PHP", "XTCommerce,Magento,Prestashop,VirtueMart,osCommerce", "Google Search Console,Google Analytics,Google Webmaster Central,C++,Java,C#", "Marketing,Email Marketing", "PHP"))
corpus <- Corpus(VectorSource(df$project_skills))
corpus <- tm_map(corpus, function(x) {
PlainTextDocument(
strsplit(x,"\\,")[[1]],
id=ID(x)
)
})
inspect(corpus)
dtm <- DocumentTermMatrix(corpus)
as.matrix(dtm)
Но, к сожалению, это разделяет все слова, а не запятые (например, Google Search Console следует рассматривать как один термин в DTM).