我的问题:如何才能将bag-of-words模型作为要素输入到R中的svm?我该如何模拟R中的bag-of-words模型以适合SVM
我产生了一些数据较低:
Title Salary
"Software Engineer" 100000
"Software Engineer" 120000
"Junior Software Engineer" 60000
"Junior Software Engineer" 70000
"Senior Software Engineer" 130000
函数read.table使用,我可以得到2 * n个矩阵(字符,数字)。我想在标题栏中应用“包字”。但是,如果我只是手动拆分任何条目,例如
jobs['Title'][1,] <- strsplit(jobs['Title'][1,], ' ')
这给:
Title Salary
"Software" 100000
"Software Engineer" 120000
"Junior Software Engineer" 60000
"Junior Software Engineer" 70000
"Senior Software Engineer" 130000
而不是我的预期:
Title Salary
["Software", "Engineer"] 100000
"Software Engineer" 120000
"Junior Software Engineer" 60000
"Junior Software Engineer" 70000
"Senior Software Engineer" 130000
我的代码来调用SVM看起来是这样的:
jobs <- read.table("jobs.data", header = TRUE, as.is = TRUE)
index <- 1:nrow(jobs)
testindex <- sample(index, trunc(length(index)/3))
testset <- jobs[testindex,]
trainset <- jobs[-testindex,]
svm.model <- svm(Salary ~ ., data = trainset, cost = 10, gamma = 1)
svm.pred <- predict(svm.model, testset)
我想我弄错了,但我还没有找到方法要做到这一点,有人可以分享我该怎么做吗?
谢谢。
我不明白你在做什么。这真的是你正在使用的数据吗?如果所有标题都以“软件工程师”结尾,那么这些词无论如何都无法用于预测。你所关心的只是前缀 - “初级”,“高级”,或者什么都不是。你能更具体地了解你想要完成的任务吗? – rmalouf 2013-03-21 18:33:32
谢谢rmalouf。在这个特殊情况下,是的,只有“初级”,“校长”很重要,但是我会有更多的职位,比如“硬件工程师”,“iPhone魔术师”等等。重点不是数据,而是我想要建模标题作为一袋文字,但我不太明白这是如何工作在河。 – log0 2013-03-21 22:05:09