用R语言进行文本挖掘和主题建模
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 我们每天都会遇到各种各样的文本数据,但大部分是非结构化的,并不是全部都是有价值的。 我们阅读的书籍,博客,新闻文章,网页,电子邮件等都是文本数据。所有这些文本都为我们提供了大量的信息,并不断增长。但是,并非所有的数据都是有用的。我们过滤掉噪音,只保留重要的信息。这是一个乏味的过程,但作为人类,我们需要智慧 - 阅读是一个必不可少的工具。而且,当世界倾向于智能机器时,处理来自非结构化数据的信息的能力是必须的。对于人类和智能机器来说,从大量的文本数据中挖掘信息是必需的。文本挖掘可以提供方法来提取,总结和分析来自非结构化数据的有用信息,以获得新的见解。 文本挖掘可以用于各种任务。以下是我们的系列将进一步讨论的几个主题:
这篇文章主要关注主题建模。在接下来的帖子中,我们将深入到其他任务。 1、文本检索文本文件可以有各种格式,如PDF,DOC,HTML等。第一步是将这些文档转换为可读的文本格式。接下来,必须创建一个语料库。语料库只是一个或多个文档的集合。当我们在R中创建语料库时,文本会被标记并可供进一步处理。 library(tm) library(SnowballC) library(topicmodels) #设置工作目录(根据需要修改路径) setwd("//Users//datascience//textmining//topicmodel") #加载文档到语料库 #获取目录中的.txt文件列表 filenames <- list.files(getwd(),pattern="*.txt") #将文件读入字符向量 files <- lapply(filenames,readLines) #创建矢量语料库 articles.corpus <- Corpus(VectorSource(files)) 2、文本预处理接下来,我们需要对文本进行预处理,将其转换为可以处理以提取信息的格式。在分析文本之前减小特征空间的大小是非常重要的。我们可以在这里使用各种预处理方法,如停用词清除,案例折叠,词干化,词形化和收缩简化。但是,没有必要将所有的规范化方法应用于文本。这取决于我们检索的数据和要执行的分析类型。 #将每个字母变成小写 articles.corpus <- tm_map(articles.corpus,tolower) #删除标点符号 articles.corpus <- tm_map(articles.corpus,removePunctuation) #删除数字 articles.corpus <- tm_map(articles.corpus,removeNumbers); #删除通用和自定义的停用词 stopword <- c(stopwords('english'),"best"); articles.corpus <- tm_map(articles.corpus,removeWords,stopword) articles.corpus <- tm_map(articles.corpus,stemDocument); 以下是我们应用于减少数据集特征空间的预处理方法的简短描述: 下一步是创建一个文档项矩阵(DTM)。这是一个重要的步骤,因为解释和分析文本文件,它们最终必须转换成文档术语矩阵。 DTM包含每个文档的术语出现次数。 DTM中的行代表文档,文档中的每个词代表一列。在将文集转换为文档项矩阵之后,我们还移除了低频词(稀疏词)。 articleDtm <- DocumentTermMatrix(articles.corpus,control = list(minWordLength = 3)); articleDtm2 <- removeSparseTerms(articleDtm,sparse=0.98) 3、主题建模主题建模是为了找到最能代表集合的文档集合中的关键词/术语。Latent Dirichlet Allocation(LDA)模型是一种广泛使用的话题建模技术。以上结果表明,这两个文件的主题都集中在机器学习和数据科学领域,你可以从GitHub中找到数据集和代码。 问答 此文已由作者授权腾讯云+社区发布,原文链接:https://cloud.tencent.com/dev... (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |