想象一下,只有5分钟的时间离开办公室,以便赶上两天前预订的电影。惊讶地发现,尽管没有设置任何提醒或闹钟,但仍然记得这个安排。微笑着整理好工作,准备去看电影。谷歌是如何获取这些信息的?显然,这是通过Gmail账户中的电子票确认邮件实现的。谷歌拥有阅读所有邮件的专长(当然是在用户自己给予所有权限的情况下),并从中提取有用信息。阅读所有以HTML格式呈现的内容的过程被称为网页抓取。谷歌的机器人会抓取数据并进行分析,以提取有用信息。
框架如下:
开源工具Import.Io被用来从博客中抓取所有所需的数据。该工具仔细爬取整个网站,并提取与文章、标题、姓名、标签、发布日期、评论、评论数量、博客类别等相关的相关信息。
一旦完成了对生成的数据集的所有必要准备,现在需要挖掘适合用于预测分析的信息。以下是用于生成包含所有文本信息的完整数据框的代码。创建TM包所需的语料库:
## 语料库需要一个向量源
pos.corpus.title <- Corpus(VectorSource(pos.title))
pos.corpus.text <- Corpus(VectorSource(pos.text))
pos.corpus.tags <- Corpus(VectorSource(pos.tags))
pos.corpus.comments <- Corpus(VectorSource(pos.comments))
pos.corpus.categories <- Corpus(VectorSource(pos.categories))
inspect(pos.corpus.title)
## 类似地,其他语料库也可以进行检查
根据需要对语料库进行预处理以进行进一步分析:
## 从评论中移除与输出分类高度相关的词汇
ExtraStopWords <- c(stopwords("english"), "Kunal", "Jain", "Tavish", "Srivastava", "Tags")
Pos.corpus.Preprocess <- function(corpus) {
corpus <- tm_map(corpus, stripWhitespace)
## 移除额外的空白
corpus <- tm_map(corpus, removePunctuation)
## 移除标点符号
corpus <- tm_map(corpus, removeNumbers)
## 移除数字
corpus <- tm_map(corpus, removeWords, ExtraStopWords)
## 移除停用词
corpus <- tm_map(corpus, tolower)
## 转换为小写
corpus <- tm_map(corpus, stemDocument, language = "english")
return(corpus)
}
然后,生成文档-术语矩阵:
Pos.DTM <- function(sparseTitle, sparseText, sparseTags, sparseComments, sparseCategories) {
pos.DTM.title <- removeSparseTerms(DocumentTermMatrix(pos.corpus.title), sparseTitle)
(pos.DTM.title)
pos.DTM.text <- removeSparseTerms(DocumentTermMatrix(pos.corpus.text), sparseText)
(pos.DTM.text)
pos.DTM.tags <- removeSparseTerms(DocumentTermMatrix(pos.corpus.tags), sparseTags)
(pos.DTM.tags)
pos.DTM.comments <- removeSparseTerms(DocumentTermMatrix(pos.corpus.comments), sparseComments)
(pos.DTM.comments)
pos.DTM.categories <- removeSparseTerms(DocumentTermMatrix(pos.corpus.categories), sparseCategories)
(pos.DTM.categories)
}
Final_DTM <- cbind(inspect(pos.DTM.title),
inspect(pos.DTM.text),
inspect(pos.DTM.tags),
inspect(pos.DTM.categories),
inspect(pos.DTM.comments))
获得的DTM被划分为训练和测试数据集,并使用各种预测分类模型进行分析,如C5.0(决策树)、CART模型、条件推断树、加权K最近邻、KNN和随机森林集成。准确度是根据挑战赛中提到的接受标准来衡量的。整个模型代码可以在以下中找到。