`
liujiekasini0312
  • 浏览: 147395 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

文本挖掘 -R

 
阅读更多

1<wbr></wbr>文本挖掘概要

文本挖掘是从大量的文本数据中抽取隐含的,求和的,可能有用的信息。

通过文本挖掘实现

•Associate:关联分析,根据同时出现的频率找出关联规则
•Cluster:将相似的文档(词条)进行聚类

•Categorize:将文本划分到预先定义的类别里

•Summarize:提取全面准确反映文档中心内容的简单连贯描述性短文、关键词。

文本挖掘应用:

•智能信息检索:同义词,简称词,异形词,同音字、赘字移除

•网络内容安全:内容监控,内容过滤

•内容管理:自动分类,检测和追踪

•市场监测:口碑监测,竞争情报系统,市场分析

2 文本挖掘流程

文本处理流程首先要拥有分析的语料(text corpus),比如报告、信函、出版物等。而后根据这些语料建立半结构化的文本库(text database)。然后生成包含词频的结构化的词条-文档矩阵(term-document matrix)

文本挖掘需要的相关包:

tm包是R语言中为文本挖掘提供综合性处理的package,进行操作前载入tm包,vignette命令可以查看相关文档说明: library(tm);<wbr>vignette("tm")</wbr>

tm package很多函数依赖于其它package,需将rJava, Snowball, zoo, XML, slam, Rz, Rweka,matlab这些win32 package一并下载,并解压到默认的library中去,到SUN网站安装JAVA运行环境软件包

Java 环境安装后执行如下R代码:

Sys.setenv(JAVA_HOME='C:\Program Files (x86)\Java\jdk1.7.0_15\jre')

加载如下包:

library(rJava):Java环境

library(Rwordseg) #中文分词

library(tm):tm 包

library(Rcpp)#wordcloud相关

library(RColorBrewer)#wordcloud相关

library(wordcloud)#wordcloud相关

3 实例-R<wbr></wbr>

1、文本读入(语料库构建)

Text Corpus: 语料库代表了一系列的文档集合,分两种:

•动态语料库(Volatile Corpus,作为R 对象保存在内存中)

<wbr>•静态语料库(Permanent Corpus,R 外部保存)。</wbr>

动态语料库:Corpus(x, readerControl = list(reader = , language )

静态语料库:PCorpus(x, readerControl = list(reader = , language =), dbControl = list(dbName = “”, dbType = “DB1”))

x: 资料来源,tm相关函数:

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>• DirSource:处理目录, DirSource()</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>• VectorSource:由文档构成的向量</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>• DataframeSource:数据框,像CSV 文件</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

readerControl:资料源创立的文本文件

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>•reader: 资料源的文本类型,readDOC,readPDF,readPlain,readReut21578XML 等不同的读入方式,可用getReaders()查看所有类型</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>• language:字符集(“en”、“UTF-8”)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

dbControl:静态语料库的第三种参数,声明R内存外的资料来源(如数据库及类型),

实例:dir<-"C:\\test"<wbr><wbr>#文本文档的路径</wbr></wbr>

txt<-Corpus(DirSource(dir)) #将所有路径下的文档读入作为语料库

2、文件预处理

#主要是tm_map函数

txt=tm_map(txt,as.PlainTextDocument)

txt=tm_map(txt,stripWhitespace)#去除空格

txt=tm_map(txt,tolower)#将内容转换成小写

txt=tm_map(txt, removeWords, stopwords("english"))#remove stopwords

getTransformations():查看所有字符处理方式 如下:

<wbr>"as.PlainTextDocument"(剔除标签) "removeNumbers"<wbr>(剔除数字)<wbr><wbr><wbr><wbr><wbr><wbr>"removePunctuation"(剔除标点符号)<wbr><wbr>"removeWords"<wbr><wbr>(剔除停用词)<wbr><wbr><wbr><wbr><wbr><wbr><wbr>"stemDocument"<wbr><wbr><wbr><wbr><wbr><wbr><wbr>"stripWhitespace"<wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><span style="word-wrap:normal; word-break:normal; color:rgb(0,176,80)">##设置名字识别</span></wbr>

segment.options(isNameRecognition = TRUE)

<wbr><span style="word-wrap:normal; word-break:normal; color:rgb(0,176,80)">##中文分词</span></wbr>

dm<-segmentCN(as.character(txt))

dtm<-Corpus(VectorSource(dm)) #重新生成语料库

3、词频矩阵生成

词频矩阵生成:dtm<-DocumentTermMatrix(txt, control=list(dictionary=cnword, removePunctuation = TRUE, stopwords=TRUE,<wbr>wordLengths = c(1, Inf)))</wbr>

Punctuation是否去掉标点符号默认false

<wbr>removeNumbers是否去掉数字默认false</wbr>

dictionary设置要统计的中文词语,如果不设置的话,默认会从所有的语料库里统计。

wordLengths设置如果词的长度大于X时舍去。

剔除稀疏词汇:removeSparseTerms(dtm, sparse=0.9)

数据框格式转换:df_dtm2<-as.data.frame(inspect(dtm2))

实例:

dtm2<-TermDocumentMatrix(dtm, control=list(wordLengths = c(1,5)))<wbr>#设置显示词的最小及最大长度</wbr>

dtm3<-removeSparseTerms(dtm2, sparse=0.5)

3、文本分析

##filter

query="id=='237' & heading == 'INDONESIA SEEN AT CROSSROADS OVER ECONOMIC CHANGE'"#设置查询条件

#从中过滤出满足query条件的文档

tm_filter(txt, FUN=sFilter, query) #A corpus with 1 text document

##频数分析

findFreqTerms(x, lowfreq = 0, highfreq = Inf)

<wbr>x: 语料库数据文本</wbr>

lowfreq :词汇频数下限

highfreq:词汇频数上限

<wbr>实例:<span style="word-wrap:normal; word-break:normal; color:rgb(0,176,80)"><span style="font-size:14px; word-wrap:normal; word-break:normal; line-height:24px"><span style="color:#000000; word-wrap:normal; word-break:normal"><span style="font-family:Calibri; word-wrap:normal; word-break:normal">findFreqTerms(dtm3,5)<wbr>作用于TermDocumentMatrix or DocumentTermMatrix ,</wbr></span><span style="word-wrap:normal; word-break:normal; line-height:21px; font-size:14px">取出频数大于等于5的词组</span></span></span></span></wbr>

##关联分析

findAssocs(x, terms, corlimit)

<wbr>x: 语料库数据文本</wbr>

<wbr>terms:词汇向量</wbr>

<wbr>corlimit:相关性系数值向量,值0~1</wbr>

实例:findAssocs(dtm4,"犯规",0.5)

##云图分析

<wbr><a target="_blank" name="OLE_LINK12" style="text-decoration:underline; color:rgb(82,102,115)"><span style="word-wrap:normal; word-break:normal"><span style="word-wrap:normal; word-break:normal; font-family:宋体"><span style="word-wrap:normal; word-break:normal; font-family:'Microsoft YaHei'"><span style="color:#000000; word-wrap:normal; word-break:normal">wordcloud(words, freq, scale = c(6, 1.5), min.freq = 2, max.words = 1000,random.order=TRUE,random.color=FALSE,rot.per=T, colors = rainbow(100)</span></span></span></span></a><span style="word-wrap:normal; word-break:normal; font-family:'Microsoft YaHei'">,<span style="color:#000000; word-wrap:normal; word-break:normal">ordered_colors=FALSE)</span></span></wbr>

words:关键词列表

freq:关键词对应的频数列表

scale:字号列表(c(最大,最小)

min.freq:显示的最小词频

max.words:词云图上显示关键词的最大数目

random.order:控制关键词的排列顺序,T:随机排列,F:按照频数从中心向外降序排列,频数大的出现在中心位置

random.color:控制关键词字体颜色,T:随机分配,F:按频数分配

rot.per:控制关键词摆放角度,T :水平,F:旋转90度

colors:字体颜色列表

ordered.colors:控制字体颜色使用顺序,T:按指定顺序给出颜色,F:任意给定颜色

实例:

dtm4<-as.matrix(dtm3)

v <- sort(rowSums(dtm4),decreasing=TRUE)

d <- data.frame(word = names(v),freq=v)

wordcloud(d$words, d$freq, scale = c(6, 1.5), min.freq = 2, max.words = 1000, colors = rainbow(100))

<wbr></wbr>

分享到:
评论

相关推荐

    文本挖掘与R语言

    R语言拥有丰富的库(如tm、tidytext、SnowballC、wordcloud等)支持文本预处理、文本分析和可视化,使得非编程背景的用户也能方便地进行文本挖掘。 "Mastering Text Mining with R"这本教程是英文原版,专注于教...

    R语言文本挖掘

    R 语言环境下的文本挖掘,文本挖掘被描述为 “自动化或半自动化处理文本的过程”,包含了文档聚类、文档分类、自 然语言处理、文体变化分析及网络挖掘等领域内容。 对于文本处理过程首先要拥有分析的语料(text ...

    R语言下的文本挖掘

    ### R语言下的文本挖掘 #### 文本挖掘的概述 文本挖掘是一种从大量非结构化文本数据中抽取有价值信息的过程。随着大数据时代的到来,文本数据变得越来越丰富,如何从中挖掘出有用的信息成为了一个重要的研究领域。...

    R语言文本挖掘方法

    详细介绍R语言文本挖掘方法,从理论方法到具体步骤,以及实用案例,深入浅出,帮助你更深的理解R语言文本挖掘方法。

    R语言环境下的文本挖掘.pdf

    R语言环境下的文本挖掘 文本挖掘是指从大量的文本数据中提取有价值的信息或模式的过程。在 R 语言环境下,可以使用多种包和函数来实现文本挖掘,例如 tm 包、XML 包等。 文本挖掘的步骤包括自然语言处理、文本...

    中文文本挖掘和tmcn包.pdf

    本文将围绕“中文文本挖掘和tmcn包”这一主题,探讨R语言文本挖掘的核心概念、方法以及在中文文本挖掘中的应用。 首先,我们来了解R语言文本挖掘的设计思想。R语言的文本挖掘框架,设计之初就考虑到了大数据文本...

    论文研究-中文Web文本挖掘系统WebTextMiner开发.pdf

    Web文本挖掘系统是针对网络文本信息进行搜索、抽取、管理和可视化等处理的一类软件工具或平台,其目的在于通过自动化的方式从大量网络文本中发现和提取有价值的信息,从而支持决策和数据分析。Web文本挖掘在信息检索...

    手把手教你做文本挖掘 课件

    文本数据挖掘(Text Mining)是指从文本数据中抽取有价值的信息和知识的计算机处理技术。顾名思义,文本数据挖掘是...文本分析是文本挖掘、信息检索的一个基本问题,它把从文本中抽取出的特征词进行量化来表示文本信息。

    R语言文本挖掘.docx

    R语言文本挖掘 R语言文本挖掘是一种使用R语言进行文本挖掘的技术,通过对大量文本数据的挖掘,抽取隐含的、有用的信息。文本挖掘可以实现关联分析、聚类、分类、文档自动摘要等功能。R语言提供了多种包来实现文本...

    用R语言做文本挖掘_Text-mining.zip

    用R语言做文本挖掘_Text-mining

    用商业案例学R语言数据挖掘-学习笔记.pdf

    全书分为18章,覆盖了R语言的基础知识、统计学习方法和数据挖掘技术,以及特征工程和文本挖掘等内容。 在R语言的学习中,首先需要理解基本数据类型,包括numeric(数值型)、character(字符型)等,并能熟练判断...

    R七种武器之文本挖掘

    自然语言处理与文本挖掘是机器学习当前最神秘,最红火,最具难度,也最让引人关注的分支。 文本挖掘(Text Mining)是数据挖掘的一个分支,挖掘对象通常是非结构化的文本数据,常见的文本挖掘对象包括网页所产生的BBS...

    R-tm(文本挖掘)软件包

    R语言作为一个强大的统计分析环境,提供了许多用于文本挖掘的工具,其中`tm`(Text Mining)软件包就是其中之一。这个包为R用户提供了全面的文本预处理、分析和可视化功能,使得非结构化的文本数据能够被转化为可以...

    R 语言环境下的文本挖掘

    ### R 语言环境下的文本挖掘知识点详解 #### 1. 文本挖掘介绍 文本挖掘(Text Mining),也称为文本数据挖掘或文本分析,是指从文本数据中抽取有价值的信息和知识的过程。这一过程涉及多种技术和方法,包括但不...

    数据挖掘入门到精通_R语言(学途无忧)课程PPT和代码.zip

    在这个“数据挖掘入门到精通_R语言(学途无忧)课程”中,我们将深入探讨如何利用R语言这一强大的数据分析工具进行数据挖掘。 R语言是数据科学家和统计学者广泛使用的编程语言,其丰富的库和包为数据处理、可视化和...

    R语言实现文本挖掘与情感成分分析

    本文将深入探讨如何使用R语言进行文本挖掘和情感分析,旨在帮助读者理解并掌握这两种技术在实际应用中的实施步骤。 一、文本挖掘基础 1. 文本预处理:在进行任何分析之前,首先要对原始文本进行预处理,包括去除...

    R语言环境下的文本挖掘

    ### R语言环境下的文本挖掘 #### 一、文本挖掘的概述 **文本挖掘**是一种从大量文本数据中抽取有价值信息的过程。随着互联网的发展,文本数据的数量急剧增加,文本挖掘技术在商业智能、搜索引擎优化、社交媒体分析...

Global site tag (gtag.js) - Google Analytics