在R中拆分DocumentTermMatrix

时间:2015-07-26 00:20:55

标签: r text-mining nlp

我希望创建一个单词对预测函数,但是在使用DocumentTermMatrix到数据框或类似用于预测函数时遇到了问题。这是我的工作代码:

library(tm); 
BigramTokenizer <-
function(x)
    unlist(lapply(ngrams(words(x), 2), paste, collapse = " "), use.names = FALSE)

tdm_pairs <- DocumentTermMatrix(my_corpus, control = list(tokenize = BigramTokenizer))

freq_pairs <- colSums(as.matrix(tdm_pairs))

freq_pairs[100]

abandon contemporary 
               1 

我希望将其拆分并放入数据框,因此我可以用于预测功能。我使用以下内容:

for (i in 1:10){
df <- rbind(df,(unlist(strsplit(as.character(freq_pairs)[i]," "))[1]))
}

输出全部为1。我希望输出为:

 "abandon" "contemporary" "1"

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码来获取数据框。优点是freq_pairs保持一个数字而不需要循环。

df <- strsplit(names(freq_pairs), " ") 
df <- as.data.frame(matrix(unlist(df), 
                           ncol = 2, 
                           byrow = TRUE, 
                           dimnames = list(1:length(df), c("word1", "word2"))), 
                    stringsAsFactors = FALSE)
df <- cbind(df, freq_pairs)