我的問題:如何才能將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