最近有几位同学问到我如何利用tm包做文本挖掘,比较抱歉的是时间不太充足,不能完整更新文档。在这里只好给大家一些
tips,来利用R的原生函数来完成文本挖掘的核心步骤。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| setwd('C:/Users/Administrator/Downloads') options(width = 150) library(data.table) x <- fread('comment.txt', sep = '\t', header = FALSE) x$V3 <- iconv(x$V3, 'UTF-8', 'GBK') x <- x[which(nchar(x$V3) > 3),] n <- 10000 x <- x[sample(1:nrow(x),n),]
library(jiebaR) library(Matrix)
JR = worker(user = 'D:/source/RecModels/prototype/TagGen/userdict.txt') seg_raw <- sapply(x$V3, segment, JR)
id <- unique(unlist(seg_raw)) id <- id[nchar(id) >=2 & nchar(id) <= 5] col_id <- as.vector(unlist(sapply(seg_raw, match, id))) NA_index <- !is.na(col_id) col_id <- col_id[NA_index] row_num <- sapply(seg_raw, length) row_id <- rep(1:length(seg_raw), times = row_num) row_id <- row_id[NA_index]
m <- sparseMatrix(i = row_id, j = col_id)
|
核心思想是创造 Term 和原始文档分词之后对应的索引,来创造 Document
Term Matrix。当然中间涉及各种 Term
的预处理,这时候使用标准函数即可操作。
DTM有了之后,接下来就请enjoy it
!